La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Operatori di espressione di controllo (booleani) AND (operatore binario) OR (operatore binario) NOT (operatore unario) (IN) (operatore binario)"— Transcript della presentazione:

1

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

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

4 Gli operatori binari ANDFalsoVero ORFalsoVero FalsoFalsoFalso FalsoFalso Vero VeroFalsoVero Vero Vero Vero NOT FalsoVero VeroFalso Loperatore unario

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

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

7 Espressioni booleane

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

9 cicli 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 Lesecuzione del ciclo si interrompe per A uguale a zero Lesecuzione 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 Lesecuzione del ciclo si interrompe per A uguale a zero Lesecuzione del ciclo si interrompe per B uguale a zero

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

13 Valutiamo alcuni esempi (1 - 2) 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 ESPRESSIONE Esp1 AND Esp2 Esp1 OR Esp2 COMPLEMENTO NOT Esp1 OR NOT Esp2 NOT Esp1 AND NOT Esp2

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) read (L1, L2, L3) 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) read (L1, L2, L3) END

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

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 Lesecuzione del ciclo si interrompe per A uguale a zero Lesecuzione 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 Lesecuzione del ciclo si interrompe per A uguale a zero Lesecuzione 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 3.REPEAT corpo del ciclo UNTIL NOT ((A <> 0) AND (B <> 0)) 4.REPEAT corpo del ciclo UNTIL (A = 0) OR (B = 0)

23 Array elementari

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

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

26 Esempi di Subrange TYPE GiornoType = ; IndiceType = ; VAR Giorno: GiornoType; Indice: IndiceType;

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

28 STRUTTURATE 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 ARRAY variabile strutturata che contiene variabili componenti tutte dello stesso tipo (omogenee) SUBRANGE 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 ARRAYsubrange[ array mono- dimensionale ]OFtype Accesso ad un elemento identificatoreespressione[ accesso ad elemento ] ArrayDiReali = ARRAY [1..10] OF real;

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 dellEsempio [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 dellEsempio [1] [2] [3] [4] [5] Interi Se i valori inseriti sono: il contenuto dellarray è: e la stampa finale è:

35 Esempio 3 Assegnato un Array contenente un serie di valori numerici si vuole che tali valori siano riscritti nellArray in ordine inverso Se il contenuto iniziale dellarray è 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); VAR Ind: Integer; Invert, Temp: integer; BEGIN Invert := 6; FOR Ind := 1 TO Invert DIV 2 DO BEGIN 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'); FOR Indice := 1 TO 5 DO write (Interi[Indice]: 5); writeln; readln END.

37 Risultato dellEsempio [1] [2] [3] [4] [5] Interi I valori inseriti sono: il contenuto iniziale dellarray è: e la stampa finale è: [1] [2] [3] [4] [5] Interi dopo lesecuzione della procedura diventa:

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 "Operatori di espressione di controllo (booleani) AND (operatore binario) OR (operatore binario) NOT (operatore unario) (IN) (operatore binario)"

Presentazioni simili


Annunci Google