Array in Pascal
Posted by k8 - Articolo di Fabriz. June 9, 2008, 11:22 am
IProgrammatori.it

# 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 ;)

Condividi
Stats
Voti 0
Voto medio 0
Visite 2723
Visite uniche 2475
Num.Download 0
DownloadNon disponibile.
Spazio Visitatori
Prima di inviare il tuo commento assicurati che:
  • sia in tema con l'articolo e contribuisca alla discussione in corso
  • non abbia contenuti offensivi nei confronti di chicchessia
  • non abbia contenuti che violini le leggi italiane
  • non contenga indirizzi e-mail








Vota Pessimo 1 / 5 Migliorabile 2 / 5 Buono 3 / 5 Interessante 4 / 5 Speciale  5 / 5
Visualizza Commenti. (1)
Commenti
Michele [10 February 2010 - 02:02:19] ciao, mi potresti suggerire come, dopo aver riempito un array monodimensionali a 10 caselle, con 10 numeri casuali compresi tra 50 e -50, faccio saltare fuori il numero più grande? grazie, ciao
Tag Cloudhowto array pascal × guida array pascal ×

Advertisement

Iprogrammatori.it
| I contenuti di questo sito sono rilasciati sotto Licenza Creative Commons |