Skip to content

Array

Un Array è una collezione ordinata di valori. Contiene numeri, stringhe o qualsiasi valore, e la sua indicizzazione è in base 0.

Dichiarare e creare

Dichiara con il tipo Array e assegna un letterale tra parentesi quadre. Gli elementi sono separati da virgola:

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 

Un array vuoto è []:

npas
var vazio: Array;

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

Accedere per indice

Usa array[indice] per leggere un elemento. Il primo elemento si trova all'indice 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 

Assegnare elementi

Modifica un elemento con array[i] := valore;:

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 

Iterare con for..in

Il modo più diretto di percorrere un array è il for..in, che fornisce direttamente ogni elemento:

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 

Funziona anche con array di stringhe:

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! 

Indici fuori dall'intervallo

Accedere a un indice inesistente genera un errore in fase di esecuzione:

npas
var numeros: Array;

begin
    numeros := [10, 20, 30];
    WriteLn(numeros[5]);   // erro: índice fora do intervalo
end.

Fuori intervallo è catturabile

Un accesso fuori dai limiti genera un errore che puoi racchiudere in try/catch. Vedi Gestione degli errori.

Funzioni ausiliarie

Per operazioni più avanzate — ordinare, filtrare, mappare, sommare, concatenare — importa la libreria 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 

Collezioni complete

internal.collections offre arraySort, arrayFilter, arrayMap, arrayReduce, arrayReverse, arrayContains e molto altro. Vedi Librerie interne.

Ora impara a gestire i fallimenti in fase di esecuzione in Gestione degli errori.