La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Répéter dans un programme avec une Instruction itérative

Présentations similaires


Présentation au sujet: "Répéter dans un programme avec une Instruction itérative"— Transcription de la présentation:

1 Répéter dans un programme avec une Instruction itérative
CYCLE 4 : BOUCLES TANT QUE Répéter dans un programme avec une Instruction itérative 1- Comment écrire une instruction TANT QUE 2- Comment le CPU exécute une boucle TANT QUE 3- EXEMPLES : - Table de multiplication - Programme avec reprise - Saisie validée

2 Répéter dans un programme avec une Instruction itérative
CYCLE 4 : BOUCLES TANT QUE Répéter dans un programme avec une Instruction itérative 1- Comment écrire une instruction TANT QUE do { } while (); while () {}

3 Instruction FAIRE - TANT QUE
int main() { /* Répétition sur condition : FAIRE - TANT QUE do { instructions; } while (condition); */ int a=2; { printf("passage boucle"); a= a-1; } while (a>0); }

4 Instruction TANT QUE int main()
{ /* Répétition sur condition : TANT QUE while (condition) { instructions; } */ int a=2; while (a>=0) { printf("passage boucle"); a= a-1; }

5 À NOTER !! UN ; à la fin du while() seulement pour le do while !!!!
{ instructions; } while (condition); UN ; à la fin du while() seulement pour le do while !!!! while (condition) { instructions; } Règle de programmation : lisibilité code Indentations dans les accolades du while

6 Rôle des instructions TANT QUE
Le TANT QUE répète l’exécution d’un bloc d’instructions tant qu’une condition est vraie (boucle conditionnelle)

7 Répéter dans un programme avec une Instruction itérative
CYCLE 4 : BOUCLES TANT QUE Répéter dans un programme avec une Instruction itérative 2- Comment le CPU exécute une boucle TANT QUE

8 Principe d’exécution de l’instruction FAIRE – TANT QUE
do { instructions; } while (condition); Le CPU recommence l’exécution du bloc d’instructions tant que la condition de poursuite de boucle est VRAIE. Dès que la condition de fin de boucle devient VRAIE, la boucle s’arrête : Le CPU passe le DO et exécute les instructions de boucle Le CPU évalue la condition de poursuite de boucle : condition Si condition VRAIE, le CPU réexécute la boucle Lorsque le CPU revient au WHILE, le CPU évalue condition Quand la condition devient FAUSSE, le CPU sort du TANTQUE.

9 Principe d’exécution de l’instruction TANT QUE
while (condition) { instructions; } Le CPU recommence l’exécution du bloc d’instructions tant que la condition de poursuite de boucle est VRAIE. Dès que la condition de fin de boucle devient VRAIE, la boucle s’arrête : Le CPU évalue la condition de poursuite de boucle : condition Si condition VRAIE, le CPU exécute la boucle, puis revient au WHILE De retour au WHILE, le CPU évalue condition Quand la condition devient FAUSSE, le CPU sort du TANTQUE.

10 Pr écision sur le premier passage dans une TANT QUE
do { instructions; } while (condition); while (condition) { instructions; } Le do {} while s’exécute toujours au moins une fois

11 Organigramme de l’instruction FAIRE - TANT QUE
Bloc d’instructions VRAI do { instructions; } while (condition); Condition poursuite ? FAUX Suite du programme

12 Simulation d’exécution du FAIRE – TANT QUE
INSTRUCTION PROCESSEUR 1- do exécution des instructions de la boucle 2- while évaluation condition logique de poursuite : VRAI 3- do exécution des instructions de la boucle 4- while évaluation condition logique de poursuite : VRAI 5- do exécution des instructions de la boucle 6- while évaluation condition logique de poursuite : FAUX 7- suite du programme après la fin du TANTQUE

13 Organigramme de l’instruction TANT QUE
Condition poursuite ? FAUX Suite du programme while (condition) { instructions; } Bloc d’instructions VRAI

14 Simulation d’exécution du TANT QUE
INSTRUCTION PROCESSEUR 1- while évaluation condition logique de poursuite : VRAI 2- { exécution des instructions de la boucle 3- } : while évaluation condition logique de poursuite : VRAI 4- { exécution des instructions de la boucle 5- } : while évaluation condition logique de poursuite : FAUX 6- suite du programme après la fin du TANTQUE

15 Mise au point d’une boucle TANT QUE
Décomposer le problème, à partir d’exemples, pour trouver les instructions qui se répètent CONTENU de la boucle TROUVER la CONDITION de POURSUITE de boucle (si vous trouvez la condition de fin : l’inverser) Éventuellement, FIXER initialisation et incrémentation Ecrire la boucle TANT QUE Vérifier la boucle TANT QUE : Dérouler l’exécution avec les valeurs limites et un cas standard

16 Répéter dans un programme avec une Instruction itérative
CYCLE 4 : BOUCLES TANT QUE Répéter dans un programme avec une Instruction itérative 3- EXEMPLES : - Table de multiplication - Programme avec reprise - Saisie validée

17 Affichage de la table de multiplication par 2
int main() { int produit, i; /* comptage et affichage des produits */ i= 0; do { produit= i*2; printf("%d x 2 = %d\n",i,produit); i++; } while (i<11); } initialisation : i= 0 exécution boucle incrémentation : i= 11 incrémentation : i= 10 incrémentation : i= 2 incrémentation : i= 3 incrémentation : i= 1 rebouclage Fin

18 & Instruction Processeur Mémoire Réservation mémoire
1- Déclaration variables produit & i 2- Initialisation : i= affectation i &i 3- do a- calcul: 0x2 -produit= i*2; b- affectation -printf(); c- affichage -i= i+1; d- calcul: 0+1 e- affectation produit & 0 X 2 = 0 - 4- while évaluation condition poursuite 1<11: VRAI 5- do a- calcul: 1x2 -produit= i*2; b- affectation -printf(); c- affichage -i= i+1; d- calcul: 1+1 e- affectation produit & 2 i &i 0 X 2 = 0 1 X 2 = 2 - … … … 6- while éval condition poursuite 11<11: FAUX 0 X 2 = 0 1 X 2 = 2 . 10 X 2 = 20 suite après TANTQUE

19 Equivalence entre les boucles POUR et TANT QUE
initialisation incrémentation for ( i=1 ; i<=5 ; i=i+1 ) { instructions; } condition de poursuite i=1; do { instructions; i= i+1; } while (i<=5); Une boucle POUR peut toujours être transformée en boucle TANT QUE.

20 Différence entre les boucles POUR et TANT QUE
La boucle TANT QUE permet de faire plus de choses : la reprise dépend d’une condition logique quelconque. On pourrait tout écrire avec des TANT QUE. Quand on sait combien de fois la boucle doit tourner, la POUR est plus simple.

21 GESTION D’UN MENU Le programme réalise une calculatrice avec reprise
int main() { float a, b, resu ; int choixMenu; do // reprise du programme tant que l’utilisateur ne veut pas sortir { printf(“1) addition,\n2) soustraction\n3) SORTIR\n\tChoix :"); scanf(" %d",&choixMenu); printf("Donner 2 réels:"); scanf("%f%f",&a,&b); if (choixMenu==1) // addition { resu= a+b; } if (choixMenu==2) // soustraction { resu= a-b; } printf("Resultat de l’opération : %.2f",resu); } while (choixMenu!=3); }

22 Précisions sur la gestion d’un menu
La boucle de reprise du programme permet d’éviter d’avoir à relancer le programme (RUN) pour une nouvelle exécution.

23 Démo Reprise de Programme
CalculatriceReprise.exe Le programme de calculatrice recommence si l’utilisateur veut faire un nouveau calcul.

24 SAISIE VALIDEE Le programme saisit un entier  [5,150]
int main() { int x; do // reprise de saisie si saisie invalide { printf("Donner une valeur comprise entre 5 et 150 : "); scanf("%d",&x); if (x<5 || x>150 ) // message d’erreur si saisie invalide { printf("Erreur de saisie"); } } while (x<5 || x>150 );

25 Précisions sur la SAISIE VALIDEE
le programmeur doit vérifier la validité de toutes les saisies du programme et faire ressaisir en cas d’erreur le programmeur doit bien informer l’utilisateur de ce qui doit être tapé au clavier et des erreurs qu’il commet

26 Le programme saisit un réel dans [-50.5,100.25] exclusivement.
Démo Saisie Validée SaisieValide.exe Le programme saisit un réel dans [-50.5,100.25] exclusivement.


Télécharger ppt "Répéter dans un programme avec une Instruction itérative"

Présentations similaires


Annonces Google