Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte
INSTRUCTIONS CONDITIONNELLES Problème Écrire un algorithme qui calcule la moyenne des étudiants de L1
INSTRUCTIONS CONDITIONNELLES
INSTRUCTIONS CONDITIONNELLES
INSTRUCTIONS CONDITIONNELLES
INSTRUCTIONS CONDITIONNELLES Syntaxe si (condition) alors instructions ; sinon instructions ; finsi évaluer la condition (expression booléenne) en fonction de la valeur (vraie ou fausse), exécuter l’instruction du alors ou du sinon continuer avec les instructions après le finsi
INSTRUCTIONS CONDITIONNELLES exemple
INSTRUCTIONS CONDITIONNELLES exemple
INSTRUCTIONS CONDITIONNELLES Conditionnelles emboitées
INSTRUCTIONS CONDITIONNELLES Sélection sur choix multiples : Lorsqu’il y a plus de 2 choix possibles, l’instruction selon que permet une écriture plus lisible: selon que variable valeur : instructions … autres: instructions La variable peut être une variable de type scalaire ou une expression arithmétique ou logique
INSTRUCTIONS CONDITIONNELLES exemple: Selon que abréviation "M" : écrire " Monsieur " "Mme" : écrire " Madame " "Mlle" : écrire " Mademoiselle " autres: écrire " Monsieur, Madame "
INSTRUCTIONS CONDITIONNELLES exemple: selon que abréviation "M" : écrire " Monsieur " "Mme" : écrire " Madame " "Mlle" : écrire " Mademoiselle " autres: écrire " Monsieur, Madame " Équivalent de : si abréviation = "M " alors écrire " Monsieur " sinonsi abréviation = "Mme " alors écrire " Madame " sinonsi abréviation = "Mlle" alors écrire " Mademoiselle " sinon écrire " Monsieur, Madame " finsi
INSTRUCTIONS CONDITIONNELLES Condition Une condition est une comparaison. C’est-à-dire qu’elle est composée de trois éléments une valeur un opérateur de comparaison une autre valeur Opérateurs logiques > < == ≤≥ NON
INSTRUCTIONS CONDITIONNELLES Conditions composées OUET Exemple si vacances et soleil alors écrire « allons à la plage » finsi
Structures itératives Quand il faut répéter un traitement… exemple : demander des valeurs et afficher le total
Structures itératives Quand il faut répéter un traitement… exemple : demander des valeurs et afficher le total Algorithme FaitLeTotal //Cet algorithme fait la somme des nbVal données qu'il saisit variables nbVal, cpt :entiers; valeur, totalValeurs: réels; début{initialisation du traitement} ecrire "Combien de valeurs voulez-vous saisir? "; lire nbVal ;//initialisation du total à 0 avant cumul totalValeurs←0;//traitement qui se répète nbValfois pour cpt de 1 à nbVal// début de la boucle faire ecrire "Donnez une valeur :"; lire valeur; totalValeurs←totalValeurs+ valeur ;//cumul finpour//fin de la boucle ecrire "Le total des " + nbVal, "valeurs est " + totalValeurs; fin
Structures itératives But Exécuter une même suite d'instructions plusieurs fois (on sait exactement combien de fois on veut les exécuter : c'est une boucle définie). Syntaxe pour ( variable de val_init à val_finale pas val_pas ) faire instructions à exécuter ; Finpour Attention : il n'y a pas de ; après le mot faire.
Structures itératives pour ( variable de val_init à val_finale pas val_pas ) faire instructions à exécuter ; Finpour Fonctionnement 1. la valeur de val_init est affectée à la variable 2. les instructions sont exécutées une fois 3. la variable est incrémentée de val_pas (variable variable + val_pas) 4. on recommence à l'étape 2. La variable prend successivement les valeurs comprises entre val_init et val_finale de val_pas en val_pas. La boucle s'arrête quand on dépasse la val_finale.
Structures itératives pour ( variable de val_init à val_finale pas val_pas ) faire instructions à exécuter ; Finpour La variable et les valeurs initiale, finale et du pas doivent être du type nombre (entier ou réel) Les valeurs doivent être cohérentes par rapport au pas. Le compteur La variable est souvent appelée compteur. Ce compteur ne DOIT PAS être modifié dans la boucle Il vaut mieux ne pas utiliser ce compteur en dehors de la boucle.
Structures itératives Exemple N 2 ; pour (i de n à 4 pas 1) faire x 2*i ; finpour X x+3 ;
Structures itératives Exemple 1 N 2 ; pour (i de n à 4 pas 1) faire x 2*i ; finpour X x+3 ;
Structures itératives Exemple 1 N 2 ; pour (i de n à 4 pas 1) faire x 2*i ; finpour X x+3 ;
Structures itératives Exemple 2 Écrire un algorithme qui, pour chacun des 100 entiers saisis par l'utilisateur, affiche s'il est pair ou impair.;
Structures itératives Exemple 2 Écrire un algorithme qui, pour chacun des 100 entiers saisis par l'utilisateur, affiche s'il est pair ou impair. n 100 ; pour (i de 1 à n pas 1) faire lire val ; si ((val mod 2) == 0) alors écrire "Le nombre " + val + " est pair" ; sinon écrire "Le nombre " + val + " est impair" ; finsi finpour
Structures itératives Comment faire si l'on ne connait pas le nombre d'itérations ? On ne peut plus utiliser la boucle pour ! Exemple on souhaite afficher les valeurs successives des carrés de nombres entiers croissants à partir de 1, mais seulement tant que la valeur du carré ne dépasse pas 30.
Structures itératives Comment faire si l'on ne connait pas le nombre d'itérations ? On ne peut plus utiliser la boucle pour ! Exemple on souhaite afficher les valeurs successives des carrés de nombres entiers croissants à partir de 1, mais seulement tant que la valeur du carré ne dépasse pas 30. on initialise n à 1 on initialise le carré de n tant que la valeur du carré qu'on vient de calculer est inférieure à 30 on affiche cette valeur on calcule le carré du nombre entier suivant
Structures itératives Comment faire si l'on ne connait pas le nombre d'itérations ? On ne peut plus utiliser la boucle pour ! Exemple on souhaite afficher les valeurs successives des carrés de nombres entiers croissants à partir de 1, mais seulement tant que la valeur du carré ne dépasse pas 30. n 1 ; carre n*n ; tant que (carre ≤ 30) faire écrire carre ; n n+1 ; Carre n*n ; Fin tantque
Structures itératives Boucle Tant que Exécuter une même suite d'instructions plusieurs fois, tant qu'une condition est vérifiée (on peut ne pas prévoir le nombre d'itérations). Syntaxe tant que ( condition ) faire instructions à exécuter ; Fintantque Principe Tant que la condition (expression booléenne) est vérifiée, les instructions sont exécutées.
Structures itératives Boucle Tant que Exécuter une même suite d'instructions plusieurs fois, tant qu'une condition est vérifiée (on peut ne pas prévoir le nombre d'itérations). Remarque : le corps de la boucle n'est donc pas exécuté si la condition ( test de la boucle ) est fausse dès le départ.
Structures itératives Exemple 01 entier n, p, i ; 02 début 03 n 10 ; 04 p 1 ; 05 i 0 ; 06 tant que (p n) faire 07 p p*2 ; 08 i i+1 ; 09 fintantque 10 écrire p ; 11 fin
Structures itératives Exemple 01 entier n, p, i ; 02 début 03 n 10 ; 04 p 1 ; 05 i 0 ; 06 tant que (p n) faire 07 p p*2 ; 08 i i+1 ; 09 fintantque 10 écrire p ; 11 fin
Structures itératives Exemple 01 entier n, p, i ; 02 début 03 n 10 ; 04 p 1 ; 05 i 0 ; 06 tant que (p n) faire 07 p p*2 ; 08 i i+1 ; 09 fintantque 10 écrire p ; 11 fin
Structures itératives Attention : Éviter les boucles infinies Si la condition est TOUJOURS vraie, la boucle ne s'arrête jamais!! Afin d'éviter les boucles infinies, il faut vérifier que la condition puisse prendre la valeur faux. Vérification aux valeurs limite ! Vérifiez tous les cas, et en particulier les cas limite qui pourraient causer un mauvais comportement de la boucle. Vérifiez que votre boucle peut s'exécuter (votre test doit pouvoir être vrai). Si votre condition est une expression booléenne composée (c.-à-d. utilisant et, ou ), analysez les cas possibles de sortie de boucle. Testez votre boucle sur quelques valeurs pour vérifier son fonctionnement