Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/Chapter 5/1-dimensional arrays/fr: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11[[Basic Pascal Tutorial/fr|Tutoriel de Pascal Objet]] : Types de données / **Tableaux a une dimension**
22
33Supposez que vous vouliez lire 5000 entiers et faire quelque chose avec eux. Comme stocker les entiers ?
44
55Vous pourriez utiliser 5000 variables, et tomber dans :
66
7-`aa, ab, ac, ad, ... aaa, aab, ... aba, ...`
7+```
8+aa, ab, ac, ad, ... aaa, aab, ... aba, ...
9+```
810
911Mais ça deviendrait fastidieux (après avoir déclaré les variables, vous devez lire les valeurs dans chaque de ces variables).
1012
1113Un tableau contient plusieurs espaces de stockage, tous du même type. Vous vous référez à chaque espace de stockage avec le nom du tableau avec un indice. La définition du type est :
1214
1315``` pascal
1416type
1517 typename = array [enumerated_type] of another_data_type;
1618```
1719
1820Le type de données peut être n'importe lequel, même un autre tableau. Tout type énuméré ira. Vous pouvez spécifier le type énuméré entre les crochets, ou utiliser un type énuméré prédéfini. En d'autres mots,
1921
2022``` pascal
2123type
2224 enum_type = 1..50;
2325 arraytype = array [enum_type] of integer;
2426```
2527
2628est équivalent à :
2729
2830``` pascal
2931type
3032 arraytype = array [1..50] of integer;
3133```
3234
3335Aparté : C'est la façon dont sont réellement gérées les chaînes — comme des tableaux. Avant que les compilateurs Pascal modernes eurent ajoutés le support des chaînes, les programmeurs devaient les manipuler eux-mêmes, en déclarant :
3436
3537``` pascal
3638type
3739 String = packed array [0..255] of char;
3840```
3941
4042et en utilisant quelque caractère de fin pour indiquer la fin de la chaine. La plupart du temps c'est le caractère nul (numéro ordinal 0, ou ord(0)). Le spécificateur `packed` veut dire que le tableau sera compressé pour prendre le moins de place possible en mémoire.
4143
4244Les tableaux de caractères représentant des chaines sont souvent désignés par tampons et une erreur en les manipulant dans les langages C ou C++ peut amener à des débordements de tampon. Un débordement de tampon arrive quand vous essayez de mettre, par exemple, une chaine de 200 caractères dans un tableau d'une longueur de 150. Si la mémoire au-delà du tampon est écrasée et si cette mémoire contenait originellement du code exécutable, alors l'attaquant a tout juste réussi à injecter du code arbitraire dans votre système. C'est ce qui a causé le célèbre ver Slammer qui était endémique sur l'Internet pendant plusieurs jours. Essayez en Pascal et regardez ce qu'il arrive.
4345
4446Les tableaux sont utiles si vous voulez stocker de grandes quantités de données pour un usage futur dans le programme. Ils marchent particulièrement bien avec les boucles parce qu'il sont utilisés avec un indice. Pour lire 50 nombres, en supposant la définition suivante :
4547
4648``` pascal
4749type
4850 arraytype = array[1..50] of integer;
4951
5052var
5153 myarray : arraytype;
5254```
5355
5456Utilisez :
5557
5658``` pascal
5759for count := 1 to 50 do
5860 read (myarray[count]);
5961```
6062
6163Les crochets `[ ]` entourent l'indice pour référer aux cellules du tableaux.
6264
6365``` pascal
6466myarray[5] := 6;
6567```
6668
6769---
6870*From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 5/1-dimensional arrays/fr", as it stood on 2022-08-20 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history