La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

VARIABILI E COSTANTI LOGICHE

Presentazioni simili


Presentazione sul tema: "VARIABILI E COSTANTI LOGICHE"— Transcript della presentazione:

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

26


Scaricare ppt "VARIABILI E COSTANTI LOGICHE"

Presentazioni simili


Annunci Google