Chapitre 1
: Introduction à la programmation
A) Le cours IFT 1969
De façon générale, on peut dire que l’objectif premier d’un traitement automatique de
l’information consiste à demander à un ordinateur de traiter des informations d’une
manière automatique et de présenter les résultats selon la planification qui a été faite.
Données ORDINATEUR Résultats escomptés
La programmation constitue un des moyens d’atteindre cet objectif. Au moyen d’un
langage approprié, appelé langage de programmation, on décrit précisément les
étapes que l’ordinateur doit franchir pour obtenir les résultats escomptés à partir des
informations fournies.
En informatique, plusieurs de ces langages existent, à l’instar des langues naturelles (le
français, l’anglais, etc.), et ces divers langages permettent de communiquer avec
l’ordinateur. Dans le cours IFT 1969, le langage utilisé est le langage C. Les exemples
scientifiques seront présentés en classe et disponibles sur la page Web tandis que la
plupart des exemples dans ces notes de cours sont universels.
LANGAGES NATURELS LANGAGES DE PROGRAMMATION
Exemples : Exemples :
le français, l'anglais, l'espagnol, etc. le langage C, le langage C++, le Java, le
Visual Basic, etc.
le vocabulaire utilisé : le vocabulaire utilisé :
plein de mots à connaître : dictionnaires très restreint : une trentaine de mots dont
(Larousse, Petit Robert, …) on comprend vite le sens et qui reviennent
à chaque exemple, donc facile à retenir
Syntaxe : Syntaxe :
grande dimension et difficile petite dimension et facile :
des règles partout! quelques règles
livres sur les verbes erreurs détectées et localisées par
livres sur les règles grammaticales l'ordinateur (à expliquer en classe)
dictionnaires sur le bon usage de… on n'a pas besoin d'apprendre par
dictionnaires des difficultés de… cœur
Le langage C a été créé en vue de son utilisation avec les ordinateurs et ce, pour
plusieurs types d'applications. Comme dans le cas des langues naturelles, il possède :
Un vocabulaire propre : ce vocabulaire est plutôt restreint, une trentaine de mots
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 1
(voir l’annexe E) qui sont simples à retenir.
Une syntaxe propre : celle-ci, de petite dimension (en comparaison avec celle de
toute langue naturelle) doit être respectée très rigoureusement car l’ordinateur
ne donne suite qu’aux instructions présentées correctement. Les règles de
syntaxe sont faciles à assimiler grâce aux exposés théoriques et grâce aussi,
aux exercices de programmation effectués dans le cadre du volet pratique du
cours.
Le cours IFT 1969 comporte l'apprentissage de quelques mots et de quelques règles
grammaticales propres aux langages de programmation. Ceux-ci permettent au
programmeur de composer les phrases (instructions) requises par l'ordinateur pour
obtenir les résultats découlant de l'information fournie, en fonction du problème à
résoudre.
L'apprentissage est assez facile. L'écriture des phrases (instructions) dans un langage
(C ou autre) fait appel à la logique du raisonnement et à l'imagination. Le tout s'avère
très instructif et très intéressant. Il suffit de s'y lancer pour en découvrir tout le charme!
Branchez-vous et bon succès!
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 2
B) Terminologie de base
1) Informatique : science du traitement de l’information d’une manière automatique
grâce
à un outil qui s’appelle ordinateur.
Données à ORDINATEUR à Résultats escomptés
Programmes ou logiciels
2) Ordinateur : machine effectuant des manœuvres de l’information de façon
automatique.
L’automatisation des traitements n’exclue pas l’interactivité avec l’usager.
3) Algorithme : suite de raisonnements ou d’opérations de calculs permettant de
trouver la solution à un problème en un nombre fini d’étapes (on verra un exemple
plus loin).
4) Langage informel ou pseudo-code : un moyen de présenter l’algorithme décrit pour
résoudre un problème sans trop se soucier de la grammaire et du vocabulaire
propres au langage de programmation utilisé.
5) Programme : ensemble d’instructions définissant les opérations qui devront être
exécutées par l’ordinateur pour résoudre un problème. Enregistré dans la mémoire
centrale, un programme commande le déroulement des diverses opérations et ce,
jusqu’au résultat final.
6) Programmation : ensemble des activités orientées vers la conception, la
réalisation, le
test et la maintenance de programmes.
7) Langages de programmation. Par exemple:
Visual Basic : Excellent pour l'apprentissage d'un premier langage de
programmation.
C : langage d'apprentissage de la programmation, application universelle et
surtout industrielle.
C++ : langage de programmation plus difficile d’apprentissage mais
beaucoup utilisé sur le marché du travail. Plusieurs librairies (DLL) sont
écrites par les professionnels en langage C++.
FORTRAN : application généralement scientifique
LISP, PROLOG : application en intelligence artificielle.
JAVA : un langage de plus en plus prisé.
8) Fichier : document enregistré sur un support permanent, le plus souvent
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 3
magnétique
comme une disquette ou un disque rigide, par exemple : [Link], tp2.c, [Link],
[Link], …
9) Bit (binary digit) : la plus petite unité d’information que l’on peut représenter dans
un
ordinateur et que celui-ci peut traiter (représentée habituellement par 0 ou 1).
10) Octet (byte) : groupe de 8 bits dans lequel on peut codifier (stocker) un caractère.
Unité
de mesure de quantités d'information. Chaque octet dispose d'une "adresse" (son
emplacement en mémoire) comme chaque logement dispose d'une adresse
postale.
11) Login : mot d’usager (user’s name) : si vous êtes inscrits dans un cours en
informatique, on va vous fournir un nom d’usager pour travailler au laboratoire. Ce
mot
est public.
12) Mot de passe (password) : c’est comme le NIP d’une carte bancaire. Les auxiliaires
vont vous montrer comment obtenir un seul mot de passe sous Windows (pour
utiliser
les logiciels aux laboratoires) et sous LINUX (pour la remise électronique, courrier
électronique). Veuillez le conserver précieusement.
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 4
C) Premier exemple d'introduction
Faire les étapes nécessaires pour écrire finalement un programme en langage C qui
permet :
de saisir les coefficients a, b et c d’une équation du second degré :
ax2 + bx + c = 0
de résoudre l’équation et d'afficher les racines
Exécution
L'exécution d'un tel programme sur un micro-ordinateur au laboratoire donne, par
exemple, ce qui suit à l'écran :
Tapez les 3 coefficients a, b et c de l'equation 5 -6 1
Voici les deux racines :
x1 = 1.000
x2 = 0.200
Press any key to continue
Tapez les 3 coefficients a, b et c de l'equation 16 8 1
Racine double : -0.250
Press any key to continue
Tapez les 3 coefficients a, b et c de l'equation 12.5 1.8 4.2
Pas de racines reelles
Press any key to continue
Comprendre le problème, faire un cheminement
Quelles sont les données ? :
les 3 coefficients a, b et c de l’équation
Quels sont les résultats ? :
résultat intermédiaire : le discriminant delta
résultats finaux : les racines réelles s’il existe
Cheminement :
Obtenir les 3 coefficients a, b et c
Résoudre l’équation et Afficher la solution
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 5
Faire un tableau d'analyse des informations
INFORMATION TYPE NATURE VALEUR IDENTIFICATEUR
Données:
le premier coefficient réel variable à saisir a
le deuxième coefficient réel variable à saisir b
le troisième coefficient réel variable à saisir c
Résultats:
le déterminant delta réel variable à calculer Delta
la première racine réel variable à calculer x1
la deuxième racine réel variable à calculer x2
Dans ce tableau :
une variable est une information dont la valeur peut varier :
les coefficients varient d'une équation à une autre;
un identificateur est un seul mot permettant d'identifier l'information (on
donne un nom à l'information). La syntaxe du langage commence ici.
Faire un algorithme (un cheminement plus détaillé)
Obtenir les 3 coefficients a, b et c
Écrire un message à l'écran pour demander à l'usager
d'entrer les 3 coefficients
Lire a, b, c (tapés au clavier par l'usager)
Résoudre l’équation et afficher la solution :
delta = b2 – 4ac
Si delta > 0
x1 = (-b + racine carrée(delta)) / 2a
x2 = (-b - racine carrée(delta)) / 2a
écrire à l’écran x1 et x2
Sinon
Si delta < 0
Écrire à l’écran le message "Pas de racines reelles"
Sinon
Écrire à l’écran la racine double –b / 2a
Dans cet algorithme, on utilise souvent des identificateurs décrits dans le tableau
d'analyse de l'information.
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 6
Avant de programmer, on vérifie l'exactitude de l'algorithme.
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 7
Traduire l'algorithme en langage de programmation
On traduit l'algorithme en utilisant le vocabulaire du langage (ici, le C) et sa syntaxe.
Le tableau d'analyse des informations est utile pour comprendre le problème et pour
faire les déclarations.
Cette étape, qui est expliquée en détail au premier cours théorique, nous amène à
un programme écrit en langage C comme suit suivi des explications :
/* IFT 1969
Premier exemple simple :
Résoudre une équation du second degré :
ax2 + bx + c = 0
*/
#include <stdio.h>
#include <math.h>
int main() {
/* déclarer les 3 coefficients a, b et c de l'équation : */
float a, b, c ;
float delta, x1, x2 ;
printf("Tapez les 3 coefficients a, b et c de l'equation ");
scanf("%f%f%f", &a, &b, &c);
/* calcul du discriminant delta : */
delta = b*b - 4 * a * c ;
/* déterminer et afficher les racines réelles si elles existent : */
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("Voici les deux racines :\nx1 = %7.3f\nx2 = %7.3f\n", x1, x2);
}
else
if (delta < 0)
printf("Pas de racines reelles\n");
else
printf("Racine double : %7.3f\n", -b / (2*a));
printf("\n");
return 0;
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 8
}
Explications sommaires du programme
Ce programme comporte :
0) des commentaires entre /* (début) et */ (fin) pour décrire, entre autres, le
but du programme
1) un fichier d'en-tête (fichier d'inclusion) :
#include <stdio.h>
stdio.h (standard input/ouput header file) est le nom d'un fichier d'en-tête
permettant de gérer les entrées et sorties standard (scanf : lire les
données, printf : afficher, etc ...)
2) une seule fonction (pour cet exemple), c'est la fonction principale (main)
void main ()
3) un bloc d'énoncés délimités entre { (début d'un bloc) et } (fin d'un bloc)
4) la déclaration de quelques variables de type réel
"float" désigne le type réel (un nombre "flottant", une valeur numérique
avec la partie décimale).
La valeur d'une variable peut varier durant l'exécution du programme (les
coefficients varient d'une équation à une autre équation).
5) l'affichage d'un message à l'écran :
printf("Tapez les 3 coefficients a, b et c de l'equation ");
"printf" est le nom d'une fonction (une tâche) prédéfinie qu'on peut
appeler en incluant le fichier d'en-tête approprié (ici : stdio).
#include <stdio.h>
"printf" vient de 2 mots anglais : "print + format" qui signifient "afficher
avec format de présentation" (à voir plus tard dans le cours). On utilise
souvent cette fonction pour afficher des messages, des calculs, des
variables, etc.
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 9
Notez que nous ne plaçons pas de lettres accentuées dans les messages
à imprimer par le programme. La raison est très simple : les accents
n’apparaissent pas (dans notre environnement) lorsque nous exécutons
le programme.
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 10
6) la lecture de données tapées au clavier :
scanf("%f%f%f", &a, &b, &c);
"scanf" est le nom d'une autre fonction (une tâche) prédéfinie qu'on peut
appeler en incluant le fichier d'en-tête approprié (ici : stdio).
#include <stdio.h>
"scanf" vient de 2 mots anglais : "scan + format" qui signifient "lire les
données avec format de présentation". On utilise souvent cette fonction
pour lire les données tapées au clavier.
Le code de format "%f" indique qu'on lit un réel.
L'opérateur "&" indique l'adresse (l'emplacement en mémoire) d'une
variable. On lit un réel et on place sa valeur à l'adresse d'une variable. La
notion "d'adresse de ..." sera présentée plus en détails durant les
prochaines semaines. Temporairement, on peut imaginer le cas d'un
facteur qui livre un colis chez-vous grâce à votre adresse (plutôt que votre
nom).
7) l'affectation à la variable delta du résultat du calcul de discriminant de
l’équation :
delta = b*b - 4 * a * c ;
L'opérateur "=" indique qu'on affecte (on dépose) la valeur de l'expression à
droite du symbole "=" à la variable delta.
L'opérateur "*" représente la multiplication entre deux valeurs
numériques.
8) l'affichage de la variable taille avec message d'accompagnement et avec
format :
printf("La taille en metre : %6.2f\n", taille);
Si la taille vaut, par exemple, 1.718 mètre, l'affichage donne :
La taille en mètre : ^^1.72
(ici, on utilise le caractère ^ (un chapeau) pour représenter un blanc (un
espace)).
Explications sommaires du code de format :
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 11
%6.2f : on aimerait afficher la taille sous le format d'un réel (f : float (un
réel))
on réserve 6 espaces (y compris le point de décimal) et on veut 2
chiffres après le point de décimal. Comme le troisième chiffre de
décimal est 8 qui est plus grand ou égal à 5, on arrondit et on a ".72"
au lieu de ".718". De plus, la valeur 1.72 n'occupe que 4 espaces qui
est complétée par deux blancs à gauche.
Les détails des formats seront présentés plus tard.
Faire les étapes nécessaires pour écrire finalement un programme en langage C qui
permet :
de saisir la taille d'une personne en nombre de pieds et de pouces (exemple :
5 pieds 6 pouces);
de convertir la taille en mètre (1 pied = 12 pouces,1 pied = 0.3048 mètre)
d'afficher la taille en mètre
Exécution
L'exécution d'un tel programme sur un micro-ordinateur donne, par exemple, ce qui suit
à l'écran :
Entrez la taille en nombre de pieds et de pouces: 5 6
La taille en metre : 1.68
Comprendre le problème, faire un cheminement
Quelles sont les données ? :
le nombre de pieds et de pouces
le facteur de conversion (1 pied vaut 0.3048 mètre).
Quels sont les résultats ? :
un seul! c'est la taille en mètre
Exemple :Si une personne mesure 5 pieds et 6 pouces, comment
calculer sa taille en mètre ?
6 pouces = 6/12.0 pied (car 1 pied = 12 pouces)
5 pieds et 6 pouces = (5 + 6 / 12.0) pieds
= (5 + 6 / 12.0) x 0.3048 mètre = ... mètre
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 12
Cheminement :
Obtenir la taille en nombre de pieds et de pouces
Convertir la taille en mètre selon la formule :
taille <---- (nbPieds + nbPouces / 12.0) x 0.3048
Afficher taille
Faire un tableau d'analyse des informations
INFORMATION TYPE NATURE VALEUR IDENTIFICATEUR
Données:
le nb de pieds Entier variable à saisir nbPieds
le nb de pouces Entier variable à saisir nbPouces
Facteur de conversion Réel constante 0.3048 FACTEUR
Résultats:
la taille en mètre Réel variable à calculer taille
Dans ce tableau :
une variable est une information dont la valeur peut varier :
le nombre de pieds, le nombre de pouces et la taille varient d'une
personne à une autre;
une constante est une information dont la valeur est inchangée :
on applique le même facteur de conversion (1 pied = 0.3048 mètre) peu
importe la taille de la personne;
un identificateur est un seul mot permettant d'identifier l'information (on
donne un nom à l'information). La syntaxe du langage commence ici.
Faire un algorithme (un cheminement plus détaillé)
Obtenir la taille en nombre de pieds et de pouces :
Écrire un message à l'écran pour demander à l'usager
d'entrer le nombre de pieds et de pouces
Lire nbPieds, nbPouces (tapés au clavier par l'usager)
Convertir la taille en mètre selon la formule :
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 13
taille <---- (nbPieds + nbPouces / 12.0) x 0.3048
Afficher la taille :
Écrire à l'écran taille
Dans cet algorithme, on utilise souvent des identificateurs décrits dans le tableau
d'analyse de l'information.
Avant de programmer, on vérifie l'exactitude de l'algorithme.
Traduire l'algorithme en langage de programmation
On traduit l'algorithme en utilisant le vocabulaire du langage (ici, le C) et sa syntaxe.
Le tableau d'analyse des informations est utile pour comprendre le problème et pour
faire les déclarations.
Cette étape, qui est expliquée en détail au premier cours théorique, nous amène à
un programme écrit en langage C comme suit suivi des explications :
#include <stdio.h>
int main()
{
const float FACTEUR = 0.3048; /* Facteur de conversion :
1 pied = 0.3048 mètre */
int nbPieds, nbPouces;
float taille;
/* Saisie la taille en nombre de pieds et de pouces : */
printf("Entrez la taille en nombre de pieds et de pouces ");
scanf("%d%d", &nbPieds, &nbPouces);
/* Conversion en mètre : */
taille = (nbPieds + nbPouces / 12.0) * FACTEUR ;
/* Affichage : */
printf("La taille en metre : %6.2f\n", taille);
return 0 ;
}
Explications sommaires du programme
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 14
Ce programme comporte :
1) un fichier d'en-tête (fichier d'inclusion) :
#include <stdio.h>
stdio.h (standard input/ouput header file) est le nom d'un fichier d'en-tête
permettant de gérer les entrées et sorties standard (scanf : lire les
données, printf : afficher, etc ...)
2) une seule fonction (pour cet exemple), c'est la fonction principale (main)
int main ()
3) un bloc d'énoncés délimités entre { (début d'un bloc) et } (fin d'un bloc)
4) la déclaration :
a) d'une constante de type réel dont la valeur vaut 0.3048 :
const float FACTEUR = 0.3048;
"const" est l'abrégé du mot "constant" en anglais qui signifie une
constante.
"float" désigne le type réel (un nombre "flottant", une valeur
numérique avec la partie décimale).
FACTEUR (de conversion) est le nom de cette constante. La valeur
d'une constante est inchangée durant l'exécution du programme (le
facteur de conversion est le même, peu importe la taille de la
personne).
b) de trois variables :
"int" est l'abrégé du mot anglais "integer" qui signifie le type entier
(-23, 456, 32100, etc...)
nbPieds et nbPouces sont les noms (les identificateurs) de deux
variables de type entier.
"float" désigne le type réel (valeur numérique avec la partie
décimale).
taille est le nom d'une variable de type réel (float).
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 15
La valeur d'une variable peut varier durant l'exécution du
programme (la taille varie d'une personne à une autre personne).
5) l'affichage d'un message à l'écran :
printf("Entrez la taille en nombre de pieds et de pouces ");
"printf" est le nom d'une fonction (une tâche) prédéfinie qu'on peut
appeler en incluant le fichier d'en-tête approprié (ici : stdio).
#include <stdio.h>
"printf" vient de 2 mots anglais : "print + format" qui signifient "afficher
avec format de présentation" (à voir plus tard dans le cours). On utilise
souvent cette fonction pour afficher des messages, des calculs, des
variables, etc.
Notez que nous ne plaçons pas de lettres accentuées dans les messages
à imprimer par le programme. La raison est très simple : les accents
n’apparaissent pas lorsque nous lançons le programme.
Format : %d ou %nd pour un entier : printf("%3d", age);
%f ou %[Link] pour un réel : printf("%6.2f", taille);
%c ou %nc pour un caractère: printf("%4c", sexe);
6) la lecture de données tapées au clavier :
scanf("%d%d", &nbPieds, &nbPouces);
"scanf" est le nom d'une autre fonction (une tâche) prédéfinie qu'on peut
appeler en incluant le fichier d'en-tête approprié (ici : stdio).
#include <stdio.h>
"scanf" vient de 2 mots anglais : "scan + format" qui signifient "lire les
données avec format de présentation". On utilise souvent cette fonction
pour lire les données tapées au clavier.
Le code de format "%d" indique qu'on lit un entier.
L'opérateur "&" indique l'adresse (l'emplacement en mémoire) d'une
variable. On lit un entier et on place sa valeur à l'adresse d'une variable.
La notion "d'adresse de ..." sera présentée plus en détails durant les
prochaines semaines. Temporairement, on peut imaginer le cas d'un
facteur qui livre un colis chez-vous grâce à votre adresse (plutôt que votre
nom).
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 16
7) l'affectation à la variable taille du résultat d'un calcul :
taille = (nbPieds + nbPouces / 12.0) * FACTEUR;
L'opérateur "=" indique qu'on affecte (on dépose) la valeur de
l'expression à droite du symbole "=" à la variable taille.
L'opérateur "*" représente la multiplication entre deux valeurs
numériques.
8) l'affichage de la variable taille avec message d'accompagnement et avec
format :
printf("La taille en metre : %6.2f\n", taille);
Si la taille vaut, par exemple, 1.718 mètre, l'affichage donne :
La taille en mètre : ^^1.72
(ici, on utilise le caractère ^ (un chapeau) pour représenter un blanc (un
espace)).
Explications sommaires du code de format :
%6.2f : on aimerait afficher la taille sous le format d'un réel (f : float (un
réel))
on réserve 6 espaces (y compris le point de décimal) et on veut 2
chiffres après le point de décimal. Comme le troisième chiffre de
décimal est 8 qui est plus grand ou égal à 5, on arrondit et on a ".72"
au lieu de ".718". De plus, la valeur 1.72 n'occupe que 4 espaces qui
est complétée par deux blancs à gauche.
Les détails des formats seront présentés plus tard.
Éléments de base du langage C
Dans ce programme, on utilise des mots de vocabulaire ainsi que les symboles
suivants du langage C :
int main() : fonction principale
const : constante
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 17
float : type réel (exemple -23.7, 1.78, 67.9435, ...)
int : type entier (exemple -34, 0, 678, ...)
{ : début d'un bloc d'instructions
} : fin d'un bloc d'instructions
printf : afficher à l'écran avec format de présentation
scanf : lire (avec format) des données tapées au clavier
= : affectation (dépôt de valeur)
* : multiplication
/ : division
\n : (new line) : changement de ligne
Ces mots et ces symboles reviennent exemple après exemple, semaine après semaine. On
parviendra rapidement à les comprendre et à les retenir. Il reste une vingtaine d'autres mots à
découvrir durant toute la session.
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 18
Quelques règles de syntaxe
Dans ce programme :
on termine souvent une "phrase en langage C" (une instruction) par le point
virgule ";" :
int nbPieds, nbPouces;
on délimite un message entre les guillemets :
printf("Entrez la taille en nombre de pieds et de pouces ");
on affecte (dépose) une valeur à une variable avec le symbole =
taille = (nbPieds + nbPouces / 12.0) * FACTEUR;
on utilise le symbole * pour la multiplication
Une erreur de syntaxe est souvent facile à localiser et à corriger. Après quelques
semaines de pratique, on sera habitué aux règles de syntaxe du langage.
Convention pour les identificateurs
Pour le cours IFT 1969, on suggère :
1. d'utiliser les majuscules pour faciliter l'identification des constantes :
const int MAX_ETUD = 100; /* au maximum : 100 étudiants */
#define TAUX_TPS 0.06 /* 6% pour le taux de TPS */
2. utiliser le premier mot en minuscules et le début d'un nouveau mot en
majuscules :
int age, nbPieds, nbPouces;
float tailleEnMetre , poidsEnKgs;
Environnement de travail
Cette étape se fait sur un poste de travail muni d'un compilateur C (ou C++,
exemple : sur un micro-ordinateur avec un compilateur de C++ comme dans nos
laboratoires ).
Une démonstration sera faite en classe et/ou au laboratoire.
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 19
1. Éditer le programme :
taper le programme
corriger les erreurs de frappe
sauvegarder dans un fichier (document électronique)
2. Compiler le programme :
le compilateur traduit le programme C en langage machine
il signale les erreurs de syntaxe
On utilise l'éditeur pour corriger les erreurs, s'il y a lieu, jusqu'à ce que la
compilation se termine avec succès.
3. Exécution du programme :
L'ordinateur exécute les instructions décrites dans le programme.
Si les résultats sont incorrects (une taille de 2.50 mètres pour une personne qui
mesure de 5 pieds et 3 pouces, par exemple), il faut réviser l'algorithme.
Si les résultats sont corrects, il suffit d'améliorer, s'il y a lieu, la présentation
des résultats à l'écran, la présentation du programme, etc.
Profitez de la première semaine de démonstration pour vous familiariser avec
l'environnement de travail. A partir de la deuxième semaine, on peut
commencer le premier travail pratique de la session.
D) Exercices
Exercice 1 (avec solution) :
Faire les étapes nécessaires pour écrire finalement un programme en langage C qui
permet :
de saisir le prix d'un seul article
de calculer les taxes suivantes :
tps : 6 % du prix
tvq : 7.5 % du (prix + tps)
taxes : total des 2 taxes
de calculer le prix total à payer
d'afficher les prix et les taxes
de saisir le montant donné par le client
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 20
de calculer le change (la monnaie) à lui remettre
d'afficher les informations voulues
Exécution
L'exécution d'un tel programme sur un micro-ordinateur donne ce qui suit à l'écran :
Entrez le prix de l'article : 0.60
Prix : 0.60 $
TPS : 0.04 $
TVQ : 0.04 $
Taxes : 0.08 $
Prix total : 0.68 $
Quel est le montant ? 1.0
Montant : 1.00 $
Monnaie : 0.32 $
Solution
Étape 1 : Comprendre le problème, faire un cheminement
Quelles sont les données?
le prix de l'article
les taux des taxes fédérale et provinciale :
taux de TPS : 6 %
taux de TVQ : 7.5 %
le montant donné par le client pour payer l'article acheté.
Quels sont les résultats?
les taxes
le prix total à payer
la monnaie à remettre au client.
Si le prix d'un article est de 10.00 $, comment calculer les taxes et le prix total à payer?
tps = 0.06 x prix = 0.60 $
tvq = 0.075 x (prix + tps) = 0.075 x 10.60 = 0.80 $
taxes = tps + tvq = 0.60 + 0.80 = 1.40 $
prix total à payer = prix + taxes = 10.00 $ + 1.50 $ = 11.40 $
Si le montant donné est 15.00 $, la monnaie à remettre est :
15.00 - 11.40 = 3.60 $
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 21
Cheminement :
Obtenir le prix de l'article acheté
Calculer les taxes
Calculer le prix total à payer
Afficher les prix et les taxes
Saisir le montant donné par le client
Calculer le change à remettre au client
Afficher le montant et la monnaie à remettre
Faire un tableau d'analyse des informations
INFORMATION TYPE NATURE VALEUR IDENTIFICATEUR
Données:
le prix de l'article Réel variable à saisir prix
le taux de TPS Réel constante 0.06 TAUX_TPS
le taux de TVQ Réel constante 0.075 TAUX_TVQ
le montant donné par le client Réel variable à saisir montant
Résultats:
la taxe TPS Réel variable à calculer tps
la taxe TVQ Réel variable à calculer tvq
la somme des deux taxes Réel variable à calculer taxes
le prix total à payer Réel variable à calculer prixTotal
la monnaie à remettre Réel variable à calculer monnaie
Dans ce tableau :
une variable est une information dont la valeur peut varier : le prix de
l'article, les taxes, le prix total, le montant donné, la monnaie à remettre varient
d'un client à un autre.
une constante est une information dont la valeur est inchangée : on
applique les mêmes taux de taxe peu importe le prix de l'article acheté.
un identificateur est un seul mot permettant d'identifier l'information (on
donne un nom à l'information).
Étape 3 : Faire un algorithme (un cheminement plus détaillé)
Obtenir le prix de l'article acheté
Écrire un message à l'écran pour demander à l'usager d'entrer le prix de
l'article.
Lire prix (tapé au clavier par l'usager)
Calculer les taxes :
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 22
tps <------ prix x TAUX_TPS
tvq <------ (prix + tps) x TAUX_TVQ
taxes <------ tps + tvq
Calculer le prix total à payer:
prixTotal <---- prix + taxes
Afficher les prix et les taxes:
Écrire à l'écran : prix, tps, tvq, taxes, prix total
Saisir le montant donné par le client:
Écrire un message à l'écran pour demander à l'usager d'entrer le montant
donné par le client
Lire montant (tapé au clavier par l'usager)
Calculer la monnaie à remettre au client:
monnaie <----- montant – prixTotal
Afficher le montant et la monnaie :
Écrire à l'écran : montant, monnaie
Étape 4 : Traduire l'algorithme en langage de programmation
On traduit l'algorithme en utilisant le vocabulaire du langage (ici, le C) et sa syntaxe.
Le tableau d'analyse des informations est utile pour comprendre le problème et pour
faire les déclarations.
Cette étape, qui est expliquée plus en détail au premier cours théorique, nous amène à
un programme écrit en langage C comme suit :
#include <stdio.h> /* pour les entrées-sorties standard :
standard input output header file */
/* Ce programme permet :
- de saisir le prix d'un seul article
- de calculer les taxes tps, tvq, taxes et le prix total à
payer
- d'obtenir le montant donné par le client et de calculer la
monnaie à remettre au client
- d'afficher les informations pertinentes à l'écran
*/
int main()
{
const float TAUX_TPS = 0.06, /* 6 % de TPS */
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 23
TAUX_TVQ = 0.075; /* 7.5% de TVQ */
float prix, /*le prix de l'article*/
tps, tvq, taxes, /*les taxes*/
prixTotal, /*le prix total y compris les taxes*/
montant, monnaie; /*montant donné et la monnaie à remettre*/
/* Saisie du prix de l'article */
printf("Entrez le prix de l'article : ");
scanf("%f", &prix);
/* Calcul des taxes */
tps = TAUX_TPS * prix;
tvq = (prix + tps) * TAUX_TVQ;
taxes = tps + tvq;
/* Calcul du prix total à payer par le client */
prixTotal = prix + taxes;
/* Affichage des informations voulues */
printf("Prix : %6.2f \n", prix);
printf("TPS : %6.2f \n", tps);
printf("TVQ : %6.2f \n", tvq);
printf("Taxes : %6.2f \n", taxes);
printf("Prix total : %6.2f \n", prixTotal);
/* Obtention du montant donné par le client */
printf("Quel est le montant donné par le client ? ");
scanf("%f", &montant);
/* Calcul de monnaie à remettre */
monnaie = montant - prixTotal;
/* Affichage des informations */
printf("Montant : %6.2f \n", montant);
printf("Monnaie : %6.2f \n", monnaie);
return 0 ;
}
Dans ce programme, on utilise des mots de vocabulaire, des symboles ainsi que les
opérateurs suivants du C :
void main() : fonction principale
const : constante
float : type réel (exemple -23.7, 1.78, 67.9435, ...)
int : type entier (exemple -34, 0, 678, ...)
{ : début d'un bloc d'instructions
} : fin d'un bloc d'instructions
printf : afficher à l'écran avec format de présentation
scanf : lire (avec format) des données tapées au clavier
= : affectation (dépôt de valeur)
* : multiplication
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 24
/ : division
/* : début d'un commentaire (peut s'étendre sur plusieurs lignes)
*/ : fin d'un commentaire
Ces mots et ces symboles sont quasiment semblables à ceux du premier exemple. On
parviendra à comprendre et à retenir cela très rapidement. Il reste une dizaine d'autres
mots à découvrir durant toute la session du cours IFT 1969.
Exercice 2
Écrire un programme qui permet de saisir la longueur et la largeur d'un rectangle et qui
calcule le périmètre et la surface de ce rectangle. Voici les informations pour le
traitement :
Votre programme doit afficher les informations sur le rectangle en question.
Quelles sont les données?
La largeur et la longueur.
Quels sont les résultats?
Le périmètre et la surface.
Le traitement devra s'effectuer de la façon suivante :
périmètre = 2 * (longueur + largeur)
surface = longueur * largeur
Tableau d'analyse des informations
INFORMATION TYPE NATURE VALEUR IDENTIFICATEUR
Données:
la longueur du rectangle Réel variable à saisir longueur
la largeur du rectangle Réel variable à saisir largeur
Résultats:
le périmètre Réel variable à calculer perimetre
la surface Réel variable à calculer surface
Cheminement :
Obtenir les données du problème
Lire longueur, largeur
Traitement
Calculer perimetre: perimetre <---- 2 * (longueur + largeur)
Calculer surface: surface <---- longueur * largeur
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 25
Affichage des résultats
Afficher longueur
Afficher largeur
Afficher perimetre
Afficher surface
Le code en langage C
#include <stdio.h>
/* Auteurs : Grondin Gontran, Section A et
Xérès Yabon, Section B
Date : 13 septembre 2007 pour le cours IFT 1969
But : Ce programme permet de saisir la longueur et la largeur
d'un rectangle.
On calcule le périmètre et la surface :
perimetre = 2 x (longueur + largeur)
surface = longueur x largeur
On affiche les informations du rectangle
*/
int main()
{
float longueur, largeur, perimetre, surface;
/* Saisie des coordonnées du rectangle */
printf("Entrez la longueur et la largeur du rectangle ");
scanf("%f%f", &longueur, &largeur);
/* Calcul du périmètre : */
perimetre = 2 * (longueur + largeur);
/* Calcul de la surface : */
surface = longueur * largeur;
/* Affichage : */
printf("Informations du rectangle : \n");
printf(" La longueur : %8.2f\n", longueur);
printf(" La largeur : %8.2f\n", largeur);
printf(" Le perimetre : %8.2f\n", perimetre);
printf(" La surface : %8.2f\n", surface);
return 0 ;
}
Exécution
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 26
Entrez la longueur et la largeur du rectangle 20 5.5
Informations du rectangle :
La longueur : 20.00
La largeur : 5.50
Le perimetre : 51.00
La surface : 110.00
Exercice 3 (sans solution)
Faire les étapes nécessaires pour écrire finalement un programme en langage C qui
permet :
de saisir le rayon d'un cercle
de calculer et d'afficher à l'écran
o le périmètre (2 x PI x Rayon dont PI vaut 3.14159)
o la surface (PI x Rayon x Rayon)
de saisir un côté (la longueur ou la largeur) d'un rectangle qui a le même
périmètre que le cercle
de calculer et d'afficher à l'écran l'autre côté (la largeur ou la longueur) du
rectangle sachant que :
o Périmètre du rectangle = 2 x (longueur + largeur)
E) Allure d'un programme simple
Un programme écrit en langage C comporte souvent :
1. des fichiers d'en-tête (header file):
#include <xxxx.h>
2. des déclarations "globales" (à voir plus tard dans le cours)
3. une fonction principale (main) qui contient des déclarations et des instructions en
langage C
4. des sous-programmes (en langage C on n'a que des fonctions qui se trouvent
avant et/ou après la fonction principale : ceci sera approfondi dans le cours
suivant : IFT 1160).
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 27
5. des commentaires sur une ou plusieurs lignes : entre /* et */ (en langage C et
en langage C++)
/* les fichiers d'en-tête */
#include <stdio.h>
/* déclarations globales: à voir plus tard dans le cours */
const int NB_CARACTERES = 20;
/* fonction avec return: à voir plus tard dans le cours */
float plusGrande(float taille1, float taille2)
{
.....
return maximum;
.....
}
/* fonction de type void : à voir plus tard dans le cours */
void afficher(int age, char sexe, float taille)
{
.....
}
/* fonction principale */
return main()
{
.....
return 0 ;
}
F) Exercices supplémentaires
Exercice 1
Faire les étapes nécessaires pour écrire finalement un programme en langage C qui
permet :
de saisir la température en degrés Farenheit;
de convertir cette température en degrés Celsius sachant que :
degrés Celsius = x (degrés Farenheit - 32)
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 28
d'afficher la température en degrés Farenheit et degrés Celsius.
Quelles sont les données?
La température en degrés Farenheit.
Quels sont les résultats?
La température une fois convertie en degrés Celsius.
Exigences du traitement :
Si la température est de 62 degrés Farenheit, on soustrait 32 de 62 pour
obtenir 30 puis on multiplie ce résultat par 5 et on divise par 9. La température
une fois la conversion achevée est de 16.66 degrés Celsius.
Tableau d'analyse des informations
INFORMATION TYPE NATURE VALEUR IDENTIFICATEUR
Données:
la température en degrés Farenheit Réel variable à saisir degreF
Résultats:
la température en degrés Celsius Réel variable à calculer degreC
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 29
Cheminement
Obtenir la donnée du problème
Lire degreF
Conversion
degreC <---- 5 / 9 * (degreF - 32)
Affichage du résultat
Afficher degreC
Le code en langage C
#include <stdio.h>
/* Exemple simple :
degrés Celsius = 5 / 9 x (degrés Farenheit - 32)
*/
int main()
{
float degreF, degreC; /* temperature en degres Farenheit et Celsius */
printf("Quelle est la temperature en degres Farenheit? ");
scanf("%f", °reF);
/* Conversion : */
degreC = 5 / 9.0 * (degreF - 32);
printf("Il fait %6.1f degres en Celsius\n", degreC);
printf("\n");
return 0 ;
}
Exécution
Quelle est la temperature en degres Farenheit? 100
Il fait 37.8 degres en Celsius
Quelle est la temperature en degres Farenheit? 85.1
Il fait 29.5 degres en Celsius
Quelle est la temperature en degres Farenheit? 70.8
Il fait 21.6 degres en Celsius
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 30
Remarque : dans la formule qui effectue la conversion (voir ci-dessus l'instruction en
caractères gras), les parenthèses indiquent que la soustraction doit être effectuée en
premier (avant la division et la multiplication). Ces parenthèses sont nécessaires.
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 31
Exercice 2 (sans solution)
Faire les étapes nécessaires pour écrire finalement un programme en langage C qui
permet :
de saisir les poids en kilogrammes de trois personnes
de convertir et d'afficher les poids en livres (1 kilogramme = 2.2 livres)
de calculer et d'afficher la moyenne des trois poids en kilogrammes et en livres
Chapitre 1 : Introduction à la programmation IFT 1969 / A07 Page 32