Java SE 7. Strutture di programmazione (2)

Размер: px
Начинать показ со страницы:

Download "Java SE 7. Strutture di programmazione (2)"

Транскрипт

1 Java SE 7 Strutture di programmazione (2) [email protected] [email protected]

2 Casting (1) E' l'operazione che realizza la conversione di tipo tra oggetti e tra tipi primitivi. E' un'operazione consentita tra due tipi primitivi (int e float, ad esempio) o tra due oggetti legati da un legame di ereditarietà. Non è consentita tra un tipo primitivo e un oggetto o tra due oggetti senza legame di ereditarietà. Il casting può essere implicito o esplicito

3 Casting (2) Il casting implicito fra tipi primitivi deve essere fatto andando da tipi che occupano meno memoria a tipi che ne occupano di più, altrimenti c'è errore di compilazione. Il casting esplicito ci consente libertà maggiore, ma a nostro rischio. Esempio di casting tra tipi primitivi int i; long l; non rischiamo di perdere il l = i; // casting implicito valore perchè i è sicuramente contenuto in l i = (int) l; // casting esplicito rischiamo di perdere il valore di l perchè potrebbe essere non contenibile in una variabile intera

4 Casting (3) Esempio di conversione di tipo con perdita del valore: int n1 = 100; int n2 = 130; byte b1 = n1; //casting implicito - errore in compilazione byte b1 = (byte)n1; byte b2 = (byte)n2; // byte può contenere valori // da -128 a +127 System.out.println("Conversione di n1" + b1); // stampa 100 System.out.println("Conversione di n2" + b2); // stampa -126

5 Operatore ternario La forma dell'operatore ternario è: x = condizione? severo : sefalso; Questo operatore è ritorna un valore oppure un altro valore a seconda di una condizione. Il primo operando è la condizione, di conseguenza deve essere una espressione che viene valutata ad un valore booleano. Il secondo e il terzo operando invece sono il risultato finale: se primo operando viene valutato a vero, si ottiene come risultato il secondo operando, se viene valutato falso, si ottiene come risultato il terzo operando. Il secondo e il terzo operando devono essere dello stesso tipo, o almeno convertibili allo stesso tipo. Es. String s = (n % 2 == 0)? "Numero pari" : "Numero dispari";

6 Esercizio J07 Nome progetto: J07PariDispari Scrivere un programma che utilizzi l'operatore ternario, che prenda un valore come input, e determini se è pari o dispari.

