02/10/2015Les structures de contrôle1 COURS A2I12 Initiation à l'algorithmique illustrée par le langage C Guillaume BOURLET Département GEII IUT Sénart/Fontainebleau
02/10/2015Les structures de contrôle2 Cours N° 2 Les instructions répétitives (boucles)
02/10/2015Les structures de contrôle3 Les instructions répétitives Il arrive fréquemment qu'on doive répéter la même instruction plusieurs fois de suite. On dispose de structures qui permettent ces répétitions. La boucle "pour" pour i allant de A à B faire {…} La boucle "tant que" tant que (condition vraie) faire {…} La boucle "faire … tant que" faire {…} tant que (condition vraie) La boucle "répéter … jusqu'à" répéter {…} jusqu'à (condition vraie) Algo
02/10/2015Les structures de contrôle4 La boucle "pour" Elle est utile lorsqu'on veut exécuter un certain nombre de fois une instruction, et qu'on sait par avance combien de fois. Exemple : Afficher la table de 7 Algo 10 fois de suite… Il faut afficher le chiffre 7, suivi de x Il faut afficher un compteur ( qui va de 1 à 10 ) Il faut afficher le signe = suivi du résultat de 7*compteur Et passer à la ligne
02/10/2015Les structures de contrôle5 La boucle "pour" Appelons i le compteur, c'est un entier qui va de 1 à 10. En algorithmique, l'affichage de la table de 7 s'écrit : Algo Déclarer i entier Pour i allant de 1 à 10 Écrire "7x" Écrire i Écrire "=" Écrire 7*i Faire un saut de ligne (SdL) Fin pour Ou pour aller plus vite : Déclarer i entier Pour i allant de 1 à 10 Écrire "7x", i, "=", 7*i SdL Fin pour
02/10/2015Les structures de contrôle6 La boucle "pour" Algo Fin pour Suite du programme i = 11 Écrire "7x", i, "=", 7*i SdL i i + 1 Pour i allant de 1 à 10 Début du programme i <= 10 ? i = 1 non oui i = 2i = 3 7x1=7 7x2=14 7x7=49 7x3=21 7x8=56 7x4=28 7x6=42 7x5=35 7x10=70 7x9=63 i = 4i = 5i = 6i = 7i = 8i = 9i = 10i = 11
02/10/2015Les structures de contrôle7 La boucle "for" du C short i ; /* déclaration du compteur */ for ( i=1; i<=10 ; i=i+1) { printf("7 x %2d = %2d\n",i,7*i); } C Incrémentation du compteur Condition de continuation Initialisation du compteur en-tête de boucle Corps de boucle Affichage de la table de 7
02/10/2015Les structures de contrôle8 La boucle "for" du C Schéma d'exécution C for ( i=1; i<=10 ; i=i+1) { printf("7 x %2d = %2d\n",i,7*i); } Vrai Faux
02/10/2015Les structures de contrôle9 La boucle "tant que {…}" On l'utilise quand on veut répéter des instructions tant qu'une condition est réalisée. Cette condition est testée avant d'entrer dans le corps de la boucle. Exemple : on propose à l'utilisateur d'afficher les multiples de 7 un par un et on lui demande à chaque fois s'il veut continuer. Algo Algorithme : Déclarer i entier rep caractère ('o' ou 'n') i 0 Écrire i, " est un multiple de 7" Écrire "Encore ?" Saisir rep Tant que (rep vaut 'o') i i+7 Écrire i, " est un multiple de 7" Écrire "Encore ?" Saisir rep Fin tant que Écrire "Au revoir"
02/10/2015Les structures de contrôle10 i = 0 La boucle "tant que" Algo Fin tant que Début du programme Suite du programme i i+7 Tant que rep vaut 'o' non oui 21 est un multiple de 7 7 est un multiple de 7 Encore ? o 14 est un multiple de 7 o Encore ? Au revoir n Écrire "Encore ?" Saisir rep Écrire i, " est un multiple de 7" SdL 0 est un multiple de 7 Encore ? o i = 7 rep='o' i = 14i = 21 rep='o' rep='n'
02/10/2015Les structures de contrôle11 La boucle "while" du C short i ; /* variable de contrôle */ i=1 ; while (i<=10) { printf("7 x %2d = %2d\n",i,7*i); i=i+1; } C Incrémentation de la variable de contrôle Condition de continuation Initialisation de la variable de contrôle Corps de boucle en-tête de boucle Affichage de la table de 7
02/10/2015Les structures de contrôle12 La boucle "while" du C Schéma d'exécution. i=1 ; while (i<=10) { printf("7 x %2d = %2d\n",i,7*i); i=i+1; } C Faux Vrai
02/10/2015Les structures de contrôle13 La boucle "faire {…} tant que" C'est la même chose qu'une boucle "tant que", mais la condition de continuation est située à la fin de la boucle et non au début Algo Faire Bloc d'instructions Tant que (condition) Vrai Faux
02/10/2015Les structures de contrôle14 La boucle "do … while" du C short i ; /* variable de contrôle */ i=1 ; do { printf("7 x %2d = %2d\n",i,7*i); i=i+1; } while (i<=10) ; C Incrémentation de la variable de contrôle Condition de continuation Initialisation de la variable de contrôle Corps de boucle en-tête de boucle Affichage de la table de 7
02/10/2015Les structures de contrôle15 La boucle "répéter {…} jusqu'à" C'est la même chose qu'une boucle "faire…tant que", mais la condition de fin de boucle est une condition de sortie et non de continuation. Si la condition de fin de boucle est vraie, alors on sort de la boucle. Algo Répéter Bloc d'instructions Jusqu'à (condition) Faux Vrai Cette structure n'est pas implémentée en C
02/10/2015Les structures de contrôle16 Les trois boucles du C La boucle for : for ( initialisation de i ; condition de continuation ; mise à jour de i ) { instructions …… } La boucle for : for ( initialisation de i ; condition de continuation ; mise à jour de i ) { instructions …… } C La boucle while : initialisation de i while ( condition de continuation ) { instructions …… (comprenant une mise à jour de i) } La boucle while : initialisation de i while ( condition de continuation ) { instructions …… (comprenant une mise à jour de i) } La boucle do … while : initialisation de i do { instructions …… (comprenant une mise à jour de i) } while ( condition de continuation ) ; La boucle do … while : initialisation de i do { instructions …… (comprenant une mise à jour de i) } while ( condition de continuation ) ;
02/10/2015Les structures de contrôle17 Correspondance Algo - C Algo & C ALGOC Boucle "Pour"Pas d'implémentation en C Boucle "Tant que …" Boucle "for" Boucle "while" Boucle "Faire…tant que"Boucle "do…while" Boucle "Répeter …jusqu'à"Pas d'implémentation en C