21
Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Embed Size (px)

Citation preview

Page 1: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Section VI

Structures répétitives (suite)

Algorithmes et résolution de problèmes18279 FGE

Page 2: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Contenu

• Récapitulation– Structure TANTQUE– Structure POUR

• Structure RÉPÉTER-JUSQU’À– Pseudo-code et organigramme

• Exercice

• Devoir #5

Page 3: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Structure TANTQUE

• Permet de répéter une séquence d’opérations tant qu’une condition est satisfaite (i.e. vraie)

TANTQUE Condition FAIRE Séquence d'opérationsFINTANTQUE

NonCondition?

Séquenced’opérations

Oui

Page 4: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Structure TANTQUE (suite)

• Exemple : algorithme calculant la moyenne de 100 valeurs

Accum = 0Compte = 1TANTQUE Compte < 101 FAIRE LIRE Valeur Accum = Accum + Valeur Compte = Compte + 1FINTANTQUEMoyenne = Accum / 100ÉCRIRE Moyenne

Lire Valeur

Fin

Moyenne = Accum / 100

Non

Oui

Accum = Accum + Valeur

Accum = 0Compte = 1

Début

Compte < 101?

Compte = Compte + 1

Écrire Moyenne

Page 5: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Structure POUR

• Structure répétitive employant une variable compteur pour identifier le nombre d’itérations à effectuer

Pseudo-code

POUR Variable = Début JUSQU’À Fin FAIRE Séquence d'opérationsFINPOUR

Processus

Compteur = 1

Compteur > 10

Compteur +1

Non

Oui

Page 6: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Structure POUR (suite)

• Exemple : algorithme calculant la moyenne de 100 valeurs

• La variable Compte est automatiquement incrémentée (i.e. augmentée de 1) à chaque itération

Accum = 0POUR Compte = 1 JUSQU’À 100 FAIRE LIRE Valeur Accum = Accum + ValeurFINPOURMoyenne = Accum / 100ÉCRIRE Moyenne

Page 7: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Structure RÉPÉTER-JUSQU’À

• La structure répétitive TANTQUE ne peut faire d’itération si la condition est fausse avant la première itération

ÉCRIRE "Nombre positif?" LIRE NombreTANTQUE Nombre 0 FAIRE ÉCRIRE "Le nombre doit être positif" LIRE NombreFINTANTQUEÉCRIRE "Log(", Nombre, ")=", Log(Nombre)

Exemple d’exécution

Nombre positif? 100Log(100) = 2

Page 8: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Structure RÉPÉTER-JUSQU’À (suite)• Dans certaines solutions, il est parfois requis

qu’une structure répétitive effectue au moins une itération

• Dans cet exemple, l’initialisation de la variable Nombre est essentielle afin qu’un itération soit effectuée par la boucle

Nombre = 0TANTQUE Nombre 0 FAIRE ÉCRIRE "Nombre positif?" LIRE NombreFINTANTQUE

Page 9: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Structure RÉPÉTER-JUSQU’À (suite)• La structure répétitive RÉPÉTER-JUSQU'À

répond à ce besoin en plaçant la condition d’itération à la fin de la boucle

• Au moins une itération est garantie afin que le flux d’exécution se rendre à la condition d’itération

RÉPÉTER ÉCRIRE "Nombre positif?" LIRE NombreJUSQU’À Nombre > 0

Page 10: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Structure RÉPÉTER-JUSQU’À (suite)• Formulation

• Notez que les itérations se poursuivent tant que la condition n’est pas satisfaite

RÉPÉTER Séquence d’opérationsJUSQU’À Condition

NonCondition?

Séquenced’opérations

Oui

Page 11: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Structure RÉPÉTER-JUSQU’À (suite)• La condition de la structure RÉPÉTER-

JUSQU’À est inversée par rapport à la structure TANTQUE équivalente

Nombre = 0TANTQUE Nombre 0 FAIRE ÉCRIRE "Nombre positif?" LIRE NombreFINTANTQUE

RÉPÉTER ÉCRIRE "Nombre positif?" LIRE NombreJUSQU’À Nombre > 0

Page 12: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Structure RÉPÉTER-JUSQU’À (suite)• En algorithmie, il n’y a pas de structure

