Vous êtes sur la page 1sur 8

ENS BTA Département Info TIC 4

CHAPITRE 4 : TABLEAUX ET ENREGISTREMENTS


I-) Les Tableaux
Un tableau est juste un ensemble de variables de même types qu’on a
mis ensemble.
Supposons que l’on veuille enregistrer les 12 notes d’un étudiant afin de calculer sa moyenne.
La seule solution dont nous disposons à l’heure actuelle consiste à créer 12 variables réelles
n1, n2 …n12 ; On se rend vite compte que cela est fastidieux. Il est possible de rassembler,
toutes ces variables en une seule, appelée Tableau au sein de laquelle chaque valeur sera
désignée par un numéro.
Un tableau encore appelé vecteur sert à distinguer une suite finie
d’éléments de même type au moyen d’une unique variable. Ces éléments sont stockés dans
les différentes cases du tableau habituellement numéroté de 1 à n.
n : représentant la taille du tableau c’est-à-dire le nombre de case dans le tableau.
Les numéros permettant de désigner les differents éléments d’un tableau sont appelés des
indices. C’est pourquoi les tableaux sont également appelés Variables indicées.

I-1) Déclaration d’un tableau

Pour déclarer un tableau, il faut préciser :


 Le nom du tableau
 Le type d’éléments à stocker
 Le plus petit indice et le plus grand indice
La syntaxe générale est la suivante :

Var nomTableau : tableau [ indiceInf … Indice Sup] de TypeEléments ;

Exemple : Var : t : tableau [1……..10] de Réels ;

Cette ligne déclare un tableau nommé « t », de 10 réels ; Une illustration de ce tableau pourrait
être :
Valeurs 123 -46 0,5 276,3 0 -1 -1,5 7 1000 200
Indices 1 2 3 4 5 6 7 8 9 10

Dans ce cours, on considère que le plus petit indice d’un tableau vaut toujours
1 ; Pour accéder à un élément, il suffit de préciser le nom du tableau, suivi entre crochets de
l’indice de la case contenant cet élément.
Par exemple, pour accéder au 7ème éléments du tableau ( -1,5) on écrira t [7].
L’instruction x t [3] affecte à la variable x la valeur du 3ème élément du tableau c’est-à-dire
0,5. L’élément désigné t [i] du tableau peut être utilisé comme n’importe quelle variable. Ainsi
l’instruction Lire ( t [9] ) stockera dans la 9ème case du tableau un réel saisi au clavier par
l’utilisateur, en écrasant la valeur 1000.
L’instruction t [7] 43 modifiera le tableau en remplaçant la valeur de la 7ème case par 43.

 Avantages des tableaux


L’utilisation des tableaux offre deux avantages principaux :
- La manipulation de plusieurs variables en ne déclarant qu’une seule

1
ENS BTA Département Info TIC 4

- La possibilité de les manipuler en utilisant des boucles.

Exemple :
Pour effectuer le calcul de la moyenne, évoquer en début de chapitre, on pourra utiliser
l’algorithme suivant :
Algorithme MoyenneEtudiant ;
Const N = 12 ;
Var notes : tableau [1…..N] de réel ;
i : entier ; S,moy : réel ;
Début
Afficher (‘’ Entrer les ‘’ , N, ‘’ notes de l’étudiant ‘’) ;
Pour i de 1 à N faire
Lire (notes [ i ] ;
Finpour ;
S 0;
Pour i de 1 à N faire
S S + notes [ i ];
Finpour ;
moy S/N ;
Afficher (‘’ La moyenne est ‘’, moy);
Fin.

Remarque 1 : Dans cet algorithme, nous avons utilisé 2 boucles. Cependant on aurait pu
utiliser une seule boucle.
Algorithme MoyenneEtudiant ;
Const N = 12 ;
Var notes : tableau [1…..N] de réel ;
i : entier ; S,moy : réel ;
Début
Afficher (‘’ Entrer les ‘’, N, ‘’ notes de l’étudiant ‘’) ;
S 0
Pour i de 1 à N faire
Lire (notes [ i ] ;
S S + notes [ i ];
Finpour ;
moy S/N;
Afficher (‘’ La moyenne est ‘’, moy) ;
Fin.

Remarque 2 : L’utilisation d’un indice qui est en dehors de la plage des indices déclenchera
automatiquement une erreur. Ainsi, pour le tableau de notes précédent, un appel à note [0]
note [13], note [14] …etc. déclenchera une erreur.

2
ENS BTA Département Info TIC 4

I-2) Recherche dans un tableau

Elle consiste à parcourir un tableau afin de savoir si un élément donné s’y trouve. Il existe
plusieurs algorithmes de recherche d’un élément dans un tableau ; selon que le tableau soit
trié (rangé du plus petit au plus grand ou inversement) ou non. Nous allons nous limiter à un
processus de recherche simple appelé recherche séquentielle, qui ne se soucie pas de la
nature du tableau (trié ou non).
NB : Dans tous les algorithmes qui vont suivre, on supposera que le tableau est déjà rempli et
l’élément recherché connu (on s’intéresse ici au processus de recherche).

 La recherche séquentielle simple : elle consiste à parcourir le tableau du début à


la fin (ou inversement) et de comparé l’élément recherché à chaque élément du
tableau.
Algorithme Recherche SéquentielleSimple ;
Var t : tableau [1…..N] de réel ;
i : entier ; x : réel ;
Début
Pour i de 1 à N faire
Si t [ i ] = x alors
Afficher (x, ‘’ trouvé en position’’,i) ;
Finsi ;
Finpour ;
Fin.
NB : x est l’élément recherché.

Remarques :
1) Le processus de recherche continue, même lorsque l’élément a été trouvé. Cet
algorithme est donc intéressant si l’on recherche toutes les occurrences de x dans ce
tableau.
2) Si l’élément x ne se trouve pas dans le tableau, l’algorithme reste muet, mais on peut
palier à cette insuffisance en comptant le nombre d’occurrences des éléments
recherchés dans le tableau.
Algorithme Recherche SéquentielleSimple ;
Var t : tableau [1…..N] de réel ;
Nbocc, i : entier ; x : réel ;
Début
Nbocc 0
Pour i de 1 à N faire
Si t [ i ] = x alors
Afficher (x, ‘’ trouvé en position’’,i) ;
Nbocc Nbocc + 1 ;
Finsi ;
Finpour ;
Si (Nbocc = 0) alors
Afficher (x, ‘’ n’appartient pas à ce tableau ‘’) ;
Finsi ;
Fin.

