1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

INFORMATICA Strutture condizionali
Process synchronization
if (condizione.) { blocco_istruzioni } else
Selezione A. Ferrari.
3TC – 5/11/2010 Cicli while e do.. While Contatori e Totalizzatori.
Sviluppo di programmi strutturati
Istruzioni condizionali e blocco
Generazione di Codice Intermedio
Informatica Generale Marzia Buscemi
ESPRESSIONI SENZA PARENTESI
Il linguaggio C Gli operatori e le espressioni C Language
INFORMATICA Strutture iterative
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Semantiche dei linguaggi di programmazione
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
Algebra di Boole ed elementi di logica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
Algebra di Boole ed elementi di logica
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 11 (19 novembre 2008) Programmazione in Java: controllo del flusso (iterazione)
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: funzione di output a video Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Raffaella Rizzi DISCO Dipartimento di Informatica Sistemistica e Comunicazione Edificio U14 - primo piano - stanza.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Dott.ssa.
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Dott.ssa.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
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.
Esercizi su pile Scrivere una funzione che restituisca una nuova pila che contiene i valori di una pila in ingresso in ordine inverso. La pila originale.
Programmazione Corso di laurea in Informatica
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Selezione (=scelta) con “if-else”
Unità Didattica 1 Algoritmi
Strutture di controllo in C -- Flow Chart --
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Java base I: Sintassi e tipi di dati
Java base II: Strutture di Controllo
Programmazione in Java Claudia Raibulet
2000 Prentice Hall, Inc. All rights reserved. Capitolo 3 (Deitel) Lo sviluppo di programmi strutturati Indice degli argomenti Introduzione 3.2 -
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
CODIFICA Da flow-chart a C++.
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Lezione 6 Strutture di controllo Il condizionale
Parte 4 Elementi di Informatica di base
Laboratorio di Informatica1 Parte 4 Laboratorio di Informatica Dott.ssa Elisa Tiezzi Dott.ssa Elisa Mori.
BIOINFO3 - Lezione 211 INPUT La lettura di un input dallo standard input (tastiera) si effettua utilizzando lespressione. Quando il programma incontra.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Anno accademico Le istruzioni di controllo in C.
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.
Introduzione a Javascript
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Strutture di controllo
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Transcript della presentazione:

1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)

2 Il tipo boolean Il tipo boolean è in Java un tipo primitivo che che può assumere esclusivamente due valori: true e false Esempio: boolean b; b=true; System.out.println(b); b=false; System.out.println(b);

3 Espressione booleana Unespressione booleana è una combinazione di operandi (variabili e valori), operatori aritmetici, operatori relazionali, operatori logici e parentesi tonde. Unespressione booleana restituisce in Java un valore di tipo boolean e può essere pertanto assegnata ad una variabile di tipo boolean Esempio: boolean b; int x=10; b=(x > 5); // b contiene il valore true

4 Operatori relazionali Gli operatori relazionali confrontano due operandi numerici e ne determinano la relazione restituendo un valore di tipo boolean OperatoreDescrizioneUsoRestituisce true se… ==Uguale aop1 == op2 op1 è uguale a op2 !=Diverso daop1 != op2 op1 è diverso da op2 <Minore diop1 < op2 op1 è minore di op2 >Maggiore diop1 > op2 op1 è maggiore di op2 <= Minore o uguale a op1 <= op2 op1 è minore o uguale a di op2 >= Maggiore o uguale a op1 >= op2 op1 è maggiore o uguale a di op2

5 Operatori relazionali (esempi) Esempio 1: int x=3; int y=4; boolean b; b=(x<=y); System.out.println(b); La stampa è true

6 Operatori relazionali (esempi) Esempio 2: int x=3; int y=4; boolean b; b=(x==y); System.out.println(b); La stampa è false

7 Operatori relazionali (esempi) Esempio 3: int x=3; int y=4; boolean b; b=(x!=y); System.out.println(b); La stampa è true

8 Operatori logici Gli operatori logici operano su operandi booleani (espressione booleana, variabile booleana o valore booleano esplicito) OperatoreDescrizioneUsoRestituisce true se… && AND abbreviato op1 && op2 op1 e op2 valgono entrambi true &ANDop1 & op2 op1 e op2 valgono entrambi true ||OR abbreviatoop1 || op2 almeno uno tra op1 e op2 è true |ORop1 | op2 almeno uno tra op1 e op2 è true !NOT!op1 op1 è false

9 Operatori logici (esempio) Esempio: int x=3; int y=4; boolean b; b=(x!=0 && x>y); System.out.println(b); La stampa è false

