variabili e costanti logiche logical :: var logical, parameter :: cost=… valide cost=.true....
TRANSCRIPT
![Page 1: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/1.jpg)
VARIABILI E COSTANTI LOGICHE
LOGICAL :: varLOGICAL, PARAMETER :: cost=…
valide
cost=.TRUE.
cost=.FALSE.
non valide
cost=TRUE
cost=.FALSE
In generale
var = espressione logica
![Page 2: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/2.jpg)
Operatori relazionali
nuovo vecchio descrizione
== .EQ. uguale
/= .NE. diverso
> .GT. maggiore
>= .GE. maggiore o uguale
< .LT. minore
<= .LE. minore o uguale
![Page 3: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/3.jpg)
Operatori relazionali
N.B. non confondere
l’operatore relazionale di uguaglianza ==
con l’operatore di assegnazione =
operazione risultato 6 < 7 .TRUE.
6 > 7 .FALSE.
6 == 7 .TRUE.
‘A’ < ‘B’ .TRUE.
i caratteri vengono valutati in ordine alfabetico
![Page 4: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/4.jpg)
Operatori relazionali
gli operatori relazionali sono valutati dopo tutti gli
operatori matematici
le seguenti espressioni sono equivalenti
7+3 < 10+15
(7+3) < (10+15)
![Page 5: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/5.jpg)
Operatori relazionali
se l’operazione relazionale riguarda numeri interi
e reali gli interi vengono trasformati in numeri reali
operazione risultato 6 == 6. .TRUE.
operazioni relazionali tra dati numerici e dati di
tipo carattere non sono ammessi
operazione risultato 6 <= ‘S’ errore
![Page 6: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/6.jpg)
Operatori logici
operazione descrizione
v1.AND.v2 TRUE se v1 e v2 sono TRUE
v1.OR.v2 TRUE se v1 o v2 è TRUE
v1.EQV.v2 TRUE se v1 e v2 sono concordi
v1.NEQV.v2 TRUE se v1 e v2 sono discordi
.NOT.v1 TRUE se v1 è FALSE
FALSE se v1 è TRUE
![Page 7: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/7.jpg)
Gerarchia delle operazioni
1) gli operatori aritmetici (con la loro gerarchia)
2) gli operatori relazionali da sinistra verso destra
3) gli operatori .NOT. da sinistra verso destra
4) gli operatori .AND. da sinistra verso destra
5) gli operatori .OR. da sinistra verso destra
6) gli operatori .EQV. e .NEQV. da sinistra verso destra
![Page 8: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/8.jpg)
Gerarchia delle operazioni
Esempi:
v1=.TRUE. v2=.TRUE. v3=.FALSE.
operazione risultato
v1.AND.v2.OR.v3 .TRUE.
v1.AND.(v2.OR.v3) .FALSE.
![Page 9: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/9.jpg)
Istruzioni di diramazione
permettono di selezionare ed eseguire delle
particolari parti del codice saltandone altre
due tipi:
istruzioni IF
istruzioni SELECT
![Page 10: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/10.jpg)
Istruzione IF
IF (espressione logica) THEN
istruzione 1
istruzione 2
……………
ENDIF
blocco 1
Se l’espressione logica è .TRUE. vengono
eseguite le istruzione contenute nel blocco 1
Se l’espressione logica è .FALSE. si salta alla
prima istruzione eseguibile dopo ENDIF
![Page 11: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/11.jpg)
Istruzione IF (esempio)
READ(*,*) a
y=1.D0
IF (a.GE.0.D0) THEN
y=DSQRT(a)
ENDIF WRITE(*,*) ‘ valore di y = ‘,y
se a<0 si ha y=1
altrimenti è uguale alla radice quadrata di a
![Page 12: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/12.jpg)
Istruzione IF
IF (espressione logica) THEN
istruzione 1
istruzione 2
……………
ELSE
blocco 1
istruzione 3
istruzione 4
……………
blocco 2
END IF
![Page 13: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/13.jpg)
Istruzione IF
Se l’espressione logica è .TRUE. vengono
eseguite le istruzione contenute nel blocco 1
e si salta alla prima istruzione eseguibile dopo
ENDIF
Se l’espressione logica è .FALSE. vengono
eseguite le istruzione contenute nel blocco 2
e si va alla prima istruzione eseguibile dopo
ENDIF
![Page 14: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/14.jpg)
Istruzione IF (esempio)READ(*,*) a
y=1.D0
IF (a.GE.0.D0) THEN
y=DSQRT(a)
ELSE
y=0.D0
ENDIF
WRITE(*,*) ‘ valore di y = ‘,y
se a<0 si ha y=0
altrimenti è uguale alla radice quadrata di a
![Page 15: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/15.jpg)
Istruzione IFIF (espressione logica 1) THEN
istruzione 1istruzione 2……………
ELSE IF (espressione logica 2) THEN
blocco 1
istruzione 3istruzione 4……………
blocco 2
END IF
ELSE
istruzione 5istruzione 6……………
blocco 3
![Page 16: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/16.jpg)
Istruzione IF
Se l’espressione logica1 è .TRUE. vengono eseguite
le istruzione contenute nel blocco 1 e si salta alla
prima istruzione eseguibile dopo ENDIF
Se l’espressione logica2 è .TRUE. vengono eseguite
le istruzione contenute nel blocco 2 e si salta alla
prima istruzione eseguibile dopo ENDIF
Se le espressioni sono entrambe .FALSE. vengono
eseguite le istruzione contenute nel blocco 3 e si va
alla prima istruzione eseguibile dopo ENDIF
![Page 17: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/17.jpg)
Istruzione IF (esempio)
READ(*,*) a
IF (a.GE.1.D0) THEN
y=1.D0DSQRT(a)
ELSE IF (a.GE.0.D0) THEN
y=DSQRT(a)
ELSE
y=0.D0
END IF
se a<0 si ha y=0
se 0=<a<1 y è uguale alla radice quadrata di a
Se a>=1 si ha y=1
![Page 18: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/18.jpg)
Istruzione IF con nomeIF (espressione logica 1) THEN
istruzione 1istruzione 2……………
ELSE IF (espressione logica 2) THEN
blocco 1
istruzione 3istruzione 4……………
blocco 2
END IF
ELSE
istruzione 5istruzione 6……………
blocco 3
[nome]
[nome]
[nome]
[nome]
![Page 19: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/19.jpg)
Istruzione IF con nomeIF (espressione logica 1) THEN
…………...…………………………
IF (espressione logica 2) THEN
………………………………………
END IF
END IF ………………………………………
[nome1]
[nome2]
[nome2]
[nome1]
![Page 20: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/20.jpg)
Istruzione IF logico
IF (espressione logica) istruzione
Se l’espressione logica è .TRUE. viene
eseguita la singola istruzione
IF (a>0.d0) y=DSQRT(a)
![Page 21: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/21.jpg)
Istruzione GO TO
GO TO label
si salta alla prima istruzione eseguibile dopo quella
preceduta dal label
![Page 22: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/22.jpg)
Istruzione SELECT CASE
CASE (valori 1)
istruzione ……………
CASE (valori 2)
blocco 1
istruzione ……………
blocco 2
END SELECT
CASE DEFAULT
istruzione ……………
blocco default
SELECT CASE (espressione CASE)
……………….. ………………..
![Page 23: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/23.jpg)
Se l’espressione CASE ha un valore compreso in
valori 1 vengono eseguite le istruzione contenute nel
blocco 1
Istruzione SELECT CASE
Se l’espressione CASE ha un valore compreso in
valori 2 vengono eseguite le istruzione contenute nel
blocco 2
Se l’espressione CASE ha un valore che non è
compreso in nessuno valori descritti dai vari CASE,
vengono eseguite le istruzione contenute nel blocco
default
![Page 24: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/24.jpg)
Istruzione SELECT CASE
Il CASE DEFAULT è facoltativo.
Se non è presente e l’espressione CASE ha un
valore che non è compreso in nessuno valori descritti
dai vari CASE non viene eseguita nessuna istruzione.
![Page 25: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/25.jpg)
Istruzione SELECT CASE (esempio)
CASE (1,3,5,7,9,)
write(*,*) ‘ valore dispari minore di 10’
CASE (2,4,6,8,10)
write (*,*) ‘ valore pari minore uguale a 10’
END SELECT
CASE DEFAULT
SELECT CASE (valore)
CASE (11:20)
write (*,*) ‘ valore tra 11 e 20’
write (*,*) ‘ valore negativo, zero oppure & superiore a 20’
INTEGER :: valore
![Page 26: VARIABILI E COSTANTI LOGICHE LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var](https://reader035.vdocumenti.com/reader035/viewer/2022062418/5542eb66497959361e8d1d24/html5/thumbnails/26.jpg)