Faculté des Sciences de Gabès Cours Algorithme et Programmation Chapitre 4 : Structures conditionnelles Faîçal Felhi 1 Faîçal Felhi - [email protected] [email protected] Structures Il a été démontré que pour représenter n'importe quel algorithme, il faut disposer des trois possibilités suivantes: La structure de séquence qui indique que les opérations doivent être exécutées les unes après les autres la structure de répétition qui indique qu'un ensemble d'instructions doit être exécuté plusieurs fois. la structure de choix qui indique quel ensemble d'instructions doit être exécuté suivant les circonstances 2 Faîçal Felhi - [email protected] La structure alternative La structure alternative se présente en général sous la forme : si expression alors première séquence d'instructions sinon deuxième séquence d'instructions fsi 3 Faîçal Felhi - [email protected] La structure alternative où expression conditionne le choix d'un des deux ensembles d'instructions. Cette expression peut être soit vraie soit fausse Si l'expression est vraie, la première séquence d'instruction sera exécutée et la seconde sera ignorée; Si l'expression est fausse, seule la seconde séquence d'instructions sera effectuée. 4 Faîçal Felhi - [email protected] La structure alternative Le mot sinon indique où se termine la première séquence d'instructions et où commence la seconde. Le mot fsi (abrégé de "fin de si") indique où se termine la seconde séquence d'instructions. 5 Faîçal Felhi - [email protected] La structure alternative Dans certains cas, lorsque l'expression est fausse, aucune instruction ne doit être exécutée. La condition s'exprime alors plus simplement sous la forme: si expression alors séquence d'instructions fsi Quoi qu‟il arrive, les instructions qui suivent fsi seront exécutées. Chacune des séquences d'instructions d'un si ... fsi peut contenir des si...fsi. On dit alors que les structures sont imbriquées. 6 Faîçal Felhi - [email protected] La structure alternative Prendre l‟habitude de décaler et d‟utiliser les fsi si expression1 alors si expression2 alors instruction1 sinon instruction2 Différent de … 7 Faîçal Felhi - [email protected] Instruction de choix simple Rôle: Permet d‟exécuter des instructions quand une condition est vérifiée Syntaxe: Si condition Alors DébutSi { Instructions } FinSi 8 Faîçal Felhi - [email protected] Instruction de choix simple Ex: on veut afficher un message quand X est positive Si X > 0 Alors DébutSi Ecrire(„X est positive‟) FinSi 9 Faîçal Felhi - [email protected] Instruction de choix avec alternative Rôle: permet de spécifier ce qu‟il faut faire dans le cas où la condition n‟est pas vérifiée Syntaxe: Si condition Alors DébutSi { Instructions } FinSi Sinon DébutSinon { Instructions‟ } FinSinon 10 Faîçal Felhi - [email protected] Instruction de choix avec alternative Exemple : Si X > 0 Alors DébutSi Ecrire(„X est positive‟) Finsi Sinon DébutSinon Ecrire(„X n‟est pas positive) FinSinon 11 Faîçal Felhi - [email protected] Instruction de choix On peut imbriquer les conditions Exemple 12 Si X > 0 alors DébutSi Ecrire(„ X supérieur à 0‟) Finsi Sinon DébutSinon Si X=0 alors DébutSi Ecrire(„X égal à 0‟) FinSi Sinon DébutSinon Ecrire(„X inférieur à 0‟) FinSinon FinSinon La structure alternative Exemple : 2 joueurs A et B Chacun montre un certain nombre de doigts (de 0 à 5) Si la somme des nombres de doigts montrés est paire, le premier joueur a gagné Sinon c'est le second. Le problème est de faire prendre la décision par l'ordinateur. 13 Faîçal Felhi - [email protected] La structure alternative En Français : prendre connaissance du nombre de doigts de A prendre connaissance du nombre de doigts de B calculer la somme de ces deux nombres si la somme est paire, A est le gagnant si la somme est impaire, B est le gagnant. Remarque: Pour déterminer si un nombre est pair ou impair, il suffit de calculer le reste de la division par 2 (.. modulo 2): il vaut 0 dans le premier cas et 1 dans le second. 14 Faîçal Felhi - [email protected] La structure alternative En Algorithmique : Algorithme Jeux Var na,nb,reste entier Debut Ecrire (“Donner nombre doits Joueur1”) Lire (na) Ecrire (“Donner nombre doits Joueur2”) Lire (nb) reste (na + nb) mod 2 Si (reste = 0) alors Ecrire ("Le joueur A a gagné") Sinon Ecrire ("Le joueur B a gagné") FinSi Ecrire (« Fin Jeux") Fin 15 Faîçal Felhi - [email protected] Instruction de choix simple La condition peut être composée en utilisant des „ET‟ et des „OU‟ Exemple: Si ( ((Y=3) OU (Z<4)) ET (X>0)) Alors DébutSi {Instructions} FinSi 16 Faîçal Felhi - [email protected] Expressions logiques p q p et q p ou q VRAI VRAI VRAI VRAI VRAI FAUX FAUX VRAI FAUX VRAI FAUX VRAI FAUX FAUX FAUX FAUX Pour avoir vrai: OU= l‟un ou l‟autre doit être vrai ET= l‟un et l‟autre doivent être vrai 17 Faîçal Felhi - [email protected] Expressions logiques p non p VRAI FAUX FAUX VRAI Il existe des thèorèmes : non (p et q) est équivalent à (non p) ou (non q) non (p ou q) est équivalent à (non p) et (non q) 18 Faîçal Felhi - [email protected] Expressions logiques et variables booléennes a 1; b 2; c 3 (b > 8) ou (c < 1) ? 19 F ou F = F (b > 0) ou (c > 1) ? V ou V= V (b > 9) ou (c > 1) ? F ou V = V (b > a) et (c > b) ? V et V =V (b > a) et (c < 0) ? V et F = F non (c < a) ? Non(F)=V non ((b > a) et (c > b)) ? Non(V et V)=non(V)=F ((b > a) et (c > b)) ou (a < 0) ? (V et V)ou(F)=V ou F=V Faîçal Felhi - [email protected] Expressions logiques et variables booléennes a 3; b 1; c 2 (b > a) et (c > b) ? (b > a) et (c < 0) ? non (c < a) ? non ((b > a) et (c > b)) ? ((b > a) et (c > b)) ou (a < 0) ? 20 Faîçal Felhi - [email protected]