Leçon 4 : Les Tableaux
en Langage Pascal
AYIKPA KACOUTCHY JEAN : Enseignant -
Chercheur
Table des
matières
Introduction 3
I - 1- Tableau à une dimension 4
II - Application 1 : 7
III - 2- Tableau à deux dimensions 9
IV - Application 2 : 12
Introduction
Comme en algorithmique, un tableau est une structure linéaire qui permet de conserver des valeurs de même type.
On distingue deux types de tableaux aussi en langage pascal à savoir :
- Les tableaux à une dimension ou vecteur
- Les tableaux à deux dimensions ou matrice
3
1- Tableau à une dimension
1- Tableau à une
dimension I
Définition : 1.1- Définition
Encore appelé vecteur, le tableau à une dimension est composé d'une seule ligne et plusieurs colonnes
Syntaxe : 1.2- Déclaration
1. Cas 1 :
Var
NomTab : array[Min..Max] Of Type;
2. Cas 2 :
Type
t_tableau = array[Min..Max] Of Type;
Var
NomTab : t_tableau;
Remarque :
Min : premier élément du tableau
Max : dernier élément du tableau
Pour accéder à un élément du tableau il faut : NomTab [indice]. Indice : il s'agit du numéro de la colonne.
En langage pascal il existe deux manières de déclarer un tableau :
- Dans le cas 1, il s'agit de la déclaration classique ( déclaration du tableau dans la var)
- et dans le second cas il faut déclarer le tableau comme un type et ensuite faire la déclaration de la variable
avec le type créé.
Exemple :
var
Temp : array[1..5] of integer;
ou
type
Tab = array[1..5] of integer;
var
Temp : Tab ;
on vient de déclarer un tableau de nom Temp contenant 5 colonnes.
4
1- Tableau à une dimension
15 9 2 -9 -3
Temp
Temp[1] a pour valeur 15
Temp[2] a pour valeur 9
Temp[3] a pour valeur 2
Temp[4] a pour valeur -9
Temp[5] a pour valeur -3
Exemple : 1.3- Exemple
Énoncé :
Ecrire un programme en langage pascal permettant de renseigner 10 nombres pairs strictement supérieurs à
zéro dans un tableau et de l'afficher.
Solution :
program nbrepair ;
uses crt ;
type
tabpair = array[1..10] of integer ; // déclare tout d'abord un type tableau
var
tnbrepair : tabpair ; //déclaration de la variable avec le type créé précédemment
i : integer ;
begin
for i := 1 to 10 do //Permet de parcourir les dix colonnes du tableau
begin
repeat
writeln('Entrez un nombre pair strictement supérieur à zéro!') ;
readln(tnbrepair[i]);
until ((tnbrepair[i] >0) and (tnbrepair[i] mod 2 = 0)) ; // vérifie que le nombre soit positif et pair
end;
//*** Affiche les informations du tableau ***
for i := 1 to 10 do
begin
writeln('tnbrepair[',i,'] =',tnbrepair[i]) ;
end;
5
1- Tableau à une dimension
readkey;
end.
6
Application 1 :
Application 1 :
II
Exercice
Donner la syntaxe de déclaration correcte :
Typet_tableau : array[Min..Max] Of Type;
VarNomTab : t_tableau;
Typet_tableau : array[Min..Max] Of Type;VarNomTab : t_tableau;
7
Application 1 :
Exercice
Énoncé :
Écrire un programme qui permet de remplir un tableau TAB de 20 éléments entiers quelconques non nul, Le
programme devra ensuite parcourir le tableau pour rechercher le plus grand élément.
TAF : Veuillez remplir toutes les trous avec les valeurs qui conviennent.
NB : Toutes les réponses ne doivent pas avoir des espaces et elles doivent être en minuscule .
Solution :
tab
uses crt;
type
= of integer ;
var
: T_tab;
i, : integer ;
begin
repeat
Entrez votre nombre :
until
grd :=
for i:=2
begin
grd :=
writeln('Le plus grand élément est :', );
readkey;
8
2- Tableau à deux dimensions
2- Tableau à deux
dimensions III
Définition : 2.1- Définition
Encore appelé matrice, le tableau à deux dimensions est constitué de plusieurs lignes et plusieurs colonnes.
Syntaxe : 2.2- Syntaxe
Cas 1 :
Var
NomTab : array[b1min..b1max,b2min..b2max] of type ;
Cas 2 :
type
t_tableau : array[b1min..b1max,b2min..b2max] of type;
Var
NomTab : t_tableau ;
Remarque :
b1min, b2min : premier élément du tableau
b1max, b2max : dernier élément du tableau
Pour accéder à un élément du tableau il faut : NomTab [i,j].
i : il s'agit du numéro de la ligne.
j : il s'agit du numéro de la colonne.
En langage pascal il existe deux manières de déclarer un tableau :
- Dans le cas 1, il s'agit de la déclaration classique ( déclaration du tableau dans la var)
- et dans le second cas il faut déclarer le tableau comme un type et ensuite faire la déclaration de la variable
avec le type créé.
Exemple :
var
Mat : array[1..5,1..3] of integer;
ou
type
9
2- Tableau à deux dimensions
Mat : array[1..5,1..3] of integer;
var
Mat : Tab ;
on vient de déclarer un tableau de de 5 lignes et 3 colonnes.
2 5 6
9 -3 -6
0 5 14
3 11 -4
7 8 -2
Mat
Mat[1,1] a pour valeur 2
Mat[1,2] a pour valeur 5
Mat[1,3] a pour valeur 6
Mat[2,1] a pour valeur 9
Mat[2,2] a pour valeur -3
Mat[2,3] a pour valeur -6
Mat[3,2] a pour valeur 5
Mat[4,3] a pour valeur -4
Mat[5,1] a pour valeur 7
Exemple : 2.3- Exemple
Énoncé :
Ecrire un programme en langage pascal permettant de renseigner les 12 premiers nombres multiples de 3 dans
une matrice de 3 lignes et 4 colonnes.
Solution :
program multitrois ;
uses crt ;
var
matmulti : array[1..3,1..4] of integer ;
i,j,k : integer ;
begin
k := 1 ;
for i := 1 to 3 do
10
2- Tableau à deux dimensions
begin
for j := 1 to 4 do
begin
matmulti[i,j] := 3*k ;
k := k + 1 ;
end;
end;
for i := 1 to 3 do
begin
for j := 1 to 4 do
begin
writeln('matmulti[',i,j,'] =',matmulti[i,j]);
end;
end;
readkey;
end.
11
Application 2 :
Application 2 :
IV
Exercice
Donner la syntaxe de déclaration correcte :
VarTab : array[8..1,1..8] of real;
typet_tab : array[1..8,1..8] of real;VarTab : t_tab;
typet_tab : array[1..8,1..8] of real;VarTab : t_tableau;
12
Application 2 :
Exercice
Énoncé :
Écrire un programme permettant de saisir des données entières supérieur à zéro d'un tableau à deux
dimensions (10,4), de faire leur somme, produit et moyenne( formater à 5 caractères à gauche et 2 caractères à
droit) et de les afficher avec les résultats de calcul à l'écran.
TAF : Veuillez remplir toutes les trous avec les valeurs qui conviennent.
NB :
Toutes les réponses ne doivent pas avoir des espaces et elles doivent être en minuscule.
Solution :
program matrice;
uses crt ;
mat : array[ ] of integer;
var
t :
i,j,som,prod
moy
begin
for i := 1 to do
begin
for j := 1 to do
begin
repeat
Entrez votre nombre :
until
end;
end;
som
prod
for i := 1 to do
begin
for j := 1 to do
begin
writeln(t[i,j]);
13
Application 2 :
som :=som
prod :=prod
end;
end;
moy := 10*4 ;
writeln('La somme est :',
writeln('Le produit est :',
writeln('La moyenne est :',
readkey;
end.
14