La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

CAPITOLO 7.

Presentazioni simili


Presentazione sul tema: "CAPITOLO 7."— Transcript della presentazione:

1 CAPITOLO 7

2 Operatori di espressione di controllo (booleani)
AND (operatore binario) OR (operatore binario) NOT (operatore unario) (IN) (operatore binario)

3 IF Ch IN [‘A’..’Z’,’1..9’] THEN …………………..
REGOLA SINTATTICA PER IN [ ] espressione IN Insieme di valori IF Ch IN [‘A’..’Z’,’1..9’] THEN …………………..

4 Gli operatori binari L’operatore unario AND Falso Vero OR Falso Vero
Falso Falso Falso Falso Falso Vero Vero Falso Vero Vero Vero Vero NOT Falso Vero Vero Falso L’operatore unario

5 ESEMPI WHILE (A <> 0) AND (B <> 0) DO corpo del ciclo
WHILE NOT ((A = 0) OR (B = 0)) DO

6 Gerarchia degli operatori
( ) NOT * / DIV MOD AND + - OR < <= = <> > >= IN

7 Espressioni booleane

8 Fino a quando chiarisco il concetto e voi capite, la lezione prosegue
Fino a quando non chiarisco il concetto o voi capite, la lezione prosegue UNTIL NOT chiarisco OR capite REPEAT La lezione prosegue Fino a quando chiarisco il concetto e voi capite, la lezione prosegue UNTIL chiarisco AND capite REPEAT La lezione prosegue

9 Realizzazione di cicli
preprocessing condizioni di ingresso istruzione di ciclo espressione di controllo corpo del ciclo condizioni di uscita postprocessing

10 Valutiamo alcuni esempi (1- 1)
WHILE (A <> 0) AND (B <> 0) DO corpo del ciclo (A <> 0) AND (B <> 0) = VERO (A <> 0) = VERO e (B <> 0) = VERO Il corpo del ciclo viene eseguito fino a quando A è diverso da zero e B è diverso da zero L’esecuzione del ciclo si interrompe per A uguale a zero L’esecuzione del ciclo si interrompe per B uguale a zero

11 Valutiamo alcuni esempi (2 - 1)
WHILE NOT ((A = 0) OR (B = 0)) DO corpo del ciclo NOT ((A = 0) OR (B = 0)) = VERO (A = 0) OR (B = 0) = FALSO (A = 0) = FALSO e (B = 0) = FALSO Il corpo del ciclo viene eseguito fino a quando A è diverso da zero e B è diverso da zero L’esecuzione del ciclo si interrompe per A uguale a zero L’esecuzione del ciclo si interrompe per B uguale a zero

12 Teorema di De Morgan (condizioni di uscita)
ESPRESSIONE Esp1 AND Esp2 Esp1 OR Esp2 COMPLEMENTO NOT Esp1 OR NOT Esp2 NOT Esp1 AND NOT Esp2

13 Valutiamo alcuni esempi (1 - 2)
ESPRESSIONE Esp1 AND Esp2 Esp1 OR Esp2 COMPLEMENTO NOT Esp1 OR NOT Esp2 NOT Esp1 AND NOT Esp2 WHILE (A <> 0) AND (B <> 0) DO corpo del ciclo condizione di ingresso Esp1 = (A <> 0) AND Esp2 = (B <> 0) (A <> 0) = VERO e (B <> 0) = VERO condizione di uscita NOT Esp1 = (A = 0) OR NOT Esp2 = (B = 0) (A = 0) = VERO o (B = 0) = VERO

