Année universitaire 2005-2006
NTE 3 : Algorithme et programmation
Licence de sciences économiques et de gestion : 2e année
Pierre-Henri GOUTTE
Imprimé le dimanche 13 novembre 2005
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.
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
Écriture
Lire VILLE_NAISSANCE (1)
SOMME:= SOMME + TABNOTES (1)
Écrire TEMPERATURELYON (1)
Lire VILLE_NAISSANCE (2)
SOMME:= SOMME + TABNOTES (2)
Écrire TEMPERATURELYON (2)
Lire VILLE_NAISSANCE (3)
SOMME:= SOMME + TABNOTES (3)
Écrire TEMPERATURELYON (3)
………………………………..
………………………………..
………………………………..
Lire VILLE_NAISSANCE (N)
SOMME:= SOMME + TABNOTES (N)
Écrire TEMPERATURELYON (N)
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
Pierre-Henri GOUTTE © Structures répétitives et Tableaux page 2 sur 4
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
d’affecter comme éléments du tableau TAB_HEURES les différentes heures de la journée.
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)
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.
Exemple : Le tableau GRILLE_NOTES représente les notes de 3 étudiants pour 5 matières. Il
contient les valeurs suivantes :
Matières
Indice matière —>
1
2
4
5
1
10,5
11
16
2
5,5
8
2
Étudiants
Indice
É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 3 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
É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
tableau.
Affectations :
Si l'on veut sommer toutes les valeurs de la matrice, pour calculer une moyenne générale, il faut
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
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
Si l'on veut sommer les notes obtenues dans chaque matière pour calculer la moyenne par matière, il
faut employer deux structures répétitives imbriquées, mais calculer la moyenne à chaque changement de
colonne.
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 4 sur 4
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
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 :
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
de calculer et d'éditer dans un tableau (TAB_MOYENNE_HEURES) la température moyenne de
la semaine pour chaque heure de la journée
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).
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°) É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).
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.
1 / 2 100%