Beruflich Dokumente
Kultur Dokumente
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
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.
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].
var
s : string [8];
i : integer ;
begin
s := 'coucou' ;
for i := 1 to 6 do
writeln (s[i]);
end.
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.
Fonctions utiles
Nom de la fonction Explication
length Renvoie la longueur du tableau ou de la chaîne de caractère
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.
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»
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.