Chapitre 1

Télécharger au format doc, pdf ou txt
Télécharger au format doc, pdf ou txt
Vous êtes sur la page 1sur 32

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 : tp1.cpp, tp2.c, metrique.dta,
tp1.exe, …
 
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 %n.kf 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", &degreF);

/* 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

Vous aimerez peut-être aussi