back to top

Delphi Array

Gli array permettono la memorizzazione di insiemi di elementi dello stesso tipo. In effetti si tratta di una variabile in cui vengono memorizzati più valori dello stesso tipo, separati da un indice numerico che va da zero (0) a “N” ed indentificabili facendo riferimento al nome della variabile associata all’indice.

Esistono array monodimensionali la cui dichiarazione avviene nel seguente modo:

var nome: array[1..n] of tipo;
dove “nome” è il nome da dare all’array, “n” è il limite superiore dell’array e “tipo” è la natura degli elementi in esso contenuti; ad esempio

var vettore: array[1..1000] of integer;
Dichiara un array di 1000 elementi di tipo integer.

Facciamo un esempio pratico, definiamo un array monodimensionale e carichiamolo con i giorni della settimana.

Incolliamo su di un Form un Tlabel che ci servirà per visualizzare gli elementi contenuti nell’array, quindi occupiamoci della parte dichiarativa:

var settimana : array[1..7] of string;
var i: integer;
L’array in questione, si chiama settimana ed è costituito da 7 elementi di tipo string, mentre i, è un intero che serve da contatore. Vediamo ora la parte elaborativa

E’ buona norma, quando si lavora con gli array, inizializzare questi ultimi, per evitare che essi possano contenere dati sporchi. Il codice che segue inizializza l’array con spazi, essendo di tipo string.

label1.caption := '';
i := 0;
for i := 1 to 7 do
    settimana[i] := '';
Next;
In quest’ambito, abbiamo anche inizializzato la variabile contatore e il TLabel.

Il prossimo passo, sarà caricare l’array con i valori corrispondenti ai giorni della settimana. Ecco il codice:

settimana[1] := 'lunedi';
settimana[2] := 'martedi';
settimana[3] := 'mercoledi';
settimana[4] := 'giovedi';
settimana[5] := 'venerdi';
settimana[6] := 'sabato';
settimana[7] := 'domenica';
A questo punto, visualizzeremo il contenuto dell’array, in base all’indice corrispondente.

i := 0;
for i := 1 to 7 do
    label1.caption := label1.caption + ' ' + settimana[i];
next;
Gli array multidimensionali, invece, sono array di array, esempio:
var matrice = array[1..10, 1..50] of integer;
Dichiara un’array bidimensionale.

Facciamo un esempio, create un nuovo progetto e, come in precedenza, mettete sul Form un TLabel. Realizzeremo un’agenda settimanale.

Utilizzeremo un’array bidimensionale, nel quale identificheremo la prima dimensione con i giorni della settimana (1 lunedi, 2 martedi ecc.), mentre la seconda dimensione rappresenterà le ore per ciascun giorno.

Consideriamo quindi la parte dichiarativa, in cui dichiariamo un array chiamato agenda di tipo string, in modo da poter contenere gli appuntamenti e alcune variabili indice:

var agenda : array[1..7, 1..24] of string;
var i,j: integer;
Avremo quindi 7 giorni, identificati con la prima dimensione, ciascuno costituito da 24 ore (seconda dimensione. Inoltre esistono due variabili indice i e j una per ciascuna dimensione dell’array.

Di seguito è riportata la parte elaborativa, in cui si esegue un’inizializzazione sia del TLabel, sia degli elementi dell’array.

label1.Caption := '';
for i := 1 to 7 do
 for j := 1 to 24 do
  agenda[i,j] := '';
 next;
next;
Inseriamo un appuntamento, alle ore 9 del lunedi:

agenda[1,9] := 'riunione';
Come potete notare, abbiamo puntato all’elemento 1 della prima dimensione e all’elemento 9 della seconda.

Per poter visualizzare ciò che abbiamo appena inserito basta il codice seguente:

label1.Caption := agenda[1,9];

Pubblicitร