Laboratorio di Programmazione 28 Ottobre 2015 Laboratorio di Programmazione AreaRettangolo.java /* AreaRettangolo calcola l’area di un rettangolo */ public class AreaRettangolo { public static void main(String args[]) { int base=3; int altezza=4; System.out.print("L’area e’ "); System.out.println(base*altezza); } } III.2 Laboratorio di Programmazione Eseguiamolo! [~/AreaRettangolo] %javac AreaRettangolo.java [~/AreaRettangolo] % java AreaRettangolo L’area e’ 12 [~/AreaRettangolo] % III.3 Laboratorio di Programmazione Interattività • Un programma come AreaRettangolo sarebbe più utile se, invece di assegnare valori fissati a base e altezza, permettesse all’utente di specificarli a ogni esecuzione. • Per fare questo è necessario introdurre dei comandi che permettano di ricevere questo input dalla tastiera. III.4 AreaRettangoloInterattivo.java Laboratorio di Programmazione import java.util.Scanner; public class AreaRettangoloInterattivo { public static void main(String args[]) { Scanner sc=new Scanner(System.in); int base=sc.nextInt(); int altezza=sc.nextInt(); System.out.print("L'area e' "); System.out.println(base*altezza); } } III.5 Laboratorio di Programmazione Eseguiamolo! [~/AreaRettangolo] %javac AreaRettangoloInterattivo.java [~/AreaRettangolo] % java AreaRettangoloInterattivo 5 6 L'area e' 30 [~/AreaRettangolo] % III.6 Laboratorio di Programmazione Abbellimenti • In questo caso l’esecuzione del programma parte senza dare alcuna indicazione del fatto che il programma attende un’azione dell’utente (l’immissione di base e altezza) • E’ opportuno segnalare questo fatto all’utente tramite degli output esplicativi • Provate a implementare il programma SENZA guardare la soluzione alla slide seguente. III.7 AreaRettangoloAbbellito.java Laboratorio di Programmazione Import java.util.Scanner; public class AreaRettangoloAbbellito { public static void main(String args[]) { Scanner tastiera=new Scanner(System.in); System.out.println("Inserisci la base"); int base=tastiera.nextInt(); System.out.println("Inserisci l’altezza"); int altezza=tastiera.nextInt(); System.out.print("L’area e’ "); System.out.println(base*altezza); } } III.8 Laboratorio di Programmazione Eseguiamolo! [~/AreaRettangolo] %javac AreaRettangoloAbbellito.java [~/AreaRettangolo] % java AreaRettangoloAbbellito Inserisci la base 4 Inserisci l'altezza 7 L'area e' 28 [~/AreaRettangolo] % III.9 Laboratorio di Programmazione Costrutto di selezione if-else if (cond){ //Se la condizione è vera esegui // questo blocco di codice } else{ /* altrimenti esegui questo blocco di codice*/ } Usando il costrutto if-else potete scrivere un programma che calcoli il massimo e il minimo tra due numeri inseriti dall’utente. Laboratorio di Programmazione Celsius vs. Fahrenheit Fahrenheit -40 0 -40 -20 Celsius 40 0 80 20 120 40 fahrenheit =celsius * 9/5 + 32 Provate a implementare un programma che converte dalla scala celsius alla scala fahrenheit. III.11 Laboratorio di Programmazione ConvertiTemperature.java import java.util.Scanner; public class ConvertiTemperature { public static void main(String args[]) { Scanner tastiera = new Scanner(); double celsius; double fahrenheit; System.out.println(”Inserisci la temperatura in gradi centigradi"); celsius = tastiera.nextDouble(); fahrenheit = celsius *9/5 +32; System.out.print(”La corrispondente temperatura in scala fahrenheit e’ di "); System.out.print(fahrenheit); System.out.println(“ gradi.”); } } III.12 Laboratorio di Programmazione Eseguiamolo! [~/ConvertiTemperature] % javac ConvertiTemperature.java [~/ConvertiTemperature] % java ConvertiTemperature Come è l’output??? III.13 Laboratorio di Programmazione Swap (scambio) tra due variabili • Realizzare un programma SwappInt che chieda l’inserimento di due valori interi, li salvi in due variabili x e y e: • Stampi il valore assegnato a x e y • Scambi i valori, ovvero inserisca in x il valore di y e viceversa • Stampi il nuovo valore di x e y Laboratorio di Programmazione Esercizio 1 • Realizzare un programma AltezzaRettangoloInterattivo che legga l'area e la base di un rettangolo e ne stampi l'altezza. • Verificare come si comporta il programma – quando l'area inserita non è un multiplo esatto della base; – quando viene immesso 0 come valore per la base. III.15 Laboratorio di Programmazione Numeri reali • Scrivete un programma che richiede all’utente di immettere il raggio di un cerchio, e calcola e stampa la sua area • Per risolvere questo problema è necessario avere capito come trattare i numeri con la virgola. Se vi trovate in difficoltà, chiedete aiuto ai docenti! III.16 Laboratorio di Programmazione Esercizio 2 • Scrivere un programma ConvertiDaFahrenheitACelsius che realizzi la conversione dalla scala Fahrenheit alla scala celsius • Scrivere un programma ConvertiDaKilometriAMiglia che realizzi la conversione tra kilometri e miglia, tenuto conto del fatto che un miglio equivale a 1.61 kilometri. III.17 Laboratorio di Programmazione Esercizio 3 • Scrivere un programma CentraNomi che stampi a video i vostri nomi centrandoli in un rettangolo di dimensioni opportune, costruito utilizzando i simboli - e |. Ad esempio |-------------| | unNome | | unAltroNome | |-------------| • Attenzione! Questo programma non deve accettare alcun input da tastiera: i vostri nomi devono essere scritti direttamente nel sorgente JAVA. III.18 Laboratorio di Programmazione Esercizio 4 Scrivere un programma che: - chieda l’inserimento delle età dei vostri genitori (non utilizzerà le classi ConsoleInputManager e ConsoleOutputManager per i comandi di I\O ma la classe Scanner!!!). - calcoli e stampi la somma e la media delle età. - calcoli e stampi la somma (e la media) delle età che i componenti avevano n anni fa (dove il valore della variabile n è chiesto all’utente).