Tableaux
Un Array est une collection ordonnée de valeurs. Il contient des nombres, des chaînes ou n'importe quelle valeur, et son indexation commence à zéro (base 0).
Déclarer et créer
Déclarez avec le type Array et affectez un littéral entre crochets. Les éléments sont séparés par une virgule :
var numeros: Array;
var nomes: Array;
begin
numeros := [10, 20, 30, 40, 50];
nomes := ["Alice", "Bob", "Carlos", "Diana"];
WriteLn("Arrays criados");
end.Arrays criados
Un tableau vide s'écrit [] :
var vazio: Array;
begin
vazio := [];
WriteLn("Array vazio pronto");
end.Array vazio pronto
Accéder par indice
Utilisez array[indice] pour lire un élément. Le premier élément se trouve à l'indice 0 :
var numeros: Array;
var nomes: Array;
begin
numeros := [10, 20, 30, 40, 50];
nomes := ["Alice", "Bob", "Carlos", "Diana"];
WriteLn("Primeiro número: ", numeros[0]);
WriteLn("Último nome: ", nomes[3]);
end.Primeiro número: 10 Último nome: Diana
Affecter des éléments
Modifiez un élément avec array[i] := valeur; :
var numeros: Array;
begin
numeros := [10, 20, 30];
numeros[2] := 99;
WriteLn("Terceiro após modificação: ", numeros[2]);
end.Terceiro após modificação: 99
Itérer avec for..in
La manière la plus directe de parcourir un tableau est le for..in, qui fournit chaque élément directement :
var numeros: Array;
var item: Integer;
var soma: Integer;
begin
numeros := [10, 20, 30, 40, 50];
soma := 0;
for item in numeros do
begin
WriteLn(" ", item);
soma := soma + item;
end;
WriteLn("Soma: ", soma);
end.10 20 30 40 50 Soma: 150
Cela fonctionne aussi avec des tableaux de chaînes :
var nomes: Array;
var nome: String;
begin
nomes := ["Alice", "Bob", "Carlos"];
for nome in nomes do
WriteLn("Olá, ", nome, "!");
end.Olá, Alice! Olá, Bob! Olá, Carlos!
Indices hors intervalle
Accéder à un indice inexistant lève une erreur à l'exécution :
var numeros: Array;
begin
numeros := [10, 20, 30];
WriteLn(numeros[5]); // erro: índice fora do intervalo
end.Le dépassement d'intervalle est capturable
Un accès hors des limites génère une erreur que vous pouvez encadrer avec try/catch. Voir Gestion des erreurs.
Fonctions auxiliaires
Pour des opérations plus avancées — trier, filtrer, mapper, additionner, concaténer — importez la bibliothèque internal.collections :
uses internal.collections;
var numeros: Array;
begin
numeros := [3, 1, 2];
WriteLn("Tamanho: ", arraySize(numeros));
WriteLn("Soma: ", arraySum(numeros));
end.Tamanho: 3 Soma: 6
Des collections complètes
internal.collections fournit arraySort, arrayFilter, arrayMap, arrayReduce, arrayReverse, arrayContains et bien plus encore. Voir Bibliothèques internes.
Ensuite, apprenez à gérer les défaillances d'exécution dans Gestion des erreurs.