COURS A2I12 Initiation à l'algorithmique illustrée par le langage C
description
Transcript of COURS A2I12 Initiation à l'algorithmique illustrée par le langage C
21/04/23 Les structures de contrôle 1
COURS A2I12Initiation à l'algorithmique illustrée par le langage C
Guillaume BOURLET
Département GEII
IUT Sénart/Fontainebleau
21/04/23 Les structures de contrôle 2
Cours N° 2
Les instructions répétitives (boucles)
21/04/23 Les structures de contrôle 3
Les instructions répétitivesIl 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
21/04/23 Les structures de contrôle 4
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
7 x 1 = 77 x 2 = 147 x 3 = 217 x 4 = 287 x 5 = 357 x 6 = 427 x 7 = 497 x 8 = 567 x 9 = 637 x 10 = 70
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
21/04/23 Les structures de contrôle 5
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
21/04/23 Les structures de contrôle 6
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
21/04/23 Les structures de contrôle 7
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 continuationInitialisation
du compteur
en-tête de boucle
Corps de boucle
Affichage de la table de 7
21/04/23 Les structures de contrôle 8
La boucle "for" du CSchéma d'exécution
C
for ( i=1; i<=10 ; i=i+1)
{
printf("7 x %2d = %2d\n",i,7*i);
}
Vrai
Faux
21/04/23 Les structures de contrôle 9
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 entierrep caractère ('o' ou 'n')
i 0Écrire i, " est un multiple de 7"Écrire "Encore ?"Saisir repTant que (rep vaut 'o')
i i+7Écrire i, " est un multiple de 7"Écrire "Encore ?"Saisir rep
Fin tant queÉcrire "Au revoir"
21/04/23 Les structures de contrôle 10
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
Encore ?
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='o'rep='n'
21/04/23 Les structures de contrôle 11
La boucle "while" du Cshort 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 boucleAffichage de la
table de 7
21/04/23 Les structures de contrôle 12
La boucle "while" du CSchéma d'exécution.
i=1 ;
while (i<=10)
{ printf("7 x %2d = %2d\n",i,7*i); i=i+1; }
C
Faux
Vrai
21/04/23 Les structures de contrôle 13
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
21/04/23 Les structures de contrôle 14
La boucle "do … while" du Cshort 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
21/04/23 Les structures de contrôle 15
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
21/04/23 Les structures de contrôle 16
Les trois boucles du CLa 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 ) ;
21/04/23 Les structures de contrôle 17
Correspondance Algo - CAlgo & C
ALGO C
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