170 likes | 443 Views
COURS A2I12 Initiation à l'algorithmique illustrée par le langage C. Guillaume BOURLET Département GEII IUT Sénart/Fontainebleau. Cours N° 2. Les instructions répétitives (boucles). Algo. Les instructions répétitives.
E N D
COURS A2I12Initiation à l'algorithmique illustrée par le langage C Guillaume BOURLET Département GEII IUT Sénart/Fontainebleau Les structures de contrôle
Cours N° 2 • Les instructions répétitives (boucles) Les structures de contrôle
Algo 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) Les structures de contrôle
Algo 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 10 fois de suite… Il faut afficher le chiffre 7, suivi de x Il faut afficher le signe = suivi du résultat de 7*compteur Il faut afficher un compteur ( qui va de 1 à 10 ) Et passer à la ligne Les structures de contrôle
Algo 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 : 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 Les structures de contrôle
Début du programme Pour i allant de 1 à 10 i = 1 i = 11 non oui i i + 1 i <= 10 ? Fin pour Suite du programme Algo La boucle "pour" 7x1=7 7x2=14 7x3=21 i = 2 i = 3 i = 10 i = 11 i = 4 i = 8 i = 6 i = 7 i = 9 i = 5 7x4=28 7x5=35 7x6=42 Écrire "7x", i, "=", 7*i SdL 7x7=49 7x8=56 7x9=63 7x10=70 Les structures de contrôle
C La boucle "for" du C Condition de continuation short i ; /* déclaration du compteur */ for ( i=1; i<=10 ; i=i+1) { printf("7 x %2d = %2d\n",i,7*i); } Initialisation du compteur Incrémentation du compteur en-tête de boucle Corps de boucle Affichage de la table de 7 Les structures de contrôle
Faux Vrai C La boucle "for" du C Schéma d'exécution for ( i=1; i<=10 ; i=i+1) { printf("7 x %2d = %2d\n",i,7*i); } Les structures de contrôle
Algo La boucle "tant que {…}" 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" 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. Les structures de contrôle
Début du programme Tant que rep vaut 'o' non oui i i+7 Écrire i, " est un multiple de 7" SdL Écrire "Encore ?" Saisir rep Fin tant que Suite du programme Algo La boucle "tant que" 0 est un multiple de 7 Encore ? o i = 7 i = 14 i = 0 i = 21 7 est un multiple de 7 Encore ? o 14 est un multiple de 7 Encore ? rep='o' rep='o' rep='n' rep='o' o 21 est un multiple de 7 Encore ? n Au revoir Les structures de contrôle
en-tête de boucle C La boucle "while" du C Initialisation de la variable de contrôle Condition de continuation short i ; /* variable de contrôle */ i=1 ; while (i<=10) { printf("7 x %2d = %2d\n",i,7*i); i=i+1; } Affichage de la table de 7 Corps de boucle Incrémentation de la variable de contrôle Les structures de contrôle
Faux Vrai C 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; } Les structures de contrôle
Vrai Faux Algo La boucle "faire {…} tant que" Faire 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 Bloc d'instructions Tant que (condition) Les structures de contrôle
en-tête de boucle C La boucle "do … while" du C Initialisation de la variable de contrôle short i ; /* variable de contrôle */ i=1 ; do { printf("7 x %2d = %2d\n",i,7*i); i=i+1; } while (i<=10); Affichage de la table de 7 Corps de boucle Incrémentation de la variable de contrôle Condition de continuation Les structures de contrôle
Faux Vrai Algo La boucle "répéter {…} jusqu'à" Répéter 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. Bloc d'instructions Jusqu'à (condition) Cette structure n'est pas implémentée en C Les structures de contrôle
C Les trois boucles du C La boucle for : for ( initialisation de i ; condition de continuation ; mise à jour de i ) { instructions …… } 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 ) ; Les structures de contrôle
Algo & C Correspondance Algo - C Les structures de contrôle