Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
VARIABILI E COSTANTI LOGICHE
LOGICAL :: var LOGICAL, PARAMETER :: cost=… valide cost=.TRUE. cost=.FALSE. non valide cost=TRUE cost=.FALSE In generale var = espressione logica
2
Operatori relazionali
nuovo vecchio descrizione == EQ uguale /= NE diverso > GT maggiore >= GE maggiore o uguale < LT minore <= LE minore o uguale
3
Operatori relazionali
N.B. non confondere l’operatore relazionale di uguaglianza == con l’operatore di assegnazione = operazione risultato 6 < TRUE. 6 > FALSE. 6 == TRUE. ‘A’ < ‘B’ TRUE. i caratteri vengono valutati in ordine alfabetico
4
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)
5
Operatori relazionali
se l’operazione relazionale riguarda numeri interi e reali gli interi vengono trasformati in numeri reali operazione risultato 6 == TRUE. operazioni relazionali tra dati numerici e dati di tipo carattere non sono ammessi operazione risultato 6 <= ‘S’ errore
6
Operatori logici operazione descrizione
v1.AND.v TRUE se v1 e v2 sono TRUE v1.OR.v TRUE se v1 o v2 è TRUE v1.EQV.v TRUE se v1 e v2 sono concordi v1.NEQV.v TRUE se v1 e v2 sono discordi .NOT.v TRUE se v1 è FALSE FALSE se v1 è TRUE
7
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
8
Gerarchia delle operazioni
Esempi: v1=.TRUE. v2=.TRUE. v3=.FALSE. operazione risultato v1.AND.v2.OR.v TRUE. v1.AND.(v2.OR.v3) FALSE.
9
Istruzioni di diramazione
permettono di selezionare ed eseguire delle particolari parti del codice saltandone altre due tipi: istruzioni IF istruzioni SELECT
10
Istruzione IF IF (espressione logica) THEN istruzione 1 istruzione 2
…………… blocco 1 ENDIF 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
11
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
12
Istruzione IF IF (espressione logica) THEN istruzione 1 istruzione 2
…………… blocco 1 ELSE istruzione 3 istruzione 4 …………… blocco 2 END IF
13
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
14
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
15
Istruzione IF IF (espressione logica 1) THEN istruzione 1 blocco 1
…………… blocco 1 ELSE IF (espressione logica 2) THEN istruzione 3 istruzione 4 …………… blocco 2 ELSE istruzione 5 istruzione 6 …………… blocco 3 END IF
16
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
17
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
18
Istruzione IF con nome [nome] IF (espressione logica 1) THEN
…………… blocco 1 ELSE IF (espressione logica 2) THEN [nome] istruzione 3 istruzione 4 …………… blocco 2 ELSE [nome] istruzione 5 istruzione 6 …………… blocco 3 END IF [nome]
19
Istruzione IF con nome [nome1] IF (espressione logica 1) THEN …………...
…………… [nome2] IF (espressione logica 2) THEN …………… END IF [nome2] …………… END IF [nome1]
20
Istruzione IF logico IF (espressione logica) istruzione
Se l’espressione logica è .TRUE. viene eseguita la singola istruzione IF (a>0.d0) y=DSQRT(a)
21
Istruzione GO TO GO TO label preceduta dal label
si salta alla prima istruzione eseguibile dopo quella preceduta dal label
22
Istruzione SELECT CASE
SELECT CASE (espressione CASE) CASE (valori 1) istruzione …………… blocco 1 CASE (valori 2) istruzione …………… blocco 2 ……………….. CASE DEFAULT istruzione …………… blocco default END SELECT
23
Istruzione SELECT CASE
Se l’espressione CASE ha un valore compreso in valori 1 vengono eseguite le istruzione contenute nel blocco 1 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
24
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.
25
Istruzione SELECT CASE (esempio)
INTEGER :: valore SELECT CASE (valore) 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’ CASE (11:20) write (*,*) ‘ valore tra 11 e 20’ CASE DEFAULT write (*,*) ‘ valore negativo, zero oppure & superiore a 20’ END SELECT
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.