Introduzione agli array e alla loro gestione
Prof. Claudio Ricci
Classificazione
• Monodimensionali (Vettori)
• Bidimensionali (Matrici)
definizione
Un array è una struttura dati
complessa usata in molti linguaggi di
programmazione.
modimensionale
Si può immaginare un array come una
sorta di casellario, le cui caselle sono
dette celle dell'array stesso.
Ciascuna delle celle si comporta come
una variabile tradizionale; tutte le celle
sono variabili di uno stesso tipo
preesistente, detto tipo base
dell'array.
Si parlerà perciò di tipi come "array di
interi", "array di stringhe", "array di
caratteri" e così via.
celle
bidimensionale
Definizione di un vettore
Ecco un esempio, che si serve della sintassi C per definire e valorizzare un array:
int vettore[10]; // definisce "vettore" come array di 10 elementi interi
vettore[0] = 0; // assegna il valore "0" alla cella di indice 0
vettore[1] = 1;
vettore[2] = 1;
vettore[3] = 2;
vettore[4] = 3;
Ecco un esempio, che si serve della sintassi PASCAL per definire e valorizzare un array:
var vettore: array [1..10] of integer; (* definisce "vettore" come array di 10 elementi interi*)
vettore[1] = 0;(* assegna il valore "0" alla cella di indice 1*)
vettore[2] = 1;
vettore[3] = 1;
vettore[4] = 2;
vettore[5] = 3;
Indice
Ciascuna delle celle dell'array è identificata da un valore di indice.
L'indice è generalmente numerico e i valori che gli indici possono assumere
sono numeri interi contigui che partono da 0 o da 1. Si potrà quindi parlare
della cella di indice 0, di indice 1, e, in generale, di indice N, dove N è un
intero compreso fra 0 (o 1) e il valore massimo per gli indici dell'array.
indice
1
2
3
4
5
Gestione di un vettore
La maggior parte dei programmi che utilizzano array si servono della
struttura di controllo "cicli for" per attraversare gli array, ovvero per
accedere sequenzialmente alle celle.
Il ciclo for si presta molto naturalmente all'uso combinato dell'array proprio
perché consente di specificare un tipo particolare di iterazione di un certo
insieme di istruzioni, controllato da un indice che assume un insieme di
valori solitamente interi e contigui.
Per esempio, il codice Java per stampare i contenuti di un array di 100
interi potrebbe essere come segue:
for(int i=0; i<100; i=i+1) // per i crescente con passo 1 da 0 a 99
System.out.println(vettore[i]); // stampa la i-esima cella
Un esempio in pascal
Program Carica;
var vett:array[1..10] of integer;
var i: integer;
begin
For i:=1 to 10 do
vett[i]:=i;
for i:=1 to 10 do
writeln(vett[i]);
repeat until keypressed;
end.
1
1
2
2
3
i
4
3
4
vett
5
5
6
6
7
7
8
8
9
10
9
10