VI.1. Déclaration et utilisation des tableaux
Définition : Ensemble de données d’un type de données rangées dans une structure ordonnée. On accède à un élément d’un tableau en donnant le nom de ce tableau et d’un indice entier. Cet indice est l’intervalle de définition du tableau.
Déclaration d’un tableau :
Var
Mon_tableau : ARRAY [1…7] of integer ;
{Chaque élément de Mon_tableau est du type entier}
Ton_tableau : ARRAY [1…7] of real ;
{Chaque élément de Ton_tableau est di type réel}
Utilisation d’un tableau :
Mon_tableau[5] := 12 ;
readln (Mon_tableau[1]) ;
writeln(Mon_tableau[6]) ;
VI.2. Passage d’un tableau en paramètre d’une fonction
Il n’est pas possible de passer un paramètre de type tableau dans un appel de fonction ou de procédure. Par exemple :
Procedure Initiale (T : array [1…100] of integer) ;
est interdit. Pour réaliser cette opération, il faut préalablement définir un nouveau type, et déclarer le tableau en question de ce type.
Considérons le programme suivant :
Program type_tableau ;
uses crt ;
Type
Type_tableau : array[1…100] of interger ;
var
T : Type_tableau ;
{Procédure d’initialisation}
Procedure Initialise(var table : Type_tableau) ;
var
i : interger ;
begin
For i:= 1 to 100
do table[i]:= random(1000) ;
{ Cette boucle initialise toutes les valeurs du tableau avec un entier compris entre 0 et 1000 }
end ;
{ Programme principal }
Begin
Initialise(T) ;
end.
VI.3 Tableaux multidimentionnels
Les tableaux peuvent avoir plus d’une dimension. Par exemple, si l’on souhaite pouvoir utiliser une matrice n*m, on peut certes déclarer n tableaux de m éléments, mais on peut plus simplement déclarer un tableau n*m. Par exemple :
T : array[1..4,1..16] of integer ;
Pour réaliser l’élément de la 2ème ligne et de la 3ème colonne, on écrit : T[2,4].
Pour réaliser l’élément de la 6ème ligne et de la 1ème colonne, on écrit : T[6,1].
VI.4. Exercices
1) Écrire un programme qui lit 10 entiers en entrée, affiche la somme puis la multiplication de tous ces nombres (décomposer la lecture et les calculs dans des procédures ou des fonctions différentes).
2) Écrire un programme qui demande deux entiers a et b entre 1 et 10, initalise un tableau à deux dimensions a*b avec des entiers tirés au hasard, puis affiche ses éléments ligne par ligne puis colonne par colonne.
3) Modifier le programme précédent en ajoutant une procédure ou une fonction qui cherche le plus grand élément du tableau et retourne sa position et cet élément.
4) Modifier le programme précédant en ajoutant une procédure ou une fonction qui cherche le plus grand élément de la ligne n du tableau et retourne la position de cet élément.
5) Écrire un programme qui renvoie le plus petit élément d’un tableau à trois dimensions (2*3*2).
6) Il est possible d’utiliser des tableaux de chaînes de caractères. Ecrire un programme qui demande une date en chiffres et récrit cette même date en lettres.
7) Définir une matrice 10*10 et la remplir de façon à ce quelle représente une table de multiplication. Faire la même chose avec des divisions.
8) Reprendre l’exercice précédent et faire l’addition des matrices selon la formule : Cij := Aij + Bij