Skip to content

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:

npas
var numeros: Array;
var nomes: Array;

begin
    numeros := [10, 20, 30, 40, 50];
    nomes := ["Alice", "Bob", "Carlos", "Diana"];
    WriteLn("Arrays criados");
end.
Saída
 Arrays criados 

Ein leeres Array ist []:

npas
var vazio: Array;

begin
    vazio := [];
    WriteLn("Array vazio pronto");
end.
Saída
 Array vazio pronto 

Zugriff über den Index ​

Verwenden Sie array[índice], um ein Element zu lesen. Das erste Element befindet sich am Index 0:

npas
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.
Saída
 Primeiro número: 10 Último nome: Diana 

Elemente zuweisen ​

Ändern Sie ein Element mit array[i] := valor;:

npas
var numeros: Array;

begin
    numeros := [10, 20, 30];
    numeros[2] := 99;
    WriteLn("Terceiro após modificação: ", numeros[2]);
end.
Saída
 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:

npas
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.
Saída
 10 20 30 40 50 Soma: 150 

Es funktioniert auch mit String-Arrays:

npas
var nomes: Array;
var nome: String;

begin
    nomes := ["Alice", "Bob", "Carlos"];
    for nome in nomes do
        WriteLn("Olá, ", nome, "!");
end.
Saída
 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:

npas
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:

npas
uses internal.collections;

var numeros: Array;

begin
    numeros := [3, 1, 2];
    WriteLn("Tamanho: ", arraySize(numeros));
    WriteLn("Soma: ", arraySum(numeros));
end.
Saída
 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.