25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

124 Array<br />

• Le modalità di accesso alle informazioni contenute in un array sono molteplici potendo,<br />

in particolare, lavorare con interi array, sottoinsiemi di essi o, più semplicemente,<br />

estraendone soltanto degli elementi.<br />

• Rendono un programma più semplice da comprendere a da mantenere.<br />

• Riducono le dimensioni di un programma e, con esso, la probabilità di commettere errori.<br />

• Permettendo di operare su molti oggetti simultaneamente, agevolano il compito di ”parallelizzare”<br />

un programma.<br />

• Forniscono notevoli opportunità di ”ottimizzazione” per i produttori di compilatori.<br />

3.2 Dichiarazione di un array. Terminologia<br />

Un array è un gruppo di variabili, tutte dello stesso tipo, che è identificato da un nome unico.<br />

Ogni valore all’interno di un array si chiama elemento dell’array; esso viene identificato dal<br />

nome dell’array e da un indice che punta ad una particolare posizione all’interno dell’array.<br />

La sintassi generale di una istruzione di dichiarazione di array (che è semplicemente un caso<br />

speciale della comune istruzione di dichiarazione di tipo) è la seguente:<br />

tipo, DIMENSION(estensioni) [, attributo, ...] :: lista_di_array<br />

in cui tipo è il il tipo di appartenenza di tutti i componenti della lista_di_array, la parola<br />

chiave DIMENSION è un attributo che serve a specificare la dimensione dell’array che si sta<br />

dichiarando, mentre estensioni fornisce il range in cui spaziano gli indici dell’array.<br />

Si noti che per tipo è da intendersi indifferentemente un tipo di dati predefinito o uno<br />

definito dall’utente (purché la definizione di quest’ultimo sia accessibile all’unità di programma<br />

sede della dichiarazione di array). L’attributo DIMENSION specifica la natura dell’array che si<br />

sta dichiarando ed introduce le dimensioni dello stesso nella apposita lista delle estensioni .<br />

Quest’ultima può fornire le dimensioni dell’array o in forma di costanti intere o mediante<br />

espressioni intere che usino parametri formali o costanti oppure ancora sottoforma di due<br />

punti (”:”) nel caso di array allocabili o di array fittizi di forma presunta<br />

Gli attributi compatibili con la dichiarazione di array sono: PARAMETER, PUBLIC, PRIVATE,<br />

POINTER, TARGET, ALLOCATABLE, DIMENSION, INTENT, OPTIONAL, SAVE, EXTERNAL, INTRINSIC.<br />

A titolo di esempio, si considerino le due seguenti istruzioni di dichiarazione:<br />

REAL, DIMENSION(-2:2) :: a, somma<br />

INTEGER, DIMENSION(0:100) :: dati_input<br />

Gli elementi degli array a e somma sono di tipo REAL ed hanno una sola dimensione all’interno<br />

della quale un indice varia nell’intervallo-2÷2. Gli elementi dell’arraydati_input sono, invece,<br />

di tipo INTEGER ed il rispettivo indice è definito nell’intervallo 0÷100.<br />

Analogamente, un array di 50 variabili di tipo stringa (ciascuna composta da 20 caratteri)<br />

può essere dichiarata al modo seguente:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!