• Aucun résultat trouvé

Chapitre 1Chapitre 1 : Introduction à la programmation: Introduction à la programmation

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre 1Chapitre 1 : Introduction à la programmation: Introduction à la programmation"

Copied!
1
0
0

Texte intégral

(1)

Chapitre 1

Chapitre 1 : Introduction à la programmation : 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 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, les langages utilisés sont le langage C (9 semaines ) et le Visual Basic (3 semaines) qui sont populaires sur le marché du travail.

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 :

le français, l'anglais, l'espagnol, etc. Exemples :

le langage C, le langage C++, le Java, le Visual Basic, etc.

le vocabulaire utilisé :

plein de mots à connaître : dictionnaires (Larousse, Petit Robert, …)

le vocabulaire utilisé :

très restreint : une trentaine de mots dont on comprend vite le sens et qui reviennent à chaque exemple, donc facile à retenir Syntaxe :

grande dimension et difficile

 des règles partout!

 livres sur les verbes

 livres sur les règles grammaticales

 dictionnaires sur le bon usage de…

 dictionnaires des difficultés de…

Syntaxe :

petite dimension et facile :

 quelques règles

 erreurs détectées et localisées par l'ordinateur (à expliquer en classe)

 on n'a pas besoin d'apprendre par 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 (voir l’annexe E) qui sont simples à retenir.

ORDINATEUR

(2)

 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 VB 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!

(3)

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 à à Résultats escomptés

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. Les principaux sont :

 Pascal : excellent pour l’apprentissage d’un premier langage de programmation.

 Visual Basic : tout aussi excellent que Pascal 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é, autant pour le développement d'applications que pour le développement d'applets (Internet).

ORDINATEUR

Programmes ou logiciels

(4)

8) Fichier : document enregistré sur un support permanent, le plus souvent 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 mot 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 choisir un seul mot de passe sous Windows (pour utiliser

les logiciels aux laboratoires) et sous UNIX (pour la remise électronique, courrier électronique). Veuillez le conserver précieusement.

(5)

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

(6)

Faire un tableau d'analyse des informations

INFORMATION TYPE NATURE VALEUR IDENTIFICATEUR

Données:

le premier coefficient le deuxième coefficient le troisième coefficient

réel réel réel

variable variable variable

à saisir à saisir à saisir

a b c Résultats:

le déterminant delta la première racine la deuxième racine

réel réel réel

variable variable variable

à calculer à calculer à calculer

Delta x1 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.

Avant de programmer, on vérifie l'exactitude de l'algorithme.

(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, Hiver 2003 Premier exemple simple :

Résoudre une équation du second degré :

ax2 + bx + c = 0

*/

#include <stdio.h>

#include <math.h>

void 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");

}

(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.

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

(9)

n’apparaissent pas (dans notre environnement) lorsque nous exécutons le programme.

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)).

(10)

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.

(11)

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

(12)

Faire un tableau d'analyse des informations

INFORMATION TYPE NATURE VALEUR IDENTIFICATEUR

Données:

le nb de pieds le nb de pouces

Facteur de conversion

Entier Entier Réel

variable variable constante

à saisir à saisir 0.3048

nbPieds nbPouces 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 :

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.

(13)

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>

void 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);

}

Explications sommaires du programme 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 ...)

(14)

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 :

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).

La valeur d'une variable peut varier durant l'exécution du programme (la taille varie d'une personne à une autre personne).

(15)

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).

(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.

(17)

Éléments de base du langage C

Dans ce programme, on utilise des mots de vocabulaire ainsi que les symboles suivants du langage 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

/ : 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.

(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.07 /* 7% 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;

(19)

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++ de Microsoft comme dans nos laboratoires : Visual C++).

Une démonstration sera faite en classe et/ou au laboratoire.

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.

(20)

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 : 7 % 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

 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 : 7 %

taux de TVQ : 7.5 %

le montant donné par le client pour payer l'article acheté.

(21)

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.07 x prix = 0.70 $

tvq = 0.075 x (prix + tps) = 0.075 x 10.70 = 0.80 $ taxes = tps + tvq = 0.70 + 0.80 = 1.50 $ prix total à payer = prix + taxes = 10.00 $ + 1.50 $ = 11.50 $

Si le montant donné est 15.00 $, la monnaie à remettre est :

15.00 - 11.50 = 3.50 $

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 le taux de TPS

le taux de TVQ

le montant donné par le client Réel Réel Réel Réel

variable constante constante variable

à saisir 0.07 0.075 à saisir

prix TAUX_TPS TAUX_TVQ montant Résultats:

la taxe TPS la taxe TVQ

la somme des deux taxes le prix total à payer la monnaie à remettre

Réel Réel Réel Réel Réel

variable variable variable variable variable

à calculer à calculer à calculer à calculer à calculer

tps tvq taxes prixTotal monnaie

(22)

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 :

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

(23)

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

void main() {

const float TAUX_TPS = 0.07, /* 7 % de TPS */

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);

(24)

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

}

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 / : 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)

(25)

 surface = longueur * largeur

(26)

Tableau d'analyse des informations

INFORMATION TYPE NATURE VALEUR IDENTIFICATEUR

Données:

la longueur du rectangle la largeur du rectangle

Réel Réel

variable variable

à saisir à saisir

longueur largeur Résultats:

le périmètre

la surface Réel

Réel variable

variable à calculer

à calculer perimetre surface

Cheminement :

Obtenir les données du problème Lire longueur, largeur Traitement

Calculer perimetre: perimetre <---- 2 * (longueur + largeur) Calculer surface: surface <---- longueur * largeur

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 : 7 janvier 2002 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 */

void main() {

float longueur, largeur, perimetre, surface;

(27)

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

}

Exécution

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)

(28)

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).

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

void main() {

...

}

(29)

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 =

9

5 x (degrés Farenheit - 32)

 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

(30)

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

void 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");

}

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

(31)

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.

(32)

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

Références

Documents relatifs

Si Ferguson G. dans Diglossia recense les situations dans lesquelles la variété H est utilisée et celle où la variété L est employée dans la so- ciété diglossique, Gumperz

Écrire une fonction isMatrix qui prend en paramètre un tableau de tableaux d’entiers et vérifie qu’il s’agit de l’encodage d’une matrice (c’est à dire que chaque

 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

Mˆeme question que pr´ec´edemment, mais en ne calculant qu’une fois la valeur de 2*x+1 (et sans utiliser de fonction “carr´e”).. Mˆeme probl`eme qu’`a la question 6, mais

Écrivez une fonction qui prend en entrée deux valeurs a et b et qui renvoie la solution de l'équation

L'évaluation de l'application de la valeur fonctionnelle étant achevée, l'environnement est restauré dans son état d'avant cette évaluation, soit l'environnement E 2.. Le

Une fois revenu dans votre répertoire, vous allez déplacer le fichier info.c (par exemple) vers le sous-répertoire TP que vous aurez créé auparavant, en tapant la commande :.

En effet, c’est l’application de la programmation math´ ematique aux probl` emes avec les donn´ ees qui ne sont pas d´ et´ erministes, mais qui peuvent ˆ etre d´ ecrites par