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.

1.5 Istruzioni di assegnazione ed espressioni 45<br />

Si noti che la ultime due espressioni logiche sono .TRUE. in virtù della relazione d’ordine che<br />

esiste fra i caratteri di un qualunque sistema di codifica e della tabella ASCII in particolare.<br />

Nella gerarchia delle operazioni, gli operatori relazionali vengono valutati dopo tutti gli<br />

operatori aritmetici; ne consegue che le seguenti due espressioni sono perfettamente equivalenti<br />

(entrambe hanno valore .TRUE.):<br />

7+3 < 2+11<br />

(7+3) < (2+11)<br />

Se il confronto riguarda simultaneamente oggetti di tipo reale ed intero, il valore intero viene<br />

convertito in valore reale prima che il confronto abbia luogo. I confronti fra dati numerici e<br />

caratteri non sono ammessi e generano un errore in fase di compilazione. A titolo di esempio<br />

si osservino le seguenti espressioni:<br />

4 == 4. ! .TRUE. <strong>Il</strong> confronto avverrà tra 4.e 4.<br />

4 < "A" ! Espressione non valida (errore in fase di compilazione)<br />

Operatori combinatori<br />

Gli operatori combinatori sono particolari operatori che agiscono soltanto su operandi di tipo<br />

logico, fornendo un risultato anch’esso di tipo logico. Esistono quattro operatori binari (.AND.,<br />

.OR., .EQV. e .NEQV.) e uno unario (.NOT.). <strong>Il</strong> formato generale di un operatore combinatorio<br />

è il seguente:<br />

l_1 op l_2<br />

in cui l_1 e l_2 sono variabili, costanti o espressioni di tipo LOGICAL; op è, invece, uno dei<br />

seguenti operatori relazionali:<br />

Operazione Funzione<br />

l_1.AND.l_2 AND logico<br />

l_1.OR.l_2 OR logico<br />

l_1.EQV.l_2 Equivalenza logica<br />

l_1.NEQV.l_2 Non equivalenza logica<br />

.NOT.l_1 NOT logico<br />

Se la relazione fral_1 el_2 espressa dall’operatore è vera, l’operatore fornisce il valore.TRUE.,<br />

altrimenti il risultato è .FALSE.<br />

I risultati degli operatori combinatori per ogni combinazione possibile di l_1 e l_2 sono<br />

sintetizzati nelle seguenti tavole di verità:<br />

l_1 l_2 l_1.AND.l_2 l_1.OR.l_2 l_1.EQV.l_2 l_1.NEQV.l_2<br />

.FALSE. .FALSE. .FALSE. .FALSE. .TRUE. .FALSE.<br />

.FALSE. .TRUE. .FALSE. .TRUE. .FALSE. .TRUE.<br />

.TRUE. .FALSE. .FALSE. .TRUE. .FALSE. .TRUE.<br />

.TRUE. .TRUE. .TRUE. .TRUE. .TRUE. .FALSE.

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

Saved successfully!

Ooh no, something went wrong!