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

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Chapitre annexe. Récursivité
Initiation à la programmation et algorithmique cours 2
Algorithmes et structures de données 3ème cours Patrick Reuter
Algorithmes et structures de données Cours 3
Introduction à l’Algorithmique
Calculs de complexité d'algorithmes
Algorithmique Résume.
GEF 243B Programmation informatique appliquée Boucles §
II- Les structures de contrôle à condition d’arrêt
Les Structures de contrôles itératives
5. Les structures répétitives
CYCLE 6 : FONCTIONS FONCTIONS avec paramètres en Entrée 1- Pourquoi les FONCTIONS peuvent échanger des données en E entre elles ? 2- Comment écrire des.
Section VI Structures répétitives (suite)
Qu’est-ce qu’un ordinateur ?
Les bases de l’Algorithmique
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Semaine #1 INF155 par Frédérick Henri.
Langage C Révision.
La structure conditionnelle simple
CYCLE 3 : Alternatives Faire des choix dans un programme en C 1- AIGUILLAGE SIMPLE sur CONDITION : if-else 2-AIGUILLAGE MULTIPLE sur CONDITIONS if-else.
Récursivité.
Points importants de la semaine Les boucles. Les types arithmétiques. Les opérateurs.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Structures de contrôle de l’exécution
Les structures de contrôle conditionnelles
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Python La structure itérative
CYCLE 1 : Saisir – Afficher – Données Déclarer des Constantes dans un programme 1- Rôle de la déclaration de constante 2- Syntaxe de la déclaration de.
Bases de la programmation en C++ 1 Les enchaînementsdinstruction Séquentiels. Exécutions dinstructions les unes à la suite des autres. Instructions séparées.
Les structure d’un programme :
Les itérations (boucle) Les routines Les Fonctions
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
Semaine #1 INF135 par Frédérick Henri.
Points importants de la semaine Les constantes. Les boucles. Les opérateurs relationnels Les opérateurs logiques.
Instruction sélective switch-case Instruction répétitive do-while For
CSI 1502 Principes fondamentaux de conception de logiciels
Plan troisième cours Instruction sélective Instruction répétitive
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
Structures alternative et répétitive
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
CYCLE 1 : Saisir – Afficher – Données Initialiser des Variables par affectation 1- Rôle de l’affectation 2- Syntaxe de l’affectation 3- Exécution de l’affectation.
La Boucle Repeat Cours LCS N°1 Présenté par Mr: LALLALI.
CYCLE 6 : FONCTIONS Faire un programme en C avec des FONCTIONS 1- A quoi servent les FONCTIONS ? 2- Comment écrire un programme avec FONCTIONS ? 3- Comment.
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
SIF-1053 Architecture des ordinateurs
Université de Sherbrooke
Les structures répétitives en PHP Réfs : manuel p 317.
1 Algorithmique et programmation en Itérations (boucles) Types numériques simples (suite)
Introduction au langage C Fonctions et Procédures
Cours n° 3 Traitements en Java
Structures de contrôle
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Cours d'algorithmique 10 / Intranet 1 19 décembre 2006 Cours d’Algorithmique Logique de Hoare (fin) : Les boucles et les invariants.
Les structures de contrôle
Programmation en C.
Module algorithmique et programmation
Introduction à la programmation (420-PK2-SL) cours 8
Scripts et fonctions Instructions de contrôle
PRO-1027 Programmation Scientifique en C
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.
Algorithmique Boucles et Itérations
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
Philippe Gandy – 13 octobre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
Technologie - Cycle 4 Exemple de progressivité
O UTILS DE P ROGRAMMATION P OUR LES M ATHÉMATIQUES Mr. BENDIB. I MAA, LAMIS Laboratory, Université Larbi Tébessi - Tébessa.
Transcription de la présentation:

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

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 () {}

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); }

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; }

À 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

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)

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

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.

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.

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

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

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

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

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

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

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

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

& Instruction Processeur Mémoire Réservation mémoire 1- Déclaration variables produit & i 2- Initialisation : i= 0 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 7- suite après TANTQUE

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.

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.

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); }

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.

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

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 );

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

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.