1 / 26

CYCLE 4 : BOUCLES TANT QUE 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.

kaida
Download Presentation

CYCLE 4 : BOUCLES TANT QUE Répéter dans un programme avec une Instruction itérative

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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. 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; do { 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. UN ; à la fin du while() seulement pour le do while !!!! À NOTER !! do { instructions; } while (condition); while (condition) { instructions; } Règle de programmation : lisibilité code • Indentations dans les accolades du while

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

  7. 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. Le do {} while s’exécute toujours au moins une fois Pr écision sur le premier passage dans une TANT QUE do { instructions; } while (condition); while (condition) { instructions; }

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

  12. 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 Simulation d’exécution du FAIRE – TANT QUE

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

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

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

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

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

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

  20. 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. Différence entre les boucles POUR et TANT QUE

  21. GESTION D’UN MENU Le programme réalise une calculatrice avec reprise int main() { floata, 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. La boucle de reprise du programme permet d’éviter d’avoir à relancer le programme (RUN) pour une nouvelle exécution. Précisions sur la gestion d’un menu

  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() { intx; 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. 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 Précisions sur la SAISIE VALIDEE

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

More Related