Académique Documents
Professionnel Documents
Culture Documents
Introduction
Jusqu’ici, nous avons employé des variables pour stocker une seule valeur de type simple (primitifs).
Traiter plusieurs données (notes, températures d'un mois…) nous amène souvent à déclarer énormément de
variables, dont le traitement devient fastidieux.
La solution algorithmique à ce problème, est une structure de données non simple, mais composite, appelée
tableau
1.1 Présentation
Un tableau à une dimension (vecteur), est une collection d'éléments ayant tous le même type (entiers, réels..)
T1 1
12 -6 5 100 0 36 9 0 5 1 1 0 30
1 2 3 4 5 6 7 8 9 10 11 12 13
Le tableau ci-dessus, tout comme pour les variables auparavant, porte un nom: T1
On dit qu'il est de dimension une, car ses éléments sont désignés par un seul indice.
Chaque élément est désigné par le nom du tableau (T1), suivi de son propre indice entre crochets.
T1[9] dans l'exemple désigne l'élément n° 9 du tableau T1.
Le nombre de valeurs est précisé implicitement, en précisant les bornes (min et max) des indices du tableau.
Exemple:
Var
Tab : tableau [1..100] d’entiers ; //tableau de 100 éléments (entiers)
Note : tableau [1..10] de réels ; //tableau de 10 éléments (réels)
L'indice doit être de type ordinal, c'est à dire qu'il appartient à un ensemble fini et ordonné (entiers).
Quand on ne connaît connait pas exactement le nombre d'éléments à l'avance, il faut majorer ce nombre, quitte
à n'utiliser qu'une partie du tableau (estimer la taille maximale).
Un tableau est une structure statique: une fois déclaré de taille N, cette taille ne peut plus être changée.
Il est impossible de mettre une variable dans l'intervalle de définition du tableau (déclaration).
Mais on peut utiliser une constante définie au préalable.
Exemple:
Var T : tableau[1..6] d’entiers
T[1] = 3, T[2] = 0, T[3] = 8, T[4] = 2, T[5] = 1, T[6] = 5. T[7] et T[-1] ne sont pas définis.
2) T[i] est l’équivalent d’une variable. ( i est un entier qui représente l'indice)
elem T[i] : permet de récupérer la valeur de l’élément indice i dans la variable elem.
T[i] val : permet d'affecter la valeur val dans le i ème élément du tableau T.
Lire(T[i]) et Écrire(T[i]) permettent de saisir et d'afficher l'élément à l'indice i du tableau T
Exemple:
L'algorithme suivant permet de récupérer les températures pour un mois quelconque, et d'afficher la
température du 15eme jour, ainsi que la moyenne des temperatures pour ce mois.
D'après l'énoncé, nous aurons besoin d'un tableau de réels (temperatures), dont la taille sera majorée à 31 (on
ne connait pas le mois exacte, donc on ne connait pas la taille exacte du tableau, on doit majorer sa taille)
Algorithme Exmpl;
Var temp: tableau [1..31] de réel; //On déclare un tableau de réels, de taille 31
i: entier;
som, moy: réel;
Début
//Remplir le tableau sans boucle (on suppose que le mois contienne 30 jours)
Écrire(' Veillez saisir les temperatures une par une: ');
Lire ( temp[1]); Lire ( temp[2]); Lire ( temp[3]); //Ainsi de suite jusqu'à Lire( temp[30]);
//Calculer la moyenne
som0;
Pour i allant de 1 à 30 faire
somsom+temp[i];
Finpour;
moysom/30;
Exercice 1:
Déclarez pour chacune des situations suivantes, le ou les tableaux qui contiendront les données du problème.
3) Une liste qui informe sur l'amission de stagiaires, numérotés de 1 à 25 (admis ou non)
Var admission: tableau[1..25] de booléen; //Vrai veux dire admis, faux veut dire non admis
Exercice 2:
Que fait l'algorithme suivant?
Algorithme Exo2;
Var i: entier;
T: tableau[1..20] de entier;
Début
Pour i allant de 1 à 10 faire
Lire (T[i]);
Finpour;
Pour i allant de 11 à 20 faire
T[i]0;
Finpour;
Fin.
L'algorithme déclare un tableau nommé T de 20 entiers, ensuite demande à l'utilisateur une saisie successive des 10
premiers éléments du tableau (lecture). Les 10 derniers éléments du tableau sont remplis de 0 (affectation)
Exercice 3:
Modifier l'algorithme précédent, pour qu'il affiche le nombre de 1 contenus dans le tableau (occurrences de 1)
Algorithme Exo3;
Var i,occ: entier;
T: tableau[1..20] de entier;
Début
Pour i allant de 1 à 10 faire
Lire (T[i]);
Finpour;
Pour i allant de 11 à 20 faire
T[i]0;
Finpour;
occ0;
Pour i allant de 1 à 20 faire
Si T[i]=1 alors
occocc+1;
Fsi;
Finpour;
Écrire(' Le nombre d'occurrences du 1 est: ', occ);
Fin.