14 Valutiamo alcuni esempi (2 - 2)
WHILE NOT ((A = 0) OR (B = 0)) DO corpo del ciclo condizione di ingresso NOT ( Esp1 = (A = 0) OR Esp2 = (B = 0) ) (NOT Esp1) = (A<>0) AND (NOT Esp2) = (B<>0) (A <> 0) = VERO e (B <> 0) = VERO condizione di uscita NOT(NOT(Esp1 = (A = 0)) OR NOT(NOT(Esp2 = (B = 0)) Esp1 = (A = 0) OR Esp2 = (B = 0) (A = 0) = VERO o (B = 0) = VERO ESPRESSIONE Esp1 AND Esp2 Esp1 OR Esp2 COMPLEMENTO NOT Esp1 OR NOT Esp2 NOT Esp1 AND NOT Esp2

15 Esempio di algoritmo (1)
DESCRIZIONE Verificare se tre valori numerici inseriti possono essere considerati come le lunghezze dei lati di un triangolo read (L1, L2, L3) WHILE NOT ( (L1 < L2 + L3) AND (L2 < L1 + L3) AND (L3 < L1 + L2) ) DO write (Valori non validi - Inserire di nuovo) END

16 Esempio di algoritmo (2)
DESCRIZIONE Verificare se tre valori numerici inseriti possono essere considerati come le lunghezze dei lati di un triangolo read (L1, L2, L3) WHILE ( (L1 >= L2 + L3) OR (L2 >= L1 + L3) OR (L3 >= L1 + L2) ) DO write (Valori non validi - Inserire di nuovo) END

17 Fino a quando chiarisco il concetto o voi capite
Proseguo la lezione: ESPRESSIONE Esp1 AND Esp2 Esp1 OR Esp2 COMPLEMENTO NOT Esp1 OR NOT Esp2 NOT Esp1 AND NOT Esp2 Fino a quando chiarisco il concetto o voi capite WHILE chiarisco OR capite La lezione prosegue; Fino a quando non chiarisco il concetto e voi non capite WHILE (NOT chiarisco AND NOT capite) La lezione prosegue;

18 Valutiamo gli esempi (3 - 1)
REPEAT corpo del ciclo UNTIL NOT ((A <> 0) AND (B <> 0)) NOT((A <> 0) AND (B <> 0)) = FALSO (A <> 0) AND (B <> 0) = VERO (A <> 0) = VERO e (B <> 0) = VERO Il corpo del ciclo viene eseguito fino a quando A è diverso da zero e B è diverso da zero L’esecuzione del ciclo si interrompe per A uguale a zero L’esecuzione del ciclo si interrompe per B uguale a zero

19 Valutiamo gli esempi (4 - 1)
REPEAT corpo del ciclo UNTIL (A = 0) OR (B = 0) (A = 0) OR (B = 0) = FALSO (A = 0) = FALSO e (B = 0) = FALSO Il corpo del ciclo viene eseguito fino a quando A è diverso da zero e B è diverso da zero L’esecuzione del ciclo si interrompe per A uguale a zero L’esecuzione del ciclo si interrompe per B uguale a zero

20 Esempio di algoritmo (3)
DESCRIZIONE Verificare se tre valori numerici inseriti possono essere considerati come le lunghezze dei lati di un triangolo L1  L2  L3  0 REPEAT write (Valori non validi - Inserire di nuovo) read (L1, L2, L3) UNTIL (L1 < L2 + L3) AND (L2 < L1 + L3) AND (L3 < L1 + L2)

21 Esempio di algoritmo (4)
DESCRIZIONE Verificare se tre valori numerici inseriti possono essere considerati come le lunghezze dei lati di un triangolo L1  L2  L3  0 REPEAT write (Valori non validi - Inserire di nuovo) read (L1, L2, L3) UNTIL NOT ( (L1 >= L2 + L3) OR (L2 >= L1 + L3) OR (L3 >= L1 + L2) )

22 ESEMPI REPEAT corpo del ciclo
UNTIL NOT ((A <> 0) AND (B <> 0)) UNTIL (A = 0) OR (B = 0)

23 Array elementari

24 Tipi di variabile in Pascal
Tipi predefiniti integer real char Tipi utente (esempi) giorno (subrange) indice (subrange) ….

25 Tipo SUBRANGE (sotto-intervallo)
intervallo di valori di tipo predefinito (integer, real, ecc.) valore minimo valore massimo minimo < massimo SINTASSI tipo subrange costante ..

26 Esempi di Subrange TYPE GiornoType = 1 . . 31; IndiceType = 1 . . 100;
VAR Giorno: GiornoType; Indice: IndiceType;

27 variabili che possono assumere un solo valore ad un dato istante
Variabili SCALARI variabili che possono assumere un solo valore ad un dato istante intero reale carattere giorno indice …….. integer real char GiornoType IndiceType ……..

28 Variabili STRUTTURATE
variabili che contengono variabili componenti Meccanismo di accesso alle variabili componenti è il modo in cui ciascun componente di una variabile strutturata può essere manipolato come se fosse una variabile scalare

29 una variabile componente di un ARRAY
variabile strutturata che contiene variabili componenti tutte dello stesso tipo (omogenee) il cui meccanismo di accesso consiste di una o più espressioni di SUBRANGE ELEMENTO una variabile componente di un ARRAY

30 SINTASSI Array mono-dimensionale array mono- dimensionale ARRAY [
subrange ] OF type ArrayDiReali = ARRAY [1..10] OF real; Accesso ad un elemento accesso ad elemento identificatore [ espressione ]

31 Esempio 1 TYPE TipoIndice = 1 . . 5;
ArrayDiReali = ARRAY [TipoIndice] OF real; VAR Reali: ArrayDiReali; Indice: TipoIndice; BEGIN Indice := 3; Reali[1] := 2.5; Reali[2] := 3.14; Reali[Indice] := 6.0; Reali[4] := Reali[1]; Reali[5] := Reali[Indice]; END.

32 Risultato dell’Esempio 1
[1] [2] [3] [4] [5] Reali

33 Esempio 2 TYPE IndiceType = 1 . . 5;
IntArray = ARRAY [IndiceType] OF integer; VAR Interi: IntArray; Indice: IndiceType; BEGIN writeln (‘Inserisci 5 interi’); FOR Indice := 1 TO 5 DO read (Interi[Indice] : 6); readln; FOR Indice := 5 DOWNTO 1 DO write (Interi[Indice] : 6); writeln (‘I numeri in ordine inverso sono’); writeln; END.

34 Risultato dell’Esempio 2
Se i valori inseriti sono: il contenuto dell’array è: [1] [2] [3] [4] [5] Interi e la stampa finale è:

35 Esempio 3 Assegnato un Array contenente un serie di valori numerici si vuole che tali valori siano riscritti nell’Array in ordine inverso Se il contenuto iniziale dell’array è il contenuto finale deve essere

36 Esempio 3 PROGRAM Arr(input,output); TYPE IndiceType = 1..5;
IntArray = ARRAY [IndiceType] OF integer; VAR Interi: IntArray; Indice: IndiceType; PROCEDURE Inverti (VAR Inter: IntArray); Ind: Integer; Invert, Temp: integer; BEGIN Invert := 6; FOR Ind := 1 TO Invert DIV 2 DO Temp:=Inter[Invert - Ind]; Inter[Invert - Ind]:= Inter[Ind]; Inter[Ind]:=Temp; END END; BEGIN Interi [1]:=50; Interi [2]:=40; Interi [3]:=30; Interi [4]:=20; Interi [5]:=10; writeln ('I numeri in ordine diretto sono'); FOR Indice := 1 TO 5 DO write (Interi[Indice]: 5); writeln; Inverti(Interi); writeln ('I numeri in ordine inverso sono'); readln END.

37 Risultato dell’Esempio 3
I valori inseriti sono: il contenuto iniziale dell’array è: [1] [2] [3] [4] [5] Interi dopo l’esecuzione della procedura diventa: [1] [2] [3] [4] [5] Interi e la stampa finale è:

38 Nota Le variabili strutturate possono essere parametri di procedure così come le variabili predefinite. Ciò significa che possono essere passate per valore o per variabile.

39 ESERCIZIO Dato un Array di N interi eliminare da esso i numeri dispari sostituendoli con il primo pari che li segue. Si ottiene così una Array di K interi con K  N Es. A[ ] -> A[ ]


Scaricare ppt "CAPITOLO 7."

Presentazioni simili


Annunci Google