I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI

Slides:



Advertisements
Presentazioni simili
Informatica 22/03/2012.
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Linguaggi algoritmici
Iterazione while – do while - for.
Iterazione A. Ferrari.
PROGRAMMARE IN PASCAL (le basi)
3TC – 5/11/2010 Cicli while e do.. While Contatori e Totalizzatori.
Sviluppo di programmi strutturati
PHP.
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F3 Iterazione.
Algoritmi e Programmazione
Programmazione Ingegneria TLC
Informatica Generale Marzia Buscemi
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Fondamenti di Informatica
esponente del radicando
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.
Iterazione enumerativa (for)
Informatica Problema Algoritmo Programma
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 Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Introduzione alla programmazione ll
Introduzione alla programmazione lll
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Somma = A + B start Stampa Somma Leggi A,B stop Sub SOMMA( ) Dim A, B as Integer A = InputBox("Immetti un numero") B = InputBox(Immetti un secondo numero)
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,
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
Programmazione in Java Claudia Raibulet
ELEMENTI DI PROGRAMMAZIONE
CODIFICA Da flow-chart a C++.
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Lezione 6 Strutture di controllo Il condizionale
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
In molti casi è utile assegnare a degli identificatori dei valori che restino costanti durante tutto il programma e che non possano essere cambiati nemmeno.
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
14 marzo 2002 Avvisi:.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Programmazione Strutturata
Anno accademico Le istruzioni di controllo in C.
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
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.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
PRIMI ELEMENTI DI PROGRAMMAZIONE
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Diagrammi a blocchi.
La logica degli enunciati interamente realizzata da GIANNUZZI SILVIA
Programmazione dei Calcolatori Elettronici
Strutture di controllo
Istruzioni e algoritmi. Istruzioni Operative I passi elementari che compongono l’algoritmo sono le istruzioni. Distinguiamo: Istruzioni di input Istruzioni.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Transcript della presentazione:

I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI L’ALGORITMO I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI FINE

PROGRAMMAZIONE STRUTTURATA Teorema di Jacopini Böhm (1966) Qualunque algoritmo può essere implementato utilizzando le tre sole strutture di controllo: sequenza selezione iterazione Tutti i linguaggi imperativi implementano le strutture di controllo fondamentali con opportune istruzioni Naturalmente la forma sintattica può a volte variare leggermente, ma il funzionamento rimane identico

STRUTTURE DI CONTROLLO SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE con il controllo in coda PRIMITIVE necessarie e sufficienti per risolvere qualsiasi algoritmo (teorema di Bohm-Jacopini) ITERAZIONE con controllo in testa ITERAZIONE ENUMERATIVA SCELTA (o selezione) MULTIPLA NON PRIMITIVE derivate da quelle primitive ALGORITMO

LA SEQUENZA E’ un insieme di azioni da svolgere secondo un ordine prefissato. L’ordine di esecuzione è dalla prima all’ultima istruzione seguendo un percorso unico. Flow chart pseudocodifica ……….. istruzione-1 istruzione-2 istruzione-3 …………… In Java si utilizza { per indicare l’inizio della sequenza di istruzioni } per indicare la fine della sequenza

Esempio di istruzioni in sequenza PROBLEMA: dato il prezzo di un prodotto e lo sconto effettuato, calcolare e comunicare il prezzo scontato INIZIO FINE C  PREZZO - SCONTO Scrivi “il prezzo è “ C Leggi PREZZO Scrivi “indica lo sconto” Leggi SCONTO Scrivi “indica il prezzo” Si propone l’algoritmo disegnato con la tecnica del flow-chart e con la tecnica della pseudocodifca. inizio { scrivi “indica il prezzo" leggi PREZZO scrivi “indica lo sconto" leggi SCONTO c  PREZZO – SCONTO scrivi “il prezzo scontato è “ c } fine nome I/O V/C N/A descrizione PREZZO I V N decimale Prezzo del prodotto SCONTO Sconto effettuato C O Prezzo scontato ESERCIZIO: PREZZO codifica il programma descritto nell’algoritmo soluzione