10 Operatori logici La forma abbreviata degli operatori di AND e OR differisce dalla forma normale per il fatto che se una valutazione fallisce, le successive valutazioni non vengono eseguite. Ad esempio: int x=3; int y=0; boolean b; b=(y!=0 && x>y); Lespressione x>y non viene valutata in quanto y!=0 è false e basta già per dire che lintera espressione assegnata a b è false.

11 Operatori logici...oppure: int x=3; int y=0; boolean b; b=(y==0 || x>y); Lespressione x>y non viene valutata in quanto y==0 è true e basta già per dire che lintera espressione assegnata a b è true. Attenzione! Non è detto che lordine di valutazione sia quello di codifica dellespressione… Quindi bisogna andare cauti con istruzioni che potrebbero generare errori in runtime

12 Precedenza degli operatori Operatori elencati per precedenza decrescente: pre-incremento ++, pre-decremento --, negazione aritmetica - post-incremento ++ e post-decremento -- e negazione logica ! moltiplicazione *, divisione / e modulo % somma + e sottrazione – minore, minore o uguale =

13 Precedenza degli operatori... uguale a ==, diverso da != AND & OR | AND && OR || assegnamenti: =, +=, -=, *=, /=, %=

14 Controllo del flusso Il controllo del flusso è lesecuzione ordinata di una sequenza di istruzioni. Il controllo del flusso (che vediamo…) può essere: sequenziale esegue le istruzioni una alla volta nellordine in cui sono state scritte selezione esegue le istruzioni scelte tra almeno due possibilità iterazione esegue ripetutamente delle istruzioni finchè si verifica una certa condizione

15 Selezione I costrutti di selezione (che vediamo…) sono: if (selezione a una via) if-else (selezione a due vie) Nel costrutto di selezione viene effettuato un test (definito da unespressione booleana che restituisce true o false). Se il test è positivo (true) si fa qualcosa altrimenti non si fa nulla nella selezione a una via, o si fa qualcosa daltro nella selezione a due vie.

16 Selezione a una via La selezione a una via permette di eseguire un blocco di istruzioni oppure di saltarlo if( ){ ; } ;... dove è lespressione booleana che valutata decide se eseguire o meno il blocco di istruzioni definito da. Se restituisce true, viene eseguito, il controllo diventa in seguito sequenziale e viene eseguita listruzione successiva. Se restituisce false, viene saltato e viene subito eseguita listruzione successiva.

17 Selezione a una via (esempi) Esempio 1: int x=3; if(x > 2){ x++; } System.out.println(x=+x); La stampa è x=4

18 Selezione a una via (esempi) Esempio 2: int x=3; if(x < 3){ x++; } System.out.println(x=+x); La stampa è x=3

19 Selezione a due vie La selezione a due vie permette di effettuare una scelta tra due blocchi di istruzioni if( ){ ; } else{ } ;... dove è lespressione booleana che valutata decide se eseguire oppure. Se restituisce true, viene eseguito,...

20 Selezione a due vie... il controllo diventa in seguito sequenziale e viene eseguita listruzione successiva. Se invece restituisce false, viene eseguito, il controllo diventa in seguito sequenziale e viene sempre eseguita listruzione.

21 Selezione a due vie (esempio) Esempio: int x=3, y=4, min; if(x < y){ min=x; } else{ min=y; } System.out.println(Minimo=+min); La stampa è Minimo=3

22 Selezione Nel caso in cui i blocchi di istruzioni dei costrutti di selezione (a una e a due vie) siano composti da una sola istruzione, le parentesi graffe di delimitazione non sono necessarie. Ad esempio il codice della slide precedente può essere riscritto nel modo seguente: int x=3, y=4, min; if(x < y) min=x; else min=y; System.out.println(Minimo=+min);

23 Selezione annidata I blocchi di istruzioni di un costrutto di selezione (a una o a due vie) possono essere a loro volta costrutti di selezione (a una o a due vie). Ad esempio: if( ){... } else{... } else{ if( ){... } else{... }

24 Selezione annidata (esempio) Esempio: int x=3, y=4, z; if(x != y){ if(x < y) z=x; else z=y; } else{ z=0; } System.out.println(Z=+z); La stampa è Z=3

25 Scope di una variabile Una variabile è visibile solo allinterno del blocco di codice in cui viene diachiarata! Ad esempio nel codice seguente: int x=10; if(x < 20){ int y=30; System.out.println(x+y); } System.out.println(y);//ISTRUZIONE ERRATA! La variabile y NON ESISTE al di fuori del blocco di codice relativo al costrutto di selezione