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.

1.8 Tipi di dati derivati 63<br />

1.8 Tipi di dati derivati<br />

Una caratteristica molto utile del <strong>Fortran</strong> <strong>90</strong> è la possibilità di definire tipi di dati derivati<br />

simili alle strutture del linguaggio C ed ai record del Pascal. Un tipo di dati derivato è un<br />

oggetto contenente una combinazione di dati di natura diversa presenti in numero qualsiasi.<br />

Ogni componente può essere di un tipo di dati intrinseco o può essere, a sua volta, un elemento<br />

di un altro tipo di dati derivato.<br />

Un tipo di dati derivato è definito da una sequenza di istruzioni di dichiarazione preceduta da<br />

una istruzioneTYPE e terminata da una istruzioneEND TYPE. Tra queste istruzioni si collocano le<br />

definizioni dei componenti del tipo di dati derivato. L’espressione generale di questa operazione<br />

di ”assemblaggio” è la seguente:<br />

TYPE nome_tipo<br />

componente_1<br />

...<br />

componente_n<br />

END TYPE [nome_tipo]<br />

mentre la definizione di una variabile di questo tipo di dati avviene con una istruzione del tipo:<br />

TYPE(nome_tipo) var_1 [, var_2, ...]<br />

Ciascun componente di un tipo di dati derivato è detto struttura e può essere ”assegnato”<br />

ed usato indipendente dagli altri come se fosse una comune variabile. Ogni componente è reso<br />

accessibile attraverso il selettore di componente che consiste nel nome della variabile seguito<br />

dal simbolo di percentuale (%) seguito, a sua volta, dal nome del componente:<br />

var%componente<br />

sicché l’assegnazione di un valore ad un oggetto definito dall’utente può avvenire in maniera<br />

selettiva componente×componente:<br />

var%componente_1 = valore_1<br />

var%componente_2 = valore_2<br />

...<br />

In questo modo, naturalmente, l’ordine in cui vengono specificati i componenti può essere del<br />

tutto casuale ed inoltre non è necessario specificare tutti i componenti dell’oggetto, con l’ovvio<br />

risultato che il valore di un componente non assegnato rimane inalterato. L’assegnazione,<br />

però, può avvenire anche in forma ”globale” secondo il meccanismo noto come costruttore di<br />

struttura che consiste nello specificare tra parentesi tonde la lista dei valori di tutti i componenti<br />

(rigorosamente nell’ordine in cui essi sono elencati nella definizione del tipo) subito dopo il nome<br />

del tipo:<br />

nome_tipo(valore_1,valore_2,...)<br />

L’esempio che segue mostra come sia semplice definire un tipo di dati e dichiarare un oggetto<br />

di un tale tipo:

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

Saved successfully!

Ooh no, something went wrong!