Istruzioni Decisionali

Slides:



Advertisements
Presentazioni simili
LINGUAGGIO DI PROGRAMMAZIONE C
Advertisements

Nel sistema operativo MS-DOS il comando cd.. (change directory), serve a cambiare cartella. Il comando rd (remove directory), serve a rimuovere una cartella.
Esercizio Usate il ciclo repeat until (controllo post condizionale) per simulare il prodotto N x M con M somme di N. Esempio: 5 x 3 equivale a fare 5 +5.
if (condizione.) { blocco_istruzioni } else
Informatica 22/03/2012.
Strutture di controllo
Linguaggio C++ Selezione.
Selezione A. Ferrari.
LS Tron Classe 4TC – as 2006/07 LORGANIZZAZIONE DEI PROGRAMMI UD. 8 p. 282.
PROGRAMMARE IN PASCAL (le basi)
Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.
EP 10/11 - PBLezione 2-21 Elementi di Programmazione Tipi di Dati Conversioni Istruzioni di controllo del flusso.
EP 11/12 - PBLezione 31 Elementi di Programmazione Tipi di Dati e Conversioni Istruzioni di controllo del flusso.
16/11/2004Laboratorio di Programmazione - Luca Tesei1 Espressioni booleane, confronti.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Algoritmi e Programmazione
Programmazione Ingegneria TLC
Fondamenti di Informatica
Dall’Algoritmo al Programma
numero rette n numero parti piano f(n) f(n -1)n -1 f(n -1) + nn numero parti piano f(n) numero rette n.
Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Ricorsione e Debug.
Primo esercizio Scrivere un programma che legge da input
Il linguaggio Fortran 90: 2. Istruzioni di Controllo
Il linguaggio Fortran 90: 5. Formato di I/O e Files
Introduzione alla programmazione lll
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Esercitazioni sui File Nicola Fanizzi - DIB Corso (B) di Programmazione CdL in Informatica – I livello A.A. 2003/2004.
Organizzazione del corso
Algoritmi su Tipi Semplici
Sottoprogrammi e Unità di Compilazione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
Puntatori - Cenni Nicola Fanizzi Corso di Programmazione C.d.L. in Informatica DIB - Università degli Studi di Bari.
Istruzioni Iterative Nicola Fanizzi
Array Ricerca Ordinamento Fusione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
10) switch, else if e ifdef. Lab.Calc.I AA2002/03 - cap.102 espressione condizione.
Problema Ci sono 5 signore nel parco. Ognuna di loro ha 1 figlio. Ogni bambino ha 10 figurine di calciatori, per un totale quindi di 50 figurine. Questi.
CAPITOLO 7.
CAPITOLO 5.
CAPITOLO 6.
Programmazione in Java Claudia Raibulet
4 Tipi di dati & variabili
ELEMENTI DI PROGRAMMAZIONE
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
Si vuole che lesecutore coniughi non solo il presente indicativo ma anche limperfetto e il passato remoto Acquisisci tempo presente imperfetto passato.
Lordinamento di tre numeri interi. acquisisci a,b,c (a > b) AND (a > c)(b > a) AND (b > c) (c > a) AND (c > b) Scrivi c,b,aScrivi b,c,aScrivi c,a,bScrivi.
matematico greco del III° secolo a.c.,
Diagramma di flusso del problema del Calcolo del Bollo di Circolazione
Problema: come dividere due numeri
ND-partizione (A) n   A  somma  0 M  1/2 (  a i ) for i  1 to n do S[i]  choice ({true, false}) if S[i] then somma  somma + a i if somma > M then.
Anno accademico Le istruzioni di controllo in C.
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Programmazione imperativa
Linguaggi algoritmici
JavaScript Generalità Cos'è JavaScript?
ESERCIZIO Assegnata una lista L di caratteri ed un carattere k, scrivere una procedura che cancelli tutte le occorrenze di k in L. PROGRAM Liste(output,input);
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
Introduzione a Javascript
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
Lez. 9 (13/14)Elementi di Programmazione1 Lezione 9 Valutazione di espressioni File di testo sequenziali.
PROVA INTERCORSO MOD.B a.a RICORSIONE ESERCIZI A1.1-A1.6.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Ciclo for nei linguaggi di programmazione. Nei linguaggi di programmazione, il ciclo for è una struttura di controllo iterativa che determina l'esecuzione.
Samuele Marino. Cos’è il Repeat Until?  In Pascal, il Repeat Until è un ciclo che consiste nel ripetere (Repeat) una o più istruzioni fino a quando (Until)
Transcript della presentazione:

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

Istruzione if Sintassi semplice 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'); sintassi semplificata: if <espressionelogica> then <istruzione> <espressionelogica> denota una espressione booleana che può assumere i valori true o false;

Istruzione if Sintassi completa NB: senza separatore ; if <espressionelogica> then <istruzione1> [else <istruzione2>] il ramo [else <istruzione2>] è opzionale vero espr. logica falso istruzione1 istruzione2

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.

Istruzioni composte 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

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 writeln('minore di 100'); min_100 := 1; end else writeln(' maggiore o uguale a 100'); mag_100 := 1; end.

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 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)

If annidati if-then-else è a sua volta un'istruzione: può quindi comparire all'interno di un'altra if esempio: if i < 100 then if i > 0 then writeln('minore di 100 e maggiore di 0'); se vogliamo anche il ramo else: if i < 100 then 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!

If annidati (2) se vogliamo anche il ramo else riferito al primo if: if i < 100 then begin 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 < 100 then if i > 0 then writeln('minore di 100 e maggiore di 0') else writeln('minore di 100 ma non maggiore di 0')

If annidati (3) anche il ramo else può fare annidare un altro if: if i < 100 then 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 =

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 ...

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.

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

Espressioni logiche si possono definire utilizzando operatori relazionali: < (minore) > (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)

Espressioni logiche si possono utilizzare le parentesi ed anche relazioni su variabili di altri tipi: ((nx1<>nx2) or (cx1>cx2)) and (presenti <524) 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'); operandi misti: if i + 52 < x * a then writeln('espr. aritm. Nelle espr. logiche');

Variabili di tipo char Tipo carattere alfanumerico esempio: var x, y, z : char; Occupazione in memoria: 1 byte => 256 codici carattere distinti assegnamento: x := 'A'; 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)

Istruzione case Abbreviazione di if in cascata if <espressione logica1> then <istruzione 1> else if <espressione logica2> then <istruzione 2> else if <espressione logica3> then <istruzione 3> ... else <istruzione N> quando una stessa espressione (integer o char) viene confrontata con un insieme di espressioni costanti case <espressione> of <lista costanti 1>: <istruzione 1>; <lista costanti 2>: <istruzione 2>; <lista costanti 3>: <istruzione 3>; … [else <istruzione N>;] end;

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.

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.