25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

162 Array<br />

con cui l’introduzione di ciascun valore deve essere seguito dalla pressione del tasto return (che<br />

verrà semplicemente ignorata). Sempre con lo stesso criterio è possibile leggere gli elementi di<br />

una sezione di array, ad esempio con istruzioni del tipo:<br />

READ(*,*) c(::2,::2)<br />

3.11 Array come componenti di tipi di dati derivati<br />

Fra i componenti di un tipo di dati derivato è possibile avere uno o più array. Questa possibilità<br />

può spesso servire a ridurre drasticamente il numero delle componenti scalari del tipo user<br />

defined, come dimostra il seguente esempio:<br />

TYPE studente<br />

CHARACTER(LEN=15) :: nome, cognome<br />

INTEGER, DIMENSION(30) :: esami<br />

END TYPE studente<br />

In questo record, l’arrayesami potrebbe contenere i voti di30 esami sostenuti da unostudente.<br />

Chiaramente, è possibile dichiarare un intero gruppo di elementi di tipo studente, (ad esempio<br />

per classificare il curriculum di tutti quanti gli iscritti ad un corso):<br />

TYPE(studente), DIMENSION(50) :: iscritti<br />

In questo caso, il nome ed il cognome dell’i_mo studente fra gli iscritti possono essere<br />

facilmente estratti come:<br />

iscritti(i)%nome<br />

iscritti(i)%cognome<br />

così come il voto del terzo esame da questi sostenuto può essere letto accedendo al seguente<br />

componente:<br />

iscritti(i)%voto(3)<br />

Un vincolo che debbono rispettare gli array componenti di un tipo di dati derivato è il fatto<br />

che essi possono essere soltanto array di forma esplicita aventi limiti costanti, oppure array di<br />

forma rimandata (per la definizione di queste due forme di array si rimanda al capitolo 6).<br />

Un’importante restrizione che si ha quando si estrae un componente di un oggetto di tipo<br />

derivato avente array come componenti, è rappresentata dal fatto che al massimo uno degli<br />

array abbia rango maggiore di zero. In altre parole, tutti gli array componenti, ad eccezione (al<br />

massimo) di uno, devono presentarsi come variabili ”indiciate”. Ad esempio, è possibile scrivere:<br />

iscritti%voto(i) = 28<br />

per porre uguale a 28 il voto dell’i_mo esame di ciascun studente iscritto, ed è possibile<br />

scrivere:

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

Saved successfully!

Ooh no, something went wrong!