RÉPÉTER-TANTQUE– C’est-à-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 NombreTANTQUE Nombre 0

RÉPÉTER ÉCRIRE "Nombre positif?" LIRE NombreJUSQU’À Nombre > 0

Page 13: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Exercice #1

• Exercice : Écrivez un algorithme (pseudo-code et organigramme) qui identifie la valeur maximum parmi des valeurs non-négatives fournies par l’utilisateur– Si l'utilisateur entre un nombre négatif, affichez

une message d'erreur et ignorez celle-ci– Après chaque traitement d'une valeur, demander à

l'utilisateur s'il a terminé– Exploitez une structure RÉPÉTER-JUSQU'À

Page 14: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Exercice #1

• Solution : pseudo-code

Maximum = 0 \\ initialisationRÉPÉTER ÉCRIRE "Nombre non-négatif?" LIRE Nombre \\ Traiter le nombre lu SI Nombre < 0 ALORS ÉCRIRE "Erreur: nombre invalide" SINON SI Nombre > Maximum ALORS Maximum = Nombre FINSI \\ Doit-on traiter un autre nombre? ÉCRIRE Traiter un autre nombre (oui/non)?" LIRE ContinueJUSQU’À Continue = "non" \\ Afficher le maximum trouvéÉCRIRE "Nombre maximum =", Maximum

Page 15: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Exercice #1

• Solution : organigramme– On exploite le symbole

connecteur ( )

Début

Lire Nombre

Écrire "Nombre non-négatif?"

Maximum = 0

ABFin

Écrire "Nombre maximum=", Maximum

Non

Nombre < 0?Oui

A

Non

Nombre > Maximum?Oui

Écrire "Erreur: nombre invalide"

Maximum = Nombre

Lire Continue

Écrire "Traiter un autre nombre (oui/non)?"

Oui

B

Continue = "non"?Non

X

Page 16: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Quelle structure utiliser?

• Trois structures répétitives sont disponibles– Laquelle utiliser dans un algorithme?

• Voici quelques règles à considérer– Si le nombre d’itérations est déterminé par une

variable compteur incrémentée• 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

Page 17: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Questions quiz

• Qu'est ce qu'une itération?- Une exécution de la séquence d'opérations

dans une structure itérative

• Qu'est-ce qu'une variable d'accumulation?- Une variable servant à accumuler des valeurs

numériques

• Quel est le rôle du symbole d'initialisation?- Représente des opérations d'initialisation de

variables

Page 18: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Questions quiz (suite)

• Quelles sont les principales distinctions entre la structure TANTQUE et la structure RÉPÉTER-JUSQU'À?

- La position de la condition d'itération

- Inversion de la condition d'itération

• Une boucle peut-elle disposer de plus d'un point de sortie?

- Non, la seule sortie possible est via lacondition d'itération

Page 19: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Questions quiz (suite)

• Quel est un risque potentiel d'erreur lorsqu'on exploite des boucles imbriquées avec compteurs?

- Éviter que les deux boucles exploite la même

variable compteur

• Quelle structure répétitive n'a pas de représentation dans l'organigramme?

- POUR

Page 20: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Questions quiz (suite)

• Lequel des algorithmes suivants ne fonctionne pas, et pourquoi?– Afficher la somme des valeurs autres que 0 lues

Accum = 0TANTQUE Valeur 0 FAIRE Accum = Accum + Valeur LIRE ValeurFINTANTQUEÉCRIRE Accum

Accum = 0RÉPÉTER LIRE Valeur Accum = Accum + ValeurJUSQU'À Valeur 0 ÉCRIRE Accum

Aucune lecture de Valeur n'est effectuée avant de vérifier la condition d'itération

La condition d'itération doit être inversée, sinon la boucle cesse à la lecture d'une valeur autre que 0

Page 21: Section VI Structures répétitives (suite) Algorithmes et résolution de problèmes 18279 FGE

Devoir #5

• Énoncé du devoir disponible sur ~jlemoe

• Concevoir un algorithme calculant votre moyenne pondérée cumulative

• Vous devez soumettre (Devoir6.ZIP)– Un fichier LARP– Un fichier Word – À remettre avant le prochain cours