[Guida] - I vettori

Topic sul pascal.

[Guida] - I vettori

Postby Fabriz on Sun Dec 10, 2006 2:45 pm

# 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 eseguire una sintassi ben percisa che riporto qui sotto.

Sotto la riservata var scriviamo:
Code: Select all
a: array[1..n] of integer;


1. a è il nostro vettore;
2. 1..n è la dimensione. Ciò sta a significare che questo array avrà n posti numerati da 1 a n(gli indici di cui prima parlavo);
3. of integer o real o qualsiasi altro tipo assegna il tipo di varibili che il vettore può contenere.



# Gestione dei vettori

Siccome un vettore è un insieme di varibili, come faccio a scriverlo o a caricarlo?

Per l'assegnazione basta fare:
Code: Select all
a[1]:=123;


OPPURE

Code: Select all
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.
Code: Select all
write(a[2]);

scriverà il contenuto di ciò che c'è dentro al secondo posto del vettore.

NB: cosa succede se per sbaglio scrivo:
Code: Select all
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!

Code: Select all
...
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 ASD )

Code: Select all
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.

Code: Select all
...
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 ;)


Risultato? avrete il vostro vettore carico di valori tra 60 e 69, pronto per essere utilizzato.
Bit wrote:Ma sisi cosa? che ca**o c'è da ridere? bha


Dead on my sweet Piano.


IO NON SONO AMICO DI GOOGLE
User avatar
Fabriz
Diagramma a Blocchi
 
Posts: 209
Joined: Sun Jul 02, 2006 4:15 pm

[Guida] - I vettori

Sponsor

Sponsor


Postby k8 on Sun Dec 10, 2006 3:31 pm

Bravo s3raph ;)
Molto chiara, come introduzione ai vettori ;)
Big-Bug cerca collaboratori.
Scrivete senza abbreviazioni e senza k, grazie.
k8
Admin
 
Posts: 2127
Joined: Tue Jun 06, 2006 4:00 pm

Postby necrosis on Sun Dec 10, 2006 4:56 pm

GOOD
necrosis
Ciclo
 
Posts: 510
Joined: Fri Jul 14, 2006 9:05 am

Postby DaD on Mon Dec 11, 2006 1:22 pm

Io l'avrei spiegato una monezza XD davvero complimeti :]
User avatar
DaD
Php Guru
 
Posts: 322
Joined: Sat Nov 25, 2006 5:09 pm


Return to Pascal

Who is online

Users browsing this forum: No registered users and 1 guest

cron