Sie sind auf Seite 1von 4

Langage Pascal/Les tableaux

Sommaire
Les tableaux
Les chaînes de caractères
Chaines statiques
Chaînes dynamiques
Tableaux de tableaux
Fonctions utiles

Les tableaux
Un outils particulièrement pratique et proposé dans la grande majorité des langages est le tableau. Il permet le stockage d'une série
d'éléments de même type.

Imaginons un professeur voulant stocker les notes de 5 élèves, il peut ainsi utiliser un tableau d'entiers de longueur 5. Illustrons ce
dernier :

12 16 07 13 09

En pascal, un tableau peut être déclaré de la manière suivante :

var
t : array[1..5] of integer ;

Ainsi, ce code déclare un tableau d'entiers, dont les indices vont de 1 à 5. Cet indice permet d'accorder un numéro à chacune des
cases et d'y accéder.

Exemple :

var
t : array[1..5] of integer ;

begin
t[1] := 12;
t[2] := 16;
t[3] := 7;
t[4] := 13;
t[5] := 9;
end.

Voilà comment il est possible d'affecter une valeur à chacune des cases du tableau. L'accès en lecture se fait par la même notation.

Les chaînes de caractères


Il n’est pas rare de rencontrer une situation où il est nécessaire de stocker des mots et donc des chaînes de caractères appelé
également string.
Chaines statiques
Une chaîne statique est une chaîne de caractère dont l'espace mémoire utilisé est prédéfini. La longueur est donc limitée. En pascal,
les chaînes statiques sont des tableaux de caractères. Les deux déclarations suivantes sont équivalentes :

var
t : array[0..8] of char;
s : string [8];

Ainsi, s est un tableaux de caractères indicés de 1 à 8, l'indice 0 étant réservé au stockage de la longueur réelle de la chaîne de
caractères. On ne peut pas modifier l'indice zéro pour des chaînes dynamiques, c'est-à-dire donc la taille n’est pas définie à l'avance
avec la syntaxe string[n].

Il est fortement déconseillé de manipuler l'indice zéro.


Poursuivons l'exemple précédent :

var
s : string [8];
i : integer ;

begin
s := 'coucou' ;
for i := 1 to 6 do
writeln (s[i]);
end.

Ce qui donne le résultat suivant :

c
o
u
c
o
u

Notons que les valeurs des cases d'indice 7 et 8 sont imprévisibles puisque non initialisées.

Chaînes dynamiques
Les chaînes dynamiques sont des chaînes dont la taille n’est pas prédéfinie. Elles sont définies simplement comme ceci :

var
s : string ;

begin
s := 'bonjour' ;
end;

Il faut noter que dans les anciennes implémentation de Pascal, il n'y avait pas de chaînes dynamiques, et la syntaxe string était
interprétée comme une chaîne statiques de longueur maximum 255.

Les chaînes dynamiques ont une longueur essentiellement limitée par la mémoire disponible. Il n'y a pas d'indice zéro, mais on peut
redéfinir leur longueur avec la fonctionSetLength :

var s: string ;

begin
s := 'abcde' ; { la longueur est de 5 caractères }
setLength (s,3); { on redéfini la longueur }
writeln (s); { on affiche le résultat }
end;
Ce code affichera

abc

Tableaux de tableaux
Si on désire stocker une matrice entière, il est possible de manipuler des tableaux de tableaux, également appelé tableaux 2D.
On peut les déclarer de deux façon strictement identique :

var
m1 : array[1..5] of array[1..10] of real;
m2 : array[1..5,1..10] of real;

Ainsi, m1 et m2 sont des matrices de tailles 5 sur 10 et il est possible de les manipuler comme indiquer ci-dessous :

var
m1, m2 : array[1..5,1..10] of real;

begin
m1[i,j] := 10; {affectation de la valeur 10 en ligne i, colonne j}
m1[i] := m1[i+1]; {copie complète de la ligne i+1 sur la ligne i}
m2 := m1 {copie de la matrice complète }
end.

mais il est impossible d'accéder directement à une colonne.

Fonctions utiles
Nom de la fonction Explication
length Renvoie la longueur du tableau ou de la chaîne de caractère

low Renvoie l'indice minimum du tableau

high Renvoie l'indice maximum du tableau

L'exemple où l’on affiche chaque caractère contenu dans une chaine de caractère peut être réécrit ainsi :

var
s : string [8];
i : integer ;

begin
s := 'coucou' ;
for i := 1 to length (s) do
writeln (s[i]);
end.

Et on peut initialiser un tableau comme cela :

var
t : array[1..5] of integer ;
i : integer ;
begin
{ on met la valeur 36 dans toutes les cases du tableau }
for i := low(t) to high(t) do
t[i] := 36;
end.
Récupérée de « https://fr.wikiversity.org/w/index.php?title=Langage_Pascal/Les_tableaux&oldid=688910»

La dernière modification de cette page a été faite le 8 septembre 2017 à 15:52.

Les textes sont disponibles souslicence Creative Commons Attribution-partage dans les mêmes conditions
; d’autres
conditions peuvent s’appliquer. Voyez les conditions d’utilisation pour plus de détails.

Das könnte Ihnen auch gefallen