SÉANCE 8 : STRUCTURES RÉPÉTITIVES ET TABLEAUX

publicité
Année universitaire 2005-2006
NTE 3 : Algorithme et programmation
Licence de sciences économiques et de gestion : 2e année
Pierre-Henri GOUTTE
SÉANCE 8 : STRUCTURES RÉPÉTITIVES ET TABLEAUX
Objectif de la séance : Se familiariser avec l’emploi des structures répétitives pour travailler de manière
efficace sur les tableaux à une et deux dimensions.
B. Exercices
La ville de Lyon veut analyser les températures sur la presqu’île à chaque heure. Pour cela, deux
tableaux sont créés, l’un contenant les heures auxquelles sont mesurées les températures, l’autre les
températures effectivement mesurées.
Écrire un algorithme qui permet :
•
de définir le type de tableau TABLENTIERS permettant de saisir heures et températures
•
de déclarer le tableau TAB_HEURES, le tableau TAB_TEMPERATURES et le tableau
TAB_ECARTS
I. TABLEAU À UNE DIMENSION (VECTEUR)
A. Principes
Rappel : Chaque élément d’un tableau est identifié par le nom du tableau et son rang dans la suite
des valeurs du tableau.
Si l’on veut associer une instruction à chaque élément d’un vecteur de N valeurs, il faut donc
répéter N fois l’instruction en faisant varier à chaque fois l’indice de l’élément :
Lecture
Affectation
SOMME:= SOMME + TABNOTES (1)
Écrire TEMPERATURELYON (1)
SOMME:= SOMME + TABNOTES (2)
Écrire TEMPERATURELYON (2)
Lire VILLE_NAISSANCE (3)
SOMME:= SOMME + TABNOTES (3)
Écrire TEMPERATURELYON (3)
………………………………..
SOMME:= SOMME + TABNOTES (N)
de lire les différentes températures constatées pendant la journée
•
de mesurer et d'éditer l’écart de température entre chaque relevé effectué (TAB_ECARTS)
•
de calculer et d’éditer la température moyenne constatée ce jour à Lyon (MOYENNE)
•
d’éditer l’heure à laquelle la température la plus élevée a été constatée (HEUREMAX)
II. TABLEAU À DEUX DIMENSIONS (MATRICE)
Lire VILLE_NAISSANCE (2)
………………………………..
d’affecter comme éléments du tableau TAB_HEURES les différentes heures de la journée.
•
Écriture
Lire VILLE_NAISSANCE (1)
Lire VILLE_NAISSANCE (N)
•
………………………………..
A. Principes
Rappel : Chaque élément d’une matrice est identifié par le nom du tableau, le rang de l'élément
dans la colonne et le rang de l'élément dans la ligne.
Écrire TEMPERATURELYON (N)
Exemple : Le tableau GRILLE_NOTES représente les notes de 3 étudiants pour 5 matières. Il
Objectif : La structure répétitive indicée permet de gérer un tableau d'une manière à la fois plus
concise et aisément généralisable : elle permet de répéter autant de fois que désiré une instruction et on
emploie les valeurs successives du compteur comme indices du tableau.
Exemples : Pour lire le Tableau VILLE_NAISSANCE, on peut écrire l'algorithme suivant
Pour INDICE allant de 1 à N ' N est connu de l'utilisateur
Écrire ("Entrer la ville de rang ", INDICE)
Lire (VILLE_NAISSANCE (INDICE) ' INDICE varie de 1 à N : chaque élément du tableau est lu
Fin Pour
De même pour écrire les différents éléments du tableau TEMPERATURE_LYON
Pour INDICE allant de 1 à N ' N est connu de l'utilisateur
Écrire (TEMPERATURE_LYON (INDICE) ' INDICE varie de 1 à N : chaque élément est édité
Fin Pour
Enfin, pour calculer la somme des éléments d'un tableau,
Pour INDICE allant de 1 à N ' N est connu de l'utilisateur
SOMME:= SOMME + TABNOTES (INDICE) ' Chaque élément du tableau est sommé
Fin Pour
Imprimé le dimanche 13 novembre 2005
contient les valeurs suivantes :
Matières
Indice matière —>
1
2
3
4
5
1
10,5
11
16
11
Indice
Étudiants
2
5,5
8
2
11,5
Étudiant!
3
15
12
14
Pour accéder à un élément du tableau, il faut indiquer l’identificateur du tableau suivi, entre
parenthèses, du rang de l’élément dans la première dimension (ligne ou colonne), d'une virgule, puis du
rang de ce même élément dans la deuxième dimension (colonne si je choisis ligne comme première
dimension, ligne si je choisis colonne comme première dimension).
Principe général : Pour associer une instruction à l'ensemble des éléments d'une matrice, il faut
employer deux structures répétitives indicées, imbriquées l'une dans l'autre. La première structure gère au
choix l'indice des lignes ou celui des colonnes et la seconde l'indice des colonnes ou celui des lignes.
Lecture du tableau donné en exemple :
Pierre-Henri GOUTTE ©
Structures répétitives et Tableaux
page 2 sur 4
Pour INDICELIGNE allant de 1 à 3
Pour INDICECOLONNE allant de 1 à 5
Écrire ("Entrer la note à l'intersection de la ligne " ; INDICELIGNE ; " et de la colonne "; INDICECOLONNE)
Lire (GRILLE_NOTES (INDICELIGNE, INDICECOLONNE)
Fin Pour
Fin Pour
Attention ! Il faut inverser l'ordre des structures à imbriquer, mais ne pas inverser l'ordre des indices du
tableau.
B. Exercice
La ville de Lyon veut saisir chaque heure les températures sur la presqu’île et ce, pour tous les jours
de la semaine. Pour cela, deux tableaux sont créés, l’un contenant les heures auxquelles sont mesurées les
Écriture du tableau donné en exemple :
Pour INDICELIGNE allant de 1 à 3
Pour INDICECOLONNE allant de 1 à 5
Écrire (GRILLE_NOTES (INDICELIGNE, INDICECOLONNE) ; Chr (10)
Fin Pour
Écrire (Chr (13))
Fin Pour
Chr (10) édite une tabulation et Chr (13) un retour à la ligne, ce qui permet une édition correcte du
températures (TAB_HEURES), l’autre les températures effectivement mesurées chaque heure et chaque
jour de la semaine (TAB_TEMPERATURES)
Écrire un algorithme qui permet :
tableau.
•
de déclarer le tableau TAB_HEURES et le tableau TAB_TEMPERATURES
•
d’affecter les heures au tableau TAB_HEURES
•
de demander à l'utilisateur d'entrer toutes les températures constatées durant la semaine
•
de calculer et d'éditer dans un tableau (TAB_MOYENNE_JOUR) la température moyenne de
chaque jour
Affectations :
•
Si l'on veut sommer toutes les valeurs de la matrice, pour calculer une moyenne générale, il faut
la semaine pour chaque heure de la journée
alors employer deux structures répétitives imbriquées.
Pour INDICELIGNE allant de 1 à 3
Pour INDICECOLONNE allant de 1 à 5
SOMME := SOMME + (GRILLE_NOTES (INDICELIGNE, INDICECOLONNE)
Fin Pour
Fin Pour
MOYENNE := SOMME / 15
Si l'on veut sommer les notes obtenues par chaque étudiant pour calculer sa moyenne, il faut
•
Si l'on veut sommer les notes obtenues dans chaque matière pour calculer la moyenne par matière, il
III. EXERCICE COMPLÉMENTAIRE
L’université vous propose d’écrire un algorithme permettant aux chargés de travaux dirigés de
calculer la moyenne de chacun de leur groupe.
1°)
Pour INDICECOLONNE allant de 1 à 5
Pour INDICELIGNE allant de 1 à 3
SOMME := SOMME + (GRILLE_NOTES (INDICELIGNE, INDICECOLONNE)
Fin Pour
MOYENNE := SOMME / 3
Fin Pour
Pierre-Henri GOUTTE ©
Structures répétitives et Tableaux
page 3 sur 4
Écrire un algorithme qui demande au chargé de TD d’entrer le nombre de ses étudiants (celui-
ci doit être compris entre 20 et 45), d’entrer la série de notes, de calculer et d’afficher la moyenne du
groupe.
2°)
Modifier l’algorithme précédent selon les règles suivantes : non seulement l’algorithme
calcule et affiche la moyenne, mais il calcule et affiche le nombre d’étudiants ayant une note supérieure
ou égale à la moyenne (10).
faut employer deux structures répétitives imbriquées, mais calculer la moyenne à chaque changement de
colonne.
de mesurer, puis éditer ans un tableau l'écart de température entre chaque heure d'une même
journée, et ce pour tous les jours de la semaine (ECART_JOURS).
employer deux structures répétitives imbriquées, mais calculer la moyenne à chaque changement de ligne
Pour INDICELIGNE allant de 1 à 3
Pour INDICECOLONNE allant de 1 à 5
SOMME := SOMME + (GRILLE_NOTES (INDICELIGNE, INDICECOLONNE)
Fin Pour
MOYENNE := SOMME / 5
Fin Pour
de calculer et d'éditer dans un tableau (TAB_MOYENNE_HEURES) la température moyenne de
3°)
Modifier l’algorithme précédent selon la règle suivante : il est impossible à l’utilisateur
d’entrer une note inférieure à zéro ou supérieure à vingt.
4°)
Modifier l’algorithme précédent selon la règle suivante : l’algorithme peut être employé, à
plusieurs reprises, pour calculer la moyenne et le nombre d’étudiants ayant une note supérieure ou égale à
10.
Pierre-Henri GOUTTE ©
Structures répétitives et Tableaux
page 4 sur 4
Téléchargement