7 Controllo del flusso - IF... ELSE L'istruzione "if" consente di fare eseguire una porzione di codice solo nel caso in cui una condizione prestabilita si realizzi; altrimenti ne viene eseguita un'altra (opzionale) SINTASSI if (condizione) { // blocco istruzioni } if (condizione) { // blocco istruzioni 1 } else { // blocco istruzioni 2 } Il blocco di istruzioni viene eseguito solo se si avvera la condizione. Il blocco istruzioni 1 si realizza solo quando viene soddisfatta la condizione, altrimenti (else) viene eseguito il blocco istruzioni 2

8 Controllo del flusso - IF... ELSE IF... ELSE Tramite il costrutto if... else if... posso creare una serie di condizioni, che vengono verificate sequenzialmente una dopo l'altra. SINTASSI if (condizione 1) { // blocco istruzioni 1 } else if (condizione 2) { // blocco istruzioni 2 } else if (condizione 3) { // blocco istruzioni 3 } else { // blocco istruzioni 4

9 Esercizio J08 Creare un progetto chiamato J08Condizionale che testa se un numero inserito è inferiore superiore o pari a 10.

10 Esercizio J09 Creare un progetto di nome J09CicloWhile dove si stampa un contatore che va da 0 a 9. Approfondimento: effettuare un ciclo while utilizzando un test con una variabile boolean.

11 Controllo del flusso - WHILE Il ciclo WHILE ripete un'istruzione o un blocco di istruzioni fino a quando una condizione rimane vera. SINTASSI while (condizione) { istruzioni da ripetere } ESEMPIO 1 int k = 0; while (k<10) { System.out.println(k); k++; } ESEMPIO 2 boolean b = true; int k=0; while (b) { //operazioni con k... if (k==10) b=false; }

12 Esercizio J10 Creare un programma J10Tabelline che mi mostri la tabellina da 1 a 10 dei prodotti di un numero inserito da tastiera. Esempio di output: Numero inserito: 3 Tabella dei prodotti da 1 a 10:

13 Esercizio J11 Creare un programma J11Sommatoria che sommi tutti i valori inseriti fino a che non si inserisce uno 0. Esempio: input: risultato: 15

14 Esercizio J12 Creare un programma che "pensa a un numero" e chiede all'utente di indovinare il numero pensato. Il programma chiede di inserire un nuovo numero fin quando l'utente non lo indovina, dando informazioni sul numero inserito (troppo grande, troppo piccolo). Nome programma: J12Indovina.

15 Controllo del flusso - DO WHILE Il ciclo DO-WHILE ripete un'istruzione o un blocco di istruzioni fino a quando una condizione rimane vera; si differenzia dal ciclo WHILE per l'ordine in cui esegue le operazioni previste. Infatti, prima si eseguono le istruzioni, poi si valuta la condizione. Le istruzioni vengono eseguito almeno una volta. SINTASSI do { istruzioni da ripetere } while (condizione); ESEMPIO int k = 0; do { System.out.println(k); k++; }while (k<10) ;

16 Controllo del flusso - FOR Il ciclo FOR serve per effettuare cicli di lunghezza determinata. SINTASSI for (inizio;condizione;incremento) { istruzioni da eseguire } ESEMPIO for (int i=0;i<10;i++) { System.out.println(i); }

17 Esercizio J13 Creare un programma J13Fattoriale che visualizzi il fattoriale di un numero inserito da tastiera. Esempio di output Numero inserito: 3 Fattoriale: 6 Nota: il fattoriale di 3 è dato da 1*2*3

18 Esercizio J14 Scrivere un programma J14Albero che stampi il seguente triangolo con gli asterischi * ** *** **** Modificare il programma in modo che disegni il triangolo nel seguente modo. * *** ***** ******* *********

19 Controllo del flusso - BREAK E' possibile interrompere l'esecuzione di un ciclo tramite l'istruzione break Esempio: int x=1; while (x<10) { if (x>3) break; System.out.println(x); x++; }

20 Controllo del flusso - SWITCH L'istruzione switch permette di eseguire istruzioni diverse in base al risultato di un confronto, che avviene tra il valore fornito e quelli indicati nelle varie clausole case. È necessario inserire la keyword break per interrompere il confronto. I valori di confronto devono essere di tipo primitivo convertibili a int. SINTASSI switch(valoreesaminato) { case valore1: istruzioni break; case valore2:... default: istruzioni } ESEMPIO switch(scelta) { case 1: System.out.println("Scelta 1"); break; case 2: System.out.println("Scelta 2"); break; default: System.out.println("Nè 1 nè 2"); }

21 Esercizio J15 Creare un programma J15Menu che visualizzi un menu e consenta all'utente di scegliere l'operazione da effettuare. Esempio di output Scegli un colore: 1. rosso 2. verde 3. blu 4. esci Se l'utente sceglie uno dei colori (es. rosso) deve venir visualizzato il testo "Hai scelto il rosso". Se l'utente sbaglia (non sceglie nè 1, nè 2, nè 3, nè 4) deve apparire il testo "Scelta non consentita". Miglioramento: fare in modo che il menu e la possibilità di scelta continuino fino a quando l'utente non inserisce 4.

22 Esercizio J16 Progetto: Macchina del caffè Sviluppare un programma che simuli il comportamento di una macchina erogatrice di caffè. 1. accetta soldi da utente (inserisce soldi finchè non inserisce il numero 0) 2. mostra il menu con i relativi prezzi e attende la scelta dell'utente 3. Tre casi: se i soldi sono giusti procede all'erogazione del caffè se sono pochi avvisa che mancano e attende altri se ce ne sono di più visualizza il resto

23 Esercizio J17 Creare un programma J17Pitagora che stampa a video la tavola pitagorica

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Подробнее

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Подробнее

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Подробнее

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Подробнее

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Programmazione a blocchi. Algobuild Prof. Sergio Roselli Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere

Подробнее

Costrutti iterativi. Utilizzo dei costrutti iterativi

Costrutti iterativi. Utilizzo dei costrutti iterativi Costrutti iterativi Utilizzo dei costrutti iterativi Costrutti iterativi (1/3) I costrutti iterativi permettono di eseguire ripetutamente del codice Il linguaggio Java mette a disposizione tre costrutti

Подробнее

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Подробнее

Capitolo 2 GOCCE DI JAVA. Domande a risposte multiple

Capitolo 2 GOCCE DI JAVA. Domande a risposte multiple GOCCE D AVA Capitolo 2 Domande a risposte multiple Selezionando una risposta, il bottone corrispondente diventa verde se la risposta è giusta, altrimenti diventa rosso. 2 1. Quale dei seguenti non è un

Подробнее

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Подробнее

Lab 04 Programmazione Strutturata"

Lab 04 Programmazione Strutturata Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 04 Programmazione Strutturata" Lab04 1 Valutazione in cortocircuito (1)" In C, le espressioni booleane sono valutate

Подробнее

Informatica A (per gestionali) A.A. 2004/2005. Esercizi C. Strutture di controllo

Informatica A (per gestionali) A.A. 2004/2005. Esercizi C. Strutture di controllo Informatica A (per gestionali) A.A. 2004/2005 Esercizi C Strutture di controllo 1 Indice 1 Strutture di controllo...3 1.1 Multiplo...3 1.2 Massimo Comun Divisore...3 1.3 Valutazione triangolo...4 1.4 Calcolatrice...5

Подробнее

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative

Подробнее

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Подробнее

I cicli. Iterazioni Calcolo della media Istruzioni break e continue

I cicli. Iterazioni Calcolo della media Istruzioni break e continue I cicli Iterazioni Calcolo della media Istruzioni break e continue Ciclo while p Vero A while() ; Falso Esegue una istruzione mentre una condizione è verificata Programmazione

Подробнее

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Подробнее

INFORMATICA. Strutture iterative

INFORMATICA. Strutture iterative INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale

Подробнее

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Подробнее

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE

Подробнее

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione II Tatiana Zolo [email protected] 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento

Подробнее

laboratorio di python

laboratorio di python laboratorio di python definizioni di booleani, selezione ed uso degli input 13 Marzo 2019 1/32 Correzione esercizi per oggi esercizio 1 per casa Scrivere una funzione che non ha nessun parametro, non restituisce

Подробнее

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1 Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)

Подробнее

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo [email protected] Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Подробнее

Le strutture di controllo

Le strutture di controllo INFORMATICA B Ingegneria Elettrica Le strutture di controllo Selezione un esempio introduttivo Si disegni il diagramma di flusso di un algoritmo che chiede all utente un valore intero e visualizza il suo

Подробнее

IL COSTRUTTO ITERAZIONE

IL COSTRUTTO ITERAZIONE IL COSTRUTTO ITERAZIONE Il costrutto iterazione Consente di ripetere una operazione elementare o un blocco di operazioni. Tipologie di iterazione Iterazione definita Iterazione condizionata Tipologie di

Подробнее

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Подробнее

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di

Подробнее

Cicli. S i a i = a 1 + a 2 + a a n

Cicli. S i a i = a 1 + a 2 + a a n Cicli Esprimono in modo compatto e generali l'esecuzione di uno stesso blocco di codice per più volte Anche in matematica sono presenti operatori che eseguono di fatto un ciclo (ad es. sommatoria e produttoria)

Подробнее