Alcune osservazioni sulle tecniche per descrivere l’algoritmo INIZIO FINE C  PREZZO - SCONTO Scrivi “il prezzo è “ C Leggi PREZZO Scrivi “indica lo sconto” Leggi SCONTO Scrivi “indica il prezzo” La descrizione di un algoritmo può essere fatta sia con la tecnica del flow-chart che con la tecnica della pseudocodifca. Sono equivalenti, quindi nel seguito ne verrà proposta solo una. Laddove è sufficientemente chiaro, non verranno indicate le istruzioni di output che servono per chiedere all’utente di indicare i dati . Ad esempio: Leggi PREZZO Scrivi “indica il prezzo” verrà sostituita dalla sola istruzione Leggi PREZZO La tabella dei dati deve essere sempre descritta

Esercizi proposti sulla sequenza Fornito un valore in input, calcolarne il doppio del quadrato del successivo. Dato un numero in input, calcolare la somma tra il suo doppio e la sua metà. Si devono comprare 3 kg mele e 2 kg di pere; dato in input il prezzo al kg di ciascun prodotto , calcolare la spesa finale Date le coordinate di un punto in un piano cartesiano, calcolare la sua distanza dal centro

LA SELEZIONE (scelta logica ) Con questa struttura si seleziona in modo esclusivo una determinata sequenza/blocco di istruzioni da eseguire sulla base di una <condizione> rappresentata da una espressione booleana , che può essere vera o falsa pseudocodifica Flow chart Nel diagramma a blocchi compaiono due possibili percorsi in base al verificarsi o meno di una condizione. Se la condizione è vera si segue il ramo del SI, se è falsa, il ramo del NO. Nella pseudocodifica, se la condizione è vera si esegue il primo blocco di istruzioni , se è falsa, si esegue il secondo blocco di istruzioni se (condizione) { blocco_istruzioni_1 } altrimenti { blocco_istruzioni_2 } COND NO SI

Esempio di struttura di selezione Data l’equazione di 2° grado: Ax2 + Bx + C = 0 Per trovare le soluzioni reali è necessario calcolare il valore del discriminante D: D = B2 - 4 AC Calcolo di D NO SI D0 Non ci sono radici reali Calcolo due radici reali Se D0 calcolo delle due radici reali dell’equazione altrimenti l’equazione non ha radici reali.

AZIONI DI TIPO LOGICO Si dice enunciato una proposizione che può essere soltanto vera o falsa Un enunciato può essere vero o falso, ma non entrambe le cose La verità o la falsità di un enunciato sono dette valori di verità e tali valori corrispondono agli unici due valori dell’algebra booleana Vero Falso rappresentati anche con 1 0; ROMA è composta da 4 lettere  vero 7 > 3  vero 7 > 12  falso A > B dipende dal valore assunto dalle variabili A e B ESEMPI DI ENUNCIATI: NON E’ UN ENUNCIATO forse pioverà  non è né vero né falso Dato un enunciato, possiamo esaminare la sua condizione ossia l’essere vero o falso e in base a tale valutazione possiamo prendere delle decisioni.

AZIONI DI TIPO LOGICO COMPOSTE Gli enunciati possono essere composti ossia formati da sottoenunciati collegati tra loro da connettivi Siano p e q due enunciati; esaminiamo le tavole di verità dei connettivi AND, OR, NOT Connettivo AND (prodotto logico) Connettivo OR (somma logica) p q p AND q V F p q p OR q V F Connettivo NOT (negazione) p NOT p V F

Sintassi della struttura di Selezione if (condizione) istruzione1; else istruzione2 ; In Java la struttura di selezione si codifica così Se sono presenti più istruzioni in ciascun ramo if (condizione) { istruzione1; istruzione2; …. } else { istruzione...; … RICORDA: Le istruzioni che fanno parte della sequenza sono racchiuse tra le parentesi graffe.

Esempio Istruzione di Selezione a due vie PROBLEMA: dato un numero si comunichi se il numero è pari o dispari istruzione precedente // // Selezione.java import java.util.Scanner; // program uses class Scanner public class Selezione { // main method begins execution of Java application public static void main( String args[] ) // create Scanner to obtain input from command window Scanner input = new Scanner( System.in ); int number1; // read a System.out.print( "Enter an integer: " ); // prompt number1 = input.nextInt(); // read first number from user if((number1%2)==0) System.out.printf( “Il numero e’ pari %d\n”, number1 ); } else System.out.printf( “Il numero e’ dispari %d\n”, number1 );  } // end method main } // end class Selezione INIZIO FINE Scrivi “il numero è dispari” Leggi a a %2=0 V F Scrivi “il numero è pari” ESERCIZIO: NUMERO POSITIVO acquisire un numero e comunicare se è positivo o negativo soluzione

LA SELEZIONE A UNA VIA Sinora abbiamo esaminato casi in cui in base alla condizione si potevano eseguire due diverse azioni alternativamente. In alcuni casi invece è possibile scegliere di compiere o non compiere un’azione; in tal caso l’azione da eseguire deve essere posta sul ramo del SI. COND SI NO In questo caso la codifica in Java è: if (condizione) istruzione1; o nel caso di più istruzioni: if (condizione) { istruzione1; istruzione2; ………….; } La clausola else (altrimenti) in queste situazioni non viene codificata

Esempio Istruzione di Selezione a una via PROBLEMA: dato un numero intero si comunichi il valore della radice quadrata del suo valore assoluto // // Selezione2.java import java.util.Scanner; // program uses class Scanner public class Selezione2 { // main method begins execution of Java application public static void main( String args[] ) // create Scanner to obtain input from command window Scanner input = new Scanner( System.in ); int number1; // read a double number2; System.out.print( "Enter an integer: " ); // prompt number1 = input.nextInt(); // read first number from user /*if(number1<0) number1=-number1; }*/ number1 = Math.abs(number1); System.out.printf("Il valore assoluto e' %d\n", number1 ); number2 = Math.sqrt(number1); System.out.printf("La radice quadrata e' %f\n", number2 ); } // end method main } // end class Selezione2 INIZIO Leggi a V F a >=0 a = abs(a); b = sqrt(a); Scrivi b FINE ESERCIZIO: VOTI acquisire 3 voti, calcolare e comunicare la media; se la media è insufficiente, comunicare “devi fare i corsi di recupero” soluzione

Strutture di Controllo if-else Nidificati A volte si possono usare istruzioni di selezione ( a una o a due vie) nidificate , ossia le istruzioni da eseguire al verificarsi della condizione sono a loro volta istruzioni condizionali Il processo può essere ripetuto a molti livelli Istruzione Successiva Condizione I1 Vera Falsa Istruzione Precedente I2 I3 I4 Occorre porre molta attenzione nell’utilizzare una tale struttura, poiché facilmente “ci si perde” nell’esaminare le varie condizioni ESERCIZIO: NUMERO POSITIVO O NULLO Acquisire un numero e comunicare se è positivo, negativo o nullo soluzione

Esercizi proposti sulla selezione Dati 2 voti, calcolare la media ; se la media è sufficiente , comunicare “alunno promosso” altrimenti comunicare “alunno rimandato” Volendo fare la spesa , si ha a disposizione una certa cifra iniziale. Conoscendo l’importo da spendere, verificare se la spesa è possibile Dati tre numeri, stabilire se possono essere le misure dei lati di un triangolo rettangolo. Viene fornito in input il punteggio di un candidato ad un concorso. Se tale punteggio è compreso tra 0 e 27, visualizzare RESPINTO, tra 28 e 40 visualizzare AMMESSO, in tutti gli altri casi ERRORE.

ITERAZIONE CON CONTROLLO IN CODA ( do…while ) Per iterazione si intende la ripetizione di una o più azioni sotto il controllo di una condizione. Il gruppo di azioni da ripetere è detto corpo del ciclo Nell’iterazione con il controllo in coda, la condizione da verificare si trova dopo il corpo del ciclo Il corpo del ciclo verrà eseguito almeno una volta. Condizione Istruzione Precedente Corpo Istruzione Successiva Vera Falsa In Java, il ciclo che si ripete mentre la condizione è vera; quando la condizione è falsa il ciclo si interrompe, quindi è necessario che all’interno del corpo vi sia una istruzione che modifichi il valore della condizione, altrimenti il ciclo “va in loop”

Esecuzione di un ciclo do..while Questa struttura può essere utilizzata per il “controllo dei dati in input” ESERCIZIO: Leggi ripetutamente un numero finchè il numero letto è > 0 La struttura do..while, consente di eseguire ripetutamente il corpo del ciclo anche per un numero di volte indeterminato // // Ciclo.java import java.util.Scanner; // program uses class Scanner public class Ciclo { // main method begins execution of Java application public static void main( String args[] ) // create Scanner to obtain input from command window Scanner input = new Scanner( System.in ); int number1; // read a do System.out.print( "Dammi un numero: " ); // prompt number1 = input.nextInt(); // read first number from user if(number1<=0) System.out.println( "Numero non positivo-ripetere"); } while(number1<=0); System.out.println( "Fine"); } // end method main } // end class Ciclo schermo Dammi un numero - 20 Numero non positivo-ripetere Dammi un numero - 30 Numero non positivo-ripetere Dammi un numero 12 Fine

Esempio di iterazione con controllo in coda ESERCIZIO: Visualizzazione dei primi 10 multipli di 5 num=5 Codifica in Java: int num=5; int cont=1; int ris=0; do { ris=num*cont; System.out.printf(“%d”, ris); cont++; } while (cont<=10); cont=1 Inizio ciclo ris=num*cont Istruzioni interne al ciclo ripetute mentre la variabile cont è minore o uguale a 10 scrivi ris cont=cont+1 s Condizione di fine ciclo (quando cont supera 10) cont10 N

RICORDA: Quando si fa riferimento ad una condizione (sia nella scelta che nell’iterazione) si intende che è possibile utilizzare anche condizioni composte. In C++ AND prodotto logico && OR somma logica | | NOT negazione ! Si ottengono condizioni composte legando due o più condizioni con gli operatori logici: Esempi in Java: OR nella selezione if ((a>0) || (b>0)) …..; AND nella ripetizione do { ….. ….. } while ((a>0) && (b>0)); ESERCIZIO: BENVENUTO Acquisire il nome di una persona e il sesso (tramite lettera ‘m’ o ‘f’) e scrivere come messaggio: “Buongiorno, signor … “ oppure “Buongiorno signora ….. “ seguito da nome soluzione

Esercizi proposti sulla iterazione con controllo in coda Dato in input un numero positivo (NUM>0), visualizzarne l’inverso (INV=1/NUM), il doppio (DOP=2*NUM), il quadrato (QUAD=NUM*NUM). Visualizzare i primi N numeri pari, con N intero positivo fornito in input. Visualizzare la somma dei primi N interi, con N>3 fornito in input. Oss: l’iterazione è sul controllo dell’input

STRUTTURE NON PRIMITIVE Si tratta di strutture che derivano da quelle primitive di selezione e iterazione con controllo in coda Pur non essendo teoricamente indispensabili rendono più semplice ed efficace l’attività di programmazione ITERAZIONE CON CONTROLLO IN TESTA ITERAZIONE ENUMERATIVA SCELTA (O SELEZIONE) MULTIPLA

ITERAZIONE CON CONTROLLO IN TESTA ( while …) Codifica in Java while (cond) { istruzione1; istruzione2; } s COND N istruzione1 istruzione2 La caratteristica di questa iterazione è che la condizione da verificare si trova prima delle azioni da eseguire (corpo). Il while verifica la condizione all’inizio del ciclo per cui se inizialmente la condizione risulta falsa il corpo del ciclo non viene mai eseguito Affinchè il ciclo while, nel caso la condizione sia stata inizialmente trovata vera, abbia la possibilità di terminare è necessario che all’interno del corpo vi sia una istruzione che modifichi il valore della condizione

Esecuzione di un ciclo while ESERCIZIO: Leggi ripetutamente un numero in ingresso e calcolane la radice quadrata fino a quando il numero letto è > 0 // // Ciclo2.java import java.util.Scanner; // program uses class Scanner public class Ciclo2 { // main method begins execution of Java application public static void main( String args[] ) // create Scanner to obtain input from command window Scanner input = new Scanner( System.in ); System.out.print( "Dammi il primo numero: " ); // prompt int number1; // read a number1 = input.nextInt(); // read first number from user while(number1>0) System.out.println(Math.sqrt(number1)); System.out.print( "Dammi un altro numero: " ); // prompt number1 = input.nextInt(); // read first number from user } System.out.println( "Fine"); } // end method main } // end class Ciclo2 schermo Dammi il primo num. 25 5.0 Dammi un altro num. 9 3.0 Dammi un altro num. Fine Anche la struttura while…, consente di eseguire ripetutamente il corpo del ciclo anche per un numero di volte indeterminato

Esempio di iterazione con controllo in testa ESERCIZIO: Visualizzazione dei primi 10 multipli di 5 num=5 Codifica in Java: num=5; cont=1; while (cont<=10) { ris=num*cont; System.out.printf(“%d”, ris); cont++; } cont=1 fine ciclo Condizione di inizio ciclo (mentre cont10) N cont10 s ris=num*cont Istruzioni ripetute all’interno del ciclo scrivi ris cont=cont+1

ITERAZIONE ENUMERATIVA (for) Ha questo nome poiché si tratta di un’iterazione in cui si conosce quante volte il ciclo viene ripetuto. L’iterazione enumerativa è derivata dalla iterazione con controllo in testa, perciò la sua rappresentazione con il flow-chart sarà simile a quella dell’iterazione con controllo in testa. E’ però presente una variabile intera di controllo del numero ripetizioni del corpo del ciclo. Tale variabile viene inizializzata fuori ciclo, incrementata nel ciclo e controllata nella condizione di uscita dal ciclo (ciclo contatore). Indicata nella gestione degli array monodimensionali (vettori) o bidimensionali (matrici) poiché in queste strutture è obbligatorio dichiarare di quanti elementi sono formate.

Esempio di iterazione enumerativa ESERCIZIO: Visualizzazione dei primi 10 multipli di di 5 (contatore sulla variabile cont) num=5 Codifica in Java: num=5; for (cont=1;cont<=10;cont++) { ris=num*cont; System.out.printf(“%d”, ris); } inizializzazione cont=1 cont10 controllo s ris=num*cont scrivi ris incremento cont=cont+1 ALGORITMO

Codifica in Java dell’ iterazione enumerativa for ( espressione1; espressione2 ; espressione3 ) istruzione; L’istruzione for è composta da tre espressioni separate dal ‘;’ la prima è di inizializzazione, la seconda di controllo, la terza di incremento. L’ordine di esecuzione è il seguente: 1) esecuzione dell’espressione1 (una sola volta) 2) controllo dell’espressione2 (ripetuta dopo ogni incremento) 3) esecuzione dell’istruzione (se espressione2 è vera, altrimenti si esce dal ciclo) 4) esecuzione dell’espressione3 (incremento e ritorno al punto 2)

Quando si equivalgono while / for Esempio di equivalenza strutture iterative while e for per iterazioni controllate da contatore in Java: float lato, area; int i; i=0; while (i<3) { …. i++; } float lato, area; int i; for (i=0; i<3; i++) { ….. }

Esercizi proposti sulla iterazione enumerativa Letto da tastiera un numero N positivo , acquisire N numeri e calcolarne la media Letto da tastiera un numero N positivo, acquisire N numeri e calcolare la somma e la media dei positivi e la somma e la media dei negativi

SCELTA MULTIPLA Nella scelta logica si sceglie di compiere o non compiere un’azione si sceglie di compiere, in modo esclusivo, una tra due azioni Nella realtà capita di dover compiere, in modo esclusivo, una tra più azioni La scelta multipla è derivata dalla scelta logica (selezione) ma consente di scegliere tra più azioni

Esempio di scelta multipla Esempio tipico di scelta multipla è quello di un programma che permette all’utente, attraverso un menù iniziale, di scegliere tra le funzioni offerte. Tale situazione è risolvibile mediante una serie di scelte logiche Molti linguaggi di programmazione, tra cui il Java, agevolano il programmatore mettendo a disposizione la scelta multipla ALGORITMO

Rappresentazione della scelta multipla nel diagramma a blocchi X: variabile di cui va analizzato il contenuto default 1 Default racchiude tutti i valori diversi da quelli previsti X 2 3 4 Valori che si prevede possa assumere X (1, 2, 3, 4) istr1 istr2 istr3 istr4 istrd istr1, istr2,… rappresentano le istruzioni da eseguire. Se nella variabile X c’è il valore 1 viene eseguito il gruppo di istruzioni istr1, se in X c’è il valore 2 le istruzioni istr2 e così via.

Sintassi della selezione multipla in C++ In Java la Selezione Multipla è rappresentata dalla istruzione switch-case  switch (variabile){                     case <costante1>: <sequenza di istruzioni1>;     break;                     case <costante2>: <sequenza di istruzioni2>;    break;                                 ....                     case <costanten>: <sequenza di istruzionin>;    break;                     default   : <sequenza di istruzioni>;                   break;                             } le espressioni costanti costante1, costante2, ..., costanten devono essere di tipo intero In Java i caratteri sono assimilati agli interi (ne viene considerata la codifica interna in ASCII) l’istruzione break serve per terminare lo switch dopo aver eseguito solo la sequenza associata ad una particolare scelta (case) e proseguire con l’istruzione successiva allo switch-case; nel costrutto può comparire la clausola default per individuare la sequenza di operazioni da compiere quando il valore esaminato non coincide con alcuno di quelli specificati

Semplice esempio di switch-case in Java ESERCIZIO: dato un numero intero, visualizza il nome del giorno della settimana corrispondente class SwitchStagione { public static void main(String args[]) { int mese=4; String stagione; switch (mese) { case 12: case 1: case 2: stagione="inverno”; break; case 3: case 4: case 5: stagione="primavera”; break; //senza questo break si ha estate case 6: case 7: case 8: stagione="estate”; case 9: case 10: case 11: stagione="autunno”; default: //la clausola default √® opzionale stagione="non identificabile”; } System.out.println("La stagione e' "+stagione+".");

Esercizi proposti sulla selezione multipla Prevedere un programma che visualizzi un menù con tutte le materie scolastiche. Scelta una particolare materia, dovrà comparire il nome dell’insegnante. Assegnazione dei premi ad un’estrazione. Viene generato un intero casuale compreso tra 1 e 4 con i seguenti abbinamenti: 1 vincita di un Personal Computer 2 vincita di una telecamera 3 vincita di un videoregistratore 4 vincita di una macchina fotografica Dato un numero compreso tra 1 e 12, indicare il nome del mese corrispondente