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.

3.6 Sezioni di array 135<br />

il cui scopo è risolvere un sistema di equazioni lineari del tipo triangolare inferiore del tipo:<br />

a11x1 = b1<br />

a21x1 + a22x2 = b2<br />

· · ·<br />

an1x1 + an2x2 + · · ·annxn = bn<br />

Evidentemente si è in presenza di un array di ampiezza nulla quando l’indice i assume il suo<br />

valore finale n.<br />

3.6 Sezioni di array<br />

Oltre che singoli elementi di array o interi array, nelle istruzioni di assegnazione e nelle operazioni<br />

aritmetiche è possibile utilizzare anche un sottoinsieme o sezione di array. Una sezione<br />

di array viene specificata sostituendo un indice di array con una tripletta di indici o con un<br />

indice vettoriale. <strong>Il</strong> formato generale di una tripletta di indici è il seguente:<br />

indice_1:indice_2:passo<br />

dove indice_1 è il primo indice da includere nella sezione di array, indice_2 è l’ultimo indice<br />

mentre passo è l’incremento dell’indice nell’insieme dei dati dell’array. Una tripletta di indici<br />

opera in modo molto simile a un ciclo DO implicito. La tripletta specifica così l’insieme ordinato<br />

di tutti gli indici che iniziano da indice_1 e finiscono con indice_2 con un incremento pari<br />

a passo.<br />

Si consideri, a titolo di esempio, il seguente array:<br />

INTEGER, DIMENSION(10) :: vett=(/1,2,3,4,5,6,7,8,9,10/)<br />

La sezione di array:<br />

vett(1:10:2)<br />

sarà un array contenente soltanto gli elementi vett(1), vett(3), vett(5), vett(7), vett(9).<br />

Le triplette di indici possono essere scritte nelle seguenti forme alternative:<br />

• Se manca indice_1, il primo indice della tripletta viene automaticamente posto uguale<br />

al primo indice dell’array.<br />

• Se manca indice_2, il secondo indice della tripletta viene automaticamente posto uguale<br />

all’ultimo indice dell’array.<br />

• Se manca passo, l’incremento della tripletta viene automaticamente posto uguale a uno.<br />

Ad esempio, dato un array a definito come:<br />

REAL, DIMENSION(10) :: a

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

Saved successfully!

Ooh no, something went wrong!