3
ENS BTA Département Info TIC 4

 La recherche séquentielle avec Drapeau : si on cherche juste à savoir si oui ou non


l’élément appartient au tableau, il faudra s’arrêter dès que l’on a trouvé la 1ère
occurrence de l’élément recherché. Ceci peut se faire en utilisant une boucle « tant
que » ou « Répéter » et une variable booléenne (appelée drapeau) que l’on
initialisera à Faux (drapeau baissé) et qui passera à Vrai (drapeau levé) quand on
trouvera la première occurrence et provoquera ainsi la sortie.

Algorithme Recherche SéquentielleFlag ;


Var t : tableau [1…..N] de réel ;
i : entier ; x : réel ;
trouve : booléen ;
Début
trouve Faux ;
i 1;
Tant que (i <= N) et non (trouve) faire
Si t [ i ] = x alors
Afficher (x, ‘’ trouvé en position’’,i) ;
trouve Vrai ;
Finsi ;
i i+1 ;
FinTantque ;
Si non (trouve) alors
Afficher (x, ‘’ n’appartient pas au tableau ‘’) ;
Finsi ;
Fin.

Remarque : Une instruction spéciale « sortir » permet d’interrompre l’exécution d’une boucle
(tant que, pour, répéter) et passer directement à l’exécution de l’instruction placé après la
boucle. En pascal l’instruction « sortir » c’est « Break ».

Algorithme Recherche SéquentielleBreak ;


Var t : tableau [1…..N] de réel ;
i : entier ; x : réel ;
Début
i 1;
Tant que (i <= N) faire
Si t [ i ] = x alors
Afficher (x, ‘’ trouvé en position’’,i) ;
Sortir ;
Finsi ;
i i+1 ;
FinTantque ;
Si (i > N) alors
Afficher (x, ‘’ n’appartient pas au tableau ‘’) ;
Finsi ;
Fin.

4
ENS BTA Département Info TIC 4

 Recherche du plus grand élément

Algorithme PlusGrandElément ;
Var t : tableau [1…..N] de réel ;
i : entier ; max : réel ;
Début
max t [ 1 ] ;
Pour i de 2 à N faire
Si (t [ i ] > max) alors
max t[i];
Finsi ;
Finpour ;
Afficher (‘’ le maximum est ‘’, max) ;
Fin.

Si l’on veut également avoir la position dans laquelle se trouve le max ou le plus grand élément,
on fera :
Algorithme PlusGrandElément ;
Var t : tableau [1…..N] de réel ;
pos, i : entier ; max : réel ;
Début
max t [ 1 ] ;
pos 1
Pour i de 2 à N faire
Si (t [ i ] > max) alors
max t[i];
pos i;
Finsi ;
Finpour ;
Afficher (‘’ le maximum est ‘’, max,’’ Il est à la position’’, pos) ;
Fin.

I-3) Tableaux multidimensionnels

Pour localiser un élément dans le plan (exemple d’un pion sur un jeu de dame
ou d’un élément dans une matrice), on utilise 2 coordonnées. Il serait donc intéressant pour
modéliser un plan d’utiliser des tableaux à 2 dimensions ; On pourrait alors imaginer des
tableaux à 3, 4, jusqu’à n dimensions.
Nous nous intéresserons ici, aux tableaux à 2 dimensions qui sont des structures de données
organisées en lignes et colonnes. Ils sont déclarés comme suit :

Var NomTableau : Tableau [IndiceInf1 … IndiceSup1, IndiceInf2…IndiceSup2] de Type


Eléments ;
Lignes Colonnes

Exemple : Var Matrice : tableau [1 … 3 ,1…4] de réel ;


Cette ligne déclare un tableau de 3 lignes et 4 colonnes nommé Matrice.

5
ENS BTA Département Info TIC 4

Un élément du tableau est repéré par un indice de ligne et un indice de colonne. Ainsi, un
élément appartient à la ligne i et à la colonne j est localisé par la matrice [ i j ] où 1 ≤ 𝑖 ≤ 3 et
1 ≤ 𝑗 ≤ 4.
Une illustration du tableau Matrice pourrait être :

Matrice [2 3] désigne l’élément de la ligne 12.4 41 99 0


2 et de la colonne 3 soit 57. 30 0 57 -1
36 1.5 5 100

II-) Les Enregistrements


II.1) Structure de type

Une structure de type correspond à la déclaration d’une structure de


données composées, à laquelle on a donné un nom. Une fois le type défini, on peut désormais
l’utiliser dans des déclarations de variables comme un type élémentaire. Les structures de
types sont déclarées à l’aide du mot clés « type » : Type : NomType = définition ;
Exemple :
1-) Type listeEtudiant = tableau [1…50] de chaîne ;
Cette instruction défini un type tableau de 50 chaînes de caractères. Pour utiliser le nouveau
type liste Etudiant, on aura des instructions du genre :
Var : Tci : listeEtudiant
Tci [3] ‘’ Zeh Zeh ‘’ ;
2-) Type damier = tableau [20,20] de Entier ;
Cette instruction désigne un type de tableau de 20 lignes et 20 colonnes d’entiers, soit 400
entiers.
Un algorithme permettant de remplir un tel tableau pourrait être :
Algorithme RemplirDamier
Type : damier = tableau [1…20, 1…20] de Entier ;
Var d : damier ;
i, j : entier ;
Début :
Pour i de 1 à 20 faire
Pour j de 1 à 20 faire
Afficher (‘’ Elements en ligne ’’, i,’’ et colonne ‘’, j) ;
Lire (d [i j ]) ;
Finpour ;
Finpour ;
Fin.

NB : Les types sont déclarés avant la déclaration des variables.

II.2) Enregistrements
a-) Définition
Une structure de type enregistrements est donc, une structure de données
permettant de regrouper des objets de types différents. Les enregistrements sont en général

6
ENS BTA Département Info TIC 4

utilisés pour regrouper les différents caractéristiques d’un même objet, chaque caractéristique
étant alors appelé champ.
Pour définir un type enregistrement, on doit indiquer l’ensemble des champs qui le compose,
chaque champ étant caractérisé par un nom et un type.

Type : NomEnregistrement = Enregistrement


Champ 1 : Type 1 ;
Champ 2 : Type 2 ;

Champ n : Type n ;
FinEnregistrement ;
Exemple :
Type : Etudiant = Enregistrement
Nom : chaîne (50) ;
Age : entier ;
Sexe : car ;
Taille : réel ;
FinEnregistrement ;
Var e : Etudiant ;

b-) Utilisation
Pour accéder différents champs d’un enregistrement, on utilise une notation
pointée consistant à préciser le nom de l’enregistrement suivi d’un point et le nom du champ.
Exemple : e.nom ‘’ Zeh Zeh ‘’ ;

Pour renseigner, on pourra utiliser :


Afficher (‘’ Entrer le nom,l’âge, le sexe, et la taille de l’étudiant ‘’) ;
Lire (e.nom, e.age, e.sexe, e.taille) ;
Une instruction spéciale ‘’ Avec …Faire ‘’ permet d’alléger l’accès à plusieurs champs du
même enregistrement. On pourrait alors avoir :
Avec e Faire
Début
Lire (nom, age, sexe, taille) ;
Fin.

c-) Exemple complet

Dans un programme de gestion des notes des étudiants, un étudiant est caractérisé par son
matricule, son nom, sa note de fin de semestre.
Ecrire un algorithme permettant de saisir les informations sur cet étudiant, de calculer la
moyenne générale de la classe et d’afficher toutes les caractéristiques du meilleur étudiant. Il
s’agit d’une classe de 50 étudiants.

7
ENS BTA Département Info TIC 4

Algorithme : GestionDes Notes ;


Type : Etudiant = Enregistrement
Matricule : chaîne (15) ;
Nom : chaîne ;
NoteSem : réel ;
FinEnregistrement ;
Classe = tableau [1…50] de Etudiant ;
Var Tci : classe ;
i,posMax :entier
s, max, moy :réel ;
Début :
S 0;
Max 0;
Pour i de 1 à 50 faire
Afficher (‘’ Entrer le matricule,le nom et le note semestrielle de l’etudiant ‘’, i) ;
Avec Tci [ i ] faire
Début
Lire (matricule, nom, noteSem) ;
S S+noteSem ;
Si noteSem > max alors
Max noteSem;
Posmax i;
Finsi;
Fin ;
Finpour ;
Moy S / 50 ;
Afficher (‘’ Moyenne générale :’’ , moy) ;
Afficher (‘’ Meilleur étudiant,
Nom :’’, Tci [posmax]. nom,
‘’ matricule :’’, Tci [posmax]. matricule,
‘’ note semestrielle :’’, Tci [posmax]. noteSem) ;
Fin.

Vous aimerez peut-être aussi