La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Istruzioni Decisionali Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.

Presentazioni simili


Presentazione sul tema: "Istruzioni Decisionali Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari."— Transcript della presentazione:

1 Istruzioni Decisionali Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari

2 2 Istruzione if Sintassi semplice n Si usa quando occorre eseguire un'azione secondo il verificarsi di una condizione esempio: write('inserisci un numero'); readln(i); if i < 100 then writeln('i minore e'' di 100'); n sintassi semplificata: if then denota una espressione booleana che può assumere i valori true o false ;

3 3 Istruzione if Sintassi completa if then [else ] il ramo [else ] è opzionale espr. logica istruzione1 istruzione2 falsovero NB: senza separatore ;

4 4 Uso di if-then-else program provaIf2(input, output); var i: integer; begin write('Inserisci un numero intero: '); readln(i); if i<100 then writeln('minore di 100') else writeln('maggiore o uguale a 100'); end.

5 5 Istruzioni composte n A volte è necessario effettuare una sequenza di istruzioni (ad esempio in base ad una condizione) esempio: if i < 100 then writeln('minore di 100'); writeln('istruzione successiva'); oppure if i < 100 then writeln('minore di 100') else writeln('maggiore o uguale a 100'); writeln('istruzione successiva'); writeln('istruzione successiva') viene eseguita indipendentemente dalla verità della condizione

6 6 Blocco di istruzioni program prova_if3 (input, output); var i: integer; mag_100: integer; min_100: integer; begin mag_100 := 0; min_100 := 0; write('Inserisci un numero intero: '); readln(i); if i<100 then begin writeln('minore di 100'); min_100 := 1; end else begin writeln(' maggiore o uguale a 100'); mag_100 := 1; end end.

7 7 Comporre con begin-end Le parole chiave begin e end si usano come parentesi per delimitare un blocco di una o più istruzioni in sequenza n sarebbe errato scrivere: if i<100 then writeln('minore di 100'); min_100 := 1; else writeln(' maggiore o uguale a 100'); mag_100 := 1; un blocco può comparire dovunque possa comparire un'istruzione semplice (indipendentemente dal particolare costrutto, es. if-then-else )

8 8 If annidati if-then-else è a sua volta un'istruzione: può quindi comparire all'interno di un'altra if n esempio: if i 0 then writeln('minore di 100 e maggiore di 0'); se vogliamo anche il ramo else : if i 0 then writeln('minore di 100 e maggiore di 0') else writeln('minore di 100 ma non maggiore di 0'); NB: else si riferisce all'ultimo if incontrato!

9 9 If annidati (2) se vogliamo anche il ramo else riferito al primo if : if i 0 then writeln('minore di 100 e maggiore di 0') end else writeln('maggiore o uguale a 100'); volendo l' else anche per l' if interno begin-else son superflui: if i 0 then writeln('minore di 100 e maggiore di 0') else writeln('minore di 100 ma non maggiore di 0') else writeln('maggiore o uguale a 100');

10 10 If annidati (3) anche il ramo else può fare annidare un altro if : if i 0 then writeln('minore di 100 e maggiore di 0') else writeln('minore di 100 ma non maggiore di 0') else if i = 100 then writeln('uguale a 0') else writeln('maggiore di 100'); si noti l'uso dell'operatore relazionale =

11 11 Variabili boolean È possibile dichiarare variabili che assumono uno dei due valori logici true o false : il tipo di queste variabili si denota con la keyword boolean es. di dichiarazione: var a,b,c: boolean; è consentito assegnare risultati di espressioni come: a := i < 100; b := x = y; dato che la if testa una espressione logica si possono usare simili espressioni: if a = true then … ovvero if a then...

12 12 Variabili boolean test di variabili logiche program provaIf4 (input, output); var i: integer; a: boolean; begin write('Immetti un numero intero: '); readln(i); a := i<100; if a=TRUE then writeln('minore di 100'); end.

13 13 Variabili boolean funzioni predefinite write(·) OK: stampa false o true read(·) NO: in molti compilatori odd(n) dispari su argomenti interi restituisce un valore boolean esempio: write('immettere un numero'); read(n); if odd(n) then write('numero dispari') else write('numero pari'); vale la relazione false < true

14 14 Espressioni logiche si possono definire utilizzando operatori relazionali: (maggiore) = (uguale) <> (diverso) >= (maggiore o uguale) <= (minore o uguale) espressioni semplici possono essere concatenate con gli operatori logici: not a (negazione: tramuta nel valore duale) a and b (congiunzione: vero sse entrambi veri) a or b (disgiunzione: vero sse almeno uno vero) non standard: a xor b (differenza: vero sse diversi)

15 15 Espressioni logiche si possono utilizzare le parentesi ed anche relazioni su variabili di altri tipi: ((nx1<>nx2) or (cx1>cx2)) and (presenti <524) n in istruzioni condizionali: if (x=y) and (alfa>beta) then writeln('x uguale a y e alfa maggiore di beta') else writeln('x diverso da y o alfa minore o uguale a beta'); n operandi misti: if i + 52 < x * a then writeln('espr. aritm. Nelle espr. logiche');

16 16 Variabili di tipo char n Tipo carattere alfanumerico esempio: var x, y, z : char; n Occupazione in memoria: 1 byte => 256 codici carattere distinti assegnamento: x := 'A'; n operatori relazionali: si possono usare dato che è implicito un ordinamento (dato dal codice) funzioni: ord() / chr(), pred() / succ() –'0' = chr(48) - 'Z' = chr(57) –'A' = chr(65) - 'Z' = chr(90) –'a' = chr(98) - 'Z' = chr(122)

17 17 Istruzione case Abbreviazione di if in cascata if then else if then else if then... else quando una stessa espressione ( integer o char ) viene confrontata con un insieme di espressioni costanti n case of : ; : ; : ; … [else ;] end;

18 18 Istruzione case esempio (1) program provaCase (input, output); var x: integer; begin write('Digita una cifra compresa fra 1 e 4: '); readln(x); case x of 1: writeln(' uno'); 2: writeln(' due'); 3: writeln(' tre'); 4: writeln(' quattro'); else writeln(' cifra fuori intervallo'); end end.

19 19 Istruzione case esempio (2) program provaCase2 (input, output); var x: char; begin writeln('Ins. una cifra: '); read(x); case x of '0','2','4','6','8': writeln(' pari'); '1','3','5','7','9': writeln(' dispari'); else writeln(' non hai inserito una cifra'); end end.


Scaricare ppt "Istruzioni Decisionali Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari."

Presentazioni simili


Annunci Google