"Papa" "maman" > "Papa" = Comparaison constituée dune valeur, dun opérateur de comparaison, dune 2 nde valeur. VRAI FAUX VRAI">

La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

4. Les structures de tests P. Costamagna – ISEN N1.

Présentations similaires


Présentation au sujet: "4. Les structures de tests P. Costamagna – ISEN N1."— Transcription de la présentation:

1 4. Les structures de tests P. Costamagna – ISEN N1

2 P. Costamagna2 A. Structure dun test simple Instruction permettant de rompre lordre séquentiel dun programme. Langage intermédiaire Si booléen Alors instructions (1)... Finsi instructions (2) - variable - condition Exécuté si le booléen est vrai Exécuté dans tous les cas

3 P. Costamagna3 B. Quest ce quune condition ? Exemple "t" < "w" "Maman" > "Papa" "maman" > "Papa" = Comparaison constituée dune valeur, dun opérateur de comparaison, dune 2 nde valeur. VRAI FAUX VRAI

4 P. Costamagna4 B. Quest ce quune condition ? (suite1) Soit la condition " Truc est compris entre 5 et 8 ". On peut être tenté de la traduire par : 5 < Truc < 8. Une telle expression, qui a du sens en mathématiques, ne veut rien dire en programmation. Il ny a pas une, mais deux conditions reliées par un opérateur logique. Cette condition revient à dire: Truc est supérieur à 5 ET Truc est inférieur à 8 et sécrira donc en langage C (TRUC > 5) && (TRUC < 8) Exemple

5 P. Costamagna5 B. Quest ce quune condition ? (suite2) Langage C Exercice Ecrire en langage intermédiaire puis en langage C, un algorithme qui transforme un entier en un naturel (entier positif). if ( expression ) { instructions (1) } instructions (2) Pas de ;

6 P. Costamagna6 B. Solution de lexercice Liste des variables N de type entier contenant lentier lu Début Affiche (« Donner un entier ») Lis et Place dans N Si N < 0 alors Place -N dans N Finsi Affiche (« Naturel correspondant : ») Affiche (N) Fin Langage intermédiaireLangage C void main() { int N ; ecrisChaine (« Saisir un entier ») ; N=lisEntier () ; if (N < 0) N = -N ; sautDeLigne(); ecrisChaine («Naturel correspondant: » ); ecrisEntier(N) ; }

7 P. Costamagna7 C. Structure dun test alternatif Langage intermédiaire Si booléen Alors instructions (1)... Sinon instructions (2) FinSi instructions (3) Exécuté si le booléen est vrai Exécuté si le booléen est faux Exécuté dans tous les cas

8 P. Costamagna8 C. Structure dun test alternatif (suite1) Langage C Exercice Ecrire en langage intermédiaire puis en langage C, un algorithme qui teste une température deau et indique sil sagit de glace (<=0) ou de liquide. if ( expression ) { instructions (1) } else { instructions (2) } instructions (3)

9 P. Costamagna9 C. Solution de lexercice Liste des variables TEMP de type réel correspondant à la température de leau à tester Début Affiche (« Donner une température ») Lis et Place dans TEMP Si TEMP < = 0 alors Affiche (« cest de la glace ») Sinon Affiche (« cest du liquide ») Finsi Fin Langage intermédiaireLangage C void main() { float TEMP ; ecrisChaine (« Donner une température ») ; TEMP = lisFlottant () ; sautDeLigne(); if (TEMP <= 0) ecrisChaine (« Cest de la glace »); else ecrisChaine (« Cest du liquide »); }

10 P. Costamagna10 D. Les tests imbriqués Les instructions placées dans les blocs dinstructions peuvent être quelconques. Elles peuvent en particulier contenir dautres tests. On a alors des tests en cascade, ce qui permet de disposer de plus de 2 alternatives. Exemple if (expression1 ) { ……. if (expression2 ) { ……. } else { ……. } else { ……. } ……. Exécuté si lexpression1 est vraie Exécuté si lexpression1 et lexpression2 sont vraies Exécuté si lexpression1 est vraie et lexpression2 est fausse Exécuté si lexpression1 est fausse Exécuté dans tous les cas

11 P. Costamagna11 E. Quelques erreurs à éviter Si lexpression est vraie, linstruction 2 est exécutée,puis le programme continue en séquence avec linstruction 3. Il fallait écrire: ….. if ( a < b ) ecrisChaine (« Ordonné »); max = b; else ecrisChaine (« Non ordonné »); … if ( a < b ) { ecrisChaine (« Ordonné »); max = b; } else ecrisChaine (« Non ordonné »); Oubli des accolades pour délimiter un bloc:

12 P. Costamagna12 E. Quelques erreurs à éviter (suite1) On préfèrera lécriture: ….. if ( a < b ) if ( b < c ) ecrisChaine (« Ordonné »); else ecrisChaine (« Non ordonné »); … Un else se rapporte toujours au dernier if rencontré. if ( a < b ) if ( b < c ) ecrisChaine (« Ordonné »); else ecrisChaine (« Non ordonné »); Moins de else que de if, attention aux ambiguïtés:

13 P. Costamagna13 E. Quelques erreurs à éviter (suite2) Un ; marque la fin dune instruction en langage C. Linstruction 1 correspond alors à une instruction vide. ….. if ( a < b ) ; { ecrisChaine (« Ordonné »); max = b; } else ecrisChaine (« Non ordonné »); … Un point-virgule mal placé:

14 P. Costamagna14 E. Quelques erreurs à éviter (suite3) Lorsque le compilateur va évaluer l'expression a=3, il va d'abord affecter 3 à a, et le résultat de cette affectation sera toujours vrai. Il faut donc écrire: ….. if ( a = 3 ) ecrisChaine (« a est égal à trois »); Ne pas confondre == (comparaison) et = (affectation). if ( a == 3 ) ecrisChaine (« a est égal à trois »); Une affectation au lieu dune comparaison:

15 P. Costamagna15 F. Exercice Ecrire en langage intermédiaire puis en langage C, un algorithme qui effectue la résolution dune équation du 1 er degré (ax + b = 0)

16 P. Costamagna16 G. Solution de lexercice Liste des variables A, B de type réel correspondant aux coefficients de léquation SOL de type réel correspondant à la solution (si elle existe) Début Affiche (« Saisir les coefficients ») Lis et Place dans A Lis et Place dans B Si (A != 0) alors Place - B / A dans SOL Affiche (« La solution est », SOL) Sinon Si (B == 0) alors Affiche (« Infinité de solutions ») Sinon Affiche (« Pas de solution ») FinSi Fin Langage intermédiaireLangage C void main() { float A, B, SOL ; ecrisChaine (« Saisir les coefficients ») ; A=lisFlottant () ; B =lisFlottant ( ) ; sautDeLigne( ) ; if (a != 0) { SOL = -B / A ; ecrisChaine (« La solution est : ») ; ecrisFlottant (SOL) ; } else if (B == 0) ecrisChaine (« Infinité de solutions ») ; else ecrisChaine (« Pas de solution ») ; }


Télécharger ppt "4. Les structures de tests P. Costamagna – ISEN N1."

Présentations similaires


Annonces Google