# Cosa sono
I vettori, comunemente detti "array", sono un tipo di dato strutturato, i quali posso avere 1 o 2[bidimensionali] dimensioni(in questo caso parleremo di matrici). Un vettore lo poete immaginare come un insieme di celle di memoria adiacenti, che si differenziano tramite un indice(un valore intero, positivo e crescente). NB:un vettore puo' contenere solo elementi di uno stesso tipo. Ad esempio solo reali, o solo interi.
# Dichiarazione
Per la dichiarazione di un vettore dobbiamo seguire una sintassi ben percisa che riporto qui sotto. Sotto la riservata var scriviamo:
Codice:
a: array[1..n] of integer;
# Gestione dei vettori
Siccome un vettore è un insieme di varibili, come faccio a scriverlo o a caricarlo? Per l'assegnazione basta fare:
Codice:
a[1]:=123;
OPPURE
Codice:
i:=1;
a[i]:=123;
Questi due esempi sono due modi diversi, ma il risultato è indentico. Quel numero tra quadre rappresenta l'indice che mi determina la posizione all'interno del vettore in cui devo mettere il numero. Stessa cosa quando scrivo:
Codice:
write(a[2]);
scriverà il contenuto di ciò che c'è dentro al secondo posto del vettore. NB: cosa succede se per sbaglio scrivo:
Codice:
write(a);
Semplice. Il compilatore darà un errore, perchè non gli è stato specificato quale 'posto' andare a prendere in considerazione. Ora. Se un nostro vettore ha 10 posti, e io voglio caricarlo tutto con i miei voti, come farò? Ciclo for!
Codice:
...
for i:=1 to 10 do
begin
write('Introduci il ',i,'^ voto: ');
readln(a[i]);
end;
sembrerà difficile così d'un botto, ma vedrete che diventerà familiarissimo, visto che lo userete tantissimo. Ogni volta vi chiederà di introdurre l'n-esimo voto, e andrà a caricarlo nell'n-esimo posto. Tutto torna! come scrivere quel vettore? Ciclo for! (sta diventando ripetitivo :P )
Codice:
...
for i:=1 to 10 do write(a[i]:3);
così mi scriverà il mio vettore di voti(quel tre lì è per formattare l'output, sostanzialmente scrive il valore a[i] in 3 spazi). Piccola info che c'entra poco: Se per caso avete un vettore di 100 spazi che dovete caricare con i pesi degli iscritti a una scuola di judo e non vi va di scrivere ogni volta il peso di ognuno 100 volte, può essere utile il randomize.
Codice:
...
randomize; {*è sempre necessario. Questa procedura serve per pulire il registro con i valori dell'ultima 'randomizzazione'.
Se non lo mettessimo userebbe sempre gli stessi valori.*}
...
for i:=1 to 100 do a[i]:=random(10)+ 60; //mi troverà a caso un numero tra 0 e 9 e lo sommerà a 60 ;)