Arrays
Ein Array ist eine geordnete Sammlung von Werten. Es speichert Zahlen, Strings oder beliebige Werte, und seine Indizierung ist nullbasiert.
Deklarieren und erstellen
Deklarieren Sie mit dem Typ Array und weisen Sie ein Literal in eckigen Klammern zu. Die Elemente werden durch Kommas getrennt:
var numeros: Array;
var nomes: Array;
begin
numeros := [10, 20, 30, 40, 50];
nomes := ["Alice", "Bob", "Carlos", "Diana"];
WriteLn("Arrays criados");
end.Arrays criados
Ein leeres Array ist []:
var vazio: Array;
begin
vazio := [];
WriteLn("Array vazio pronto");
end.Array vazio pronto
Zugriff über den Index
Verwenden Sie array[índice], um ein Element zu lesen. Das erste Element befindet sich am Index 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
Elemente zuweisen
Ändern Sie ein Element mit array[i] := valor;:
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
Iterieren mit for..in
Der direkteste Weg, ein Array zu durchlaufen, ist for..in, das jedes Element direkt liefert:
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
Es funktioniert auch mit String-Arrays:
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!
Indizes außerhalb des Bereichs
Der Zugriff auf einen nicht existierenden Index löst einen Fehler zur Laufzeit aus:
var numeros: Array;
begin
numeros := [10, 20, 30];
WriteLn(numeros[5]); // erro: índice fora do intervalo
end.Außerhalb des Bereichs ist abfangbar
Ein Zugriff außerhalb der Grenzen erzeugt einen Fehler, den Sie in try/catch einschließen können. Siehe Fehlerbehandlung.
Hilfsfunktionen
Für fortgeschrittenere Operationen — sortieren, filtern, abbilden, summieren, verketten — importieren Sie die Bibliothek 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
Vollständige Sammlungen
internal.collections bietet arraySort, arrayFilter, arrayMap, arrayReduce, arrayReverse, arrayContains und vieles mehr. Siehe Interne Bibliotheken.
Als Nächstes lernen Sie, mit Ausführungsfehlern in Fehlerbehandlung umzugehen.