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

Section V Structure de contrôle Itération TANTQUE/FINTANTQUE POUR/FINPOUR REPETER/JUSQUÀ Algorithmes et résolution de problèmes 18279 FGE.

Présentations similaires


Présentation au sujet: "Section V Structure de contrôle Itération TANTQUE/FINTANTQUE POUR/FINPOUR REPETER/JUSQUÀ Algorithmes et résolution de problèmes 18279 FGE."— Transcription de la présentation:

1 Section V Structure de contrôle Itération TANTQUE/FINTANTQUE POUR/FINPOUR REPETER/JUSQUÀ Algorithmes et résolution de problèmes FGE

2 Contenu IntroductionIntroduction Structure TANTQUE/FINTANTQUEStructure TANTQUE/FINTANTQUE –Dans lorganigramme –Dans le pseudo-code Exemples & exerciceExemples & exercice Autres structures ditérationAutres structures ditération Devoir #4Devoir #4

3 Introduction Les algorithmes présentés auparavant contenaient des structures de type :Les algorithmes présentés auparavant contenaient des structures de type : –Séquence simple dopérations –Sélection dopérations Souvent, certaines opérations à accomplir peuvent être répétées dans un algorithmeSouvent, certaines opérations à accomplir peuvent être répétées dans un algorithme –Considérez le problème suivant : Concevoir un algorithme qui doit Accepter six(6) nombres Et Afficher la somme de ces nombres

4 Six nombres sont lus dans des variables N1, N2, N3, N4, N5, N6Six nombres sont lus dans des variables N1, N2, N3, N4, N5, N6 On accumule la somme de N1..N6 dans la variable SOMMEOn accumule la somme de N1..N6 dans la variable SOMME On écrit la valeur de SOMMEOn écrit la valeur de SOMME Exemple #1 Début Lire N1,N2, N3 N4, N5, N6 Somme = N1+N2+N3+N4+N5+N6 Ecrire Somme Fin Début Lire N1, N2, N3, N4, N5, N6 Lire N1, N2, N3, N4, N5, N6 Somme = N1+N2+N3+N4+N5+ N6 Somme = N1+N2+N3+N4+N5+ N6 Ecrire Somme Ecrire SommeFin

5 Si on voudrait changer lalgorithme pour lire 100 nombres il faudrait ajouter à la solution précédenteSi on voudrait changer lalgorithme pour lire 100 nombres il faudrait ajouter à la solution précédente –94 nouvelles variables (N7, N8, N9, …N100) pour la lecture –Inclure les nouvelles variables dans le calcul de la somme Ce nest pas une approche désirable à prendreCe nest pas une approche désirable à prendre Certaines étapes pourraient être répétéesCertaines étapes pourraient être répétéesLITÉRATION!!! Exemple #1 - Suite

6 Structure TANTQUE-FINTANTQUE Pour représenter une itération (répétition) dans lorganigrammePour représenter une itération (répétition) dans lorganigramme On utilise le losange On utilise le cercle La condition est satisfaite? Oui Non

7 Notes sur la structure conditionnelleNotes sur la structure conditionnelle –La condition doit être clairement stipulée dans le symbole conditionnel –Le flux sortant identifié avec Oui/Non indique la fin de litération –Le flux de litération indiqué avec Non/Oui doit éventuellement rejoindre le cercle de convergence La condition Oui (Non) Non (oui) Itération Structure TANTQUE-FINTANTQUE

8 Exemple #1 – Nouvelle approche Lire N1,N2, N3 N4, N5, N6 Somme = N1+N2+N3+N4+N5+N6 Ecrire Somme Fin Séquence Accum = 0 Ctr = 0 Début Ctr < 6 Lire Donnée Écrire Accum Fin Accum = Accum + Donnée Ctr = Ctr + 1 Itération Non Oui

9 Exemple #1 – Ordinogramme et Pseudocode Accum = 0 Ctr = 0 Début Ctr < 6 Lire Donnée Écrire Accum Fin Accum = Accum + Donnée Ctr = Ctr + 1 Ordinogramme Pseudocode Début Accum = 0 Accum = 0 Ctr = 0 Ctr = 0 TantQue Ctr < 6 Faire TantQue Ctr < 6 Faire Lire Donnée Lire Donnée Accum = Accum + Donnée Accum = Accum + Donnée Ctr = Ctr + 1 Ctr = Ctr + 1 FinTantQue FinTantQue Écrire Accum Écrire AccumFin TantQue FinTantQue

10 Exemple #2 – Rapport de paie Spécifications :Spécifications : On doit produire un rapport listant tous les employés (10) ayant travaillé durant la semaine et leur paie On doit produire un rapport listant tous les employés (10) ayant travaillé durant la semaine et leur paie Pour chaque employé, on doit déterminer si lemployé a des heures supplémentaires. Pour chaque employé, on doit déterminer si lemployé a des heures supplémentaires. Si lemployé na pas excédé 40 heures de travail, la paie est calculée en multipliant les heures par le taux. Si lemployé na pas excédé 40 heures de travail, la paie est calculée en multipliant les heures par le taux. Si des heures supplémentaires existent, on doit calculer la paie en multipliant les heures supplémentaires par le taux à temps et demi (1.5) Si des heures supplémentaires existent, on doit calculer la paie en multipliant les heures supplémentaires par le taux à temps et demi (1.5) Le rapport doit écrire son nom, son numéro demployé et sa paie totale Le rapport doit écrire son nom, son numéro demployé et sa paie totale

11 Nous devons écrire lalgorithme produisant une ligne de rapport pour chaque employé Entrée Données à lireEntrée Données à lire Nom de lemployé, son numéro, ses heures travaillées et son taux Nom de lemployé, son numéro, ses heures travaillées et son taux Processus Calculer la paieProcessus Calculer la paie –Calculer la paie basée sur le nombre dheures Sortie RésultatsSortie Résultats Le rapport doit écrire son nom, son numéro demployé et sa paie totale Le rapport doit écrire son nom, son numéro demployé et sa paie totale On répète lalgorithme pour tous les employés (10) Exemple #2 – lalgorithme

12 Exemple #2 – Les variables Définition des variables de données dentréeDéfinition des variables de données dentrée –Nom nom de lemployé –Numero numéro de lemployé –Heures nombre dheures travaillées Taux Taux horaire Variables intermédiairesVariables intermédiaires –Paie paie totale –PaieReg paie régulière –PaieSup paie supplémentaire –Cmtr compteur demployé

13 Lo rdinogramme du rapport de paie

14 Partie dalgorithme dans litération

15 Pseudocode de lexemple #2 Début Cmtr = 0 TantQue Cmtr < 10 Faire Read Nom, Nemp, Hrs, Taux SI Hrs > 40 Alors PaieReg = 40 * Taux PaieSup = (Hrs-40) * (1.5*Taux) Paie = PaieReg + PaieSup Sinon Paie = Hrs * Taux FinSi Ecrire Nom, Nemp, Paie FinTantQue Fin

16 Structure POUR pour lordinogramme Structure répétitive TANTQUE employant une variable compteur pour identifier le nombre ditérations à effectuerStructure répétitive TANTQUE employant une variable compteur pour identifier le nombre ditérations à effectuer –Syntaxe alternative, plus simple –On indique explicitement lincrémentation de la variable compteur Incrémentation : augmenter de 1

17 Structure POUR en pseudo-code Structure répétitive TANTQUE employant une variable compteur pour identifier le nombre ditérations à effectuerStructure répétitive TANTQUE employant une variable compteur pour identifier le nombre ditérations à effectuer –Syntaxe alternative, plus simple –On nindique pas explicitement lincrémentation de la variable compteur Incrémentation : augmenter de 1 POUR Variable = 1 JUSQUÀ 100 FAIRE... FINPOUR Variable = 1 TANTQUE Variable < 100 FAIRE... Variable = Variable + 1 FINTANTQUE

18 Structure POUR (suite) Exemple : identifier la valeur maximum parmi des valeurs positives fournies par lutilisateurExemple : identifier la valeur maximum parmi des valeurs positives fournies par lutilisateur ÉCRIRE "Combien de valeurs?" LIRE Nombre Maximum = 0 POUR Compte = 1 JUSQUÀ Nombre FAIRE ÉCRIRE "Valeur #", Compte, "?" LIRE Valeur SI Valeur > Maximum ALORS Maximum = Valeur FINSI FINPOUR ÉCRIRE Maximum Exemple dexécution Nombre de valeurs? 4 Valeur #1? 18 Valeur #2? 32 Valeur #3? 11 Valeur #4? 26 Valeur maximum = 32

19 Structure POUR (suite) La valeur initiale et/ou la valeur terminale de la variable compteur nont pas à être des constantesLa valeur initiale et/ou la valeur terminale de la variable compteur nont pas à être des constantes Par contre la variable compteur et la valeur terminale ne doivent pas être modifiées pendant litérationPar contre la variable compteur et la valeur terminale ne doivent pas être modifiées pendant litération LIRE Départ, Fin POUR Compte = Départ JUSQUÀ Fin FAIRE ÉCRIRE "Compte = ", Compte FINPOUR LIRE Départ, Fin POUR Compte = Départ JUSQUÀ Fin FAIRE LIRE Compte Fin = Fin - 1 FINPOUR

20 Structure RÉPÉTER-JUSQUÀ La structure répétitive TANTQUE peut ne pas faire ditération si la condition est fausse avant la première itérationLa structure répétitive TANTQUE peut ne pas faire ditération si la condition est fausse avant la première itération ÉCRIRE "Nombre positif?" LIRE Nombre TANTQUE Nombre 0 FAIRE ÉCRIRE "Le nombre doit être positif" LIRE Nombre FINTANTQUE ÉCRIRE "Log(", Nombre, ")=", Log(Nombre) Exemple dexécution Nombre positif? 100 Log(100) = 2

21 Structure RÉPÉTER-JUSQUÀ (suite) Dans certaines solutions, il est parfois requis quune structure répétitive effectue au moins une itérationDans certaines solutions, il est parfois requis quune structure répétitive effectue au moins une itération Dans cet exemple, linitialisation de la variable Nombre est essentielle afin quun itération soit effectuée par la boucleDans cet exemple, linitialisation de la variable Nombre est essentielle afin quun itération soit effectuée par la boucle Nombre = 0 TANTQUE Nombre 0 FAIRE ÉCRIRE "Nombre positif?" LIRE Nombre FINTANTQUE

22 Structure RÉPÉTER-JUSQUÀ (suite) La structure répétitive répond à ce besoin en plaçant la condition ditération à la fin de la boucleLa structure répétitive répond à ce besoin en plaçant la condition ditération à la fin de la boucle Au moins une itération est garantie afin que le flux dexécution se rendre à la condition ditérationAu moins une itération est garantie afin que le flux dexécution se rendre à la condition ditération RÉPÉTER ÉCRIRE "Nombre positif?" LIRE Nombre JUSQUÀ Nombre > 0

23 Structure RÉPÉTER-JUSQUÀ (suite) FormulationFormulation Notez que les itérations se poursuivent tant que la condition nest pas satisfaiteNotez que les itérations se poursuivent tant que la condition nest pas satisfaite RÉPÉTER Séquence dopérations JUSQUÀ Condition Non Condition? Séquence dopérations Oui

24 Structure RÉPÉTER-JUSQUÀ (suite) La condition de la structure RÉPÉTER- JUSQUÀ est inversée par rapport à la structure TANTQUE équivalenteLa condition de la structure RÉPÉTER- JUSQUÀ est inversée par rapport à la structure TANTQUE équivalente Nombre = 0 TANTQUE Nombre 0 FAIRE ÉCRIRE "Nombre positif?" LIRE Nombre FINTANTQUE RÉPÉTER ÉCRIRE "Nombre positif?" LIRE Nombre JUSQUÀ Nombre > 0

25 Structure RÉPÉTER-JUSQUÀ (suite) En algorithmie, il ny a pas de structure RÉPÉTER-TANTQUEEn algorithmie, il ny a pas de structure RÉPÉTER-TANTQUE –Cest-à-dire répéter tant que la condition est vraie –On utilise plutôt une structure RÉPÉTER- JUSQUÀ avec une condition négative RÉPÉTER ÉCRIRE "Nombre positif?" LIRE Nombre TANTQUE Nombre 0 RÉPÉTER ÉCRIRE "Nombre positif?" LIRE Nombre JUSQUÀ Nombre > 0

26 Quelle structure utiliser? Trois structures répétitives sont disponiblesTrois structures répétitives sont disponibles –Laquelle utiliser dans un algorithme? Voici quelques règles à considérerVoici quelques règles à considérer –Si le nombre ditérations est déterminé par une variable compteur Utiliser la structure POUR –Si au moins une itération est requise Utiliser la structure RÉPÉTER-JUSQUÀ –Dans les autres circonstances Utiliser la structure TANTQUE

27 Exercice #1 (à remettre) Proposez un algorithme calculant la factorielle dun nombre entier positif fourni par lutilisateurProposez un algorithme calculant la factorielle dun nombre entier positif fourni par lutilisateur –Votre algorithme doit redemander le nombre jusquà ce quune valeur de 0 (zéro) soit fournie Exemple de calcul de la factorielleExemple de calcul de la factorielle – Factorielle(6) = 1 x 2 x 3 x 4 x 5 x 6 = 720 Écrivez le pseudo-code et lorganigrammeÉcrivez le pseudo-code et lorganigramme Vous devez me remettre votre solutionVous devez me remettre votre solution


Télécharger ppt "Section V Structure de contrôle Itération TANTQUE/FINTANTQUE POUR/FINPOUR REPETER/JUSQUÀ Algorithmes et résolution de problèmes 18279 FGE."

Présentations similaires


Annonces Google