La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Primi programmi in Java Lezione II. 2 Il processo di sviluppo Passo 1: scrivere il programma –Software: un qualsiasi text editor Passo 2: compilare il.

Presentazioni simili


Presentazione sul tema: "Primi programmi in Java Lezione II. 2 Il processo di sviluppo Passo 1: scrivere il programma –Software: un qualsiasi text editor Passo 2: compilare il."— Transcript della presentazione:

1 Primi programmi in Java Lezione II

2 2 Il processo di sviluppo Passo 1: scrivere il programma –Software: un qualsiasi text editor Passo 2: compilare il programma –Software (Compilatore): Java Development Kit (JDK) –Comando: javac HelloWorld.java – -> crea il file HelloWorld.class contenente il bytecode della classe Passo 3: eseguire il programma –Software (Esecutore): JDK o Java Runtime environment –Comando: java HelloWorld – -> esegue il bytecode della classe HelloWorld sulla JVM

3 3 Un package importante Per gestire linput da tastiera e loutput a video utilizzeremo rispettivamente le classi (fornite nelle Librerie JAVA!!): –Scanner (per linput) –System.out (per loutput) ATTENZIONE! Non useremo MAI le classi ConsoleInputManager e ConsoleOutputManager fanno parte del package prog.io usato SOLO nel corso di teoria per semplificare la spiegazione.

4 4 Attenzione! RIPETIAMO: I contenuti del package prog.io non fanno parte della distribuzione di Java. Per potervi accedere è necessario: –copiare i contenuti del package sul proprio computer (dal CD venduto assieme al libro) in una zona opportuna; –modificare alcuni settaggi del sistema (tipicamente la variabile di ambiente CLASSPATH ).

5 5 HelloWorld /* Impariamo a usare le classi di Output */ class HelloWorld{ public static void main(String args[]) { System.out.println(Hello, world!); }

6 6 Salviamo, Compiliamo… Passo 1: SALVIAMO il tutto in un file dal nome HelloWorld.java In generale una classe dal nome NomeClasse (convenzione: lettera iniziale della classe maiuscola!) dovrà essere salvata in un file a se stante con lo stesso nome della classe e estensione.java, ovvero un file dal nome: NomeClasse.java Passo 2: COMPILIAMO… (con comando da tastiera al prompt) >>javac HelloWorld.java Il comando da tastiera ha sintassi: javac + PathClasse.java javac è il comando mentre PathClasse.java è il path (assoluto o relativo alla posizione da cui lanciate il comando) contenente il codice della classe

7 Se tutto va bene avremo nella stessa directory un file che contiene il bytecode della classe; tale file viene creato dal compilatore se non trova errori in compilazione. E un file con lo stesso nome della classe e estensione.class, ovvero un file dal nome: NomeClasse.java Esempi di comandi di compilazione: Se sono nella stessa directory: >>javac HelloWorld.java Se lancio il comando da una directory padre, la cui directory figlia (SecondaLezione) contiene il file HelloWorld.java >>javac SecondaLezione\HelloWorld.java Se voglio usare il path assoluto (indipendentemente da dove io mi trovi ) >>javac c:\...\SecondaLezione\HelloWorld.java

8 8 Eseguiamo! Passo 3: ESEGUIAMO la classe HelloWorld (con comando da tastiera al prompt) >>java HelloWorld Il comando da tastiera ha sintassi: java + PathClasse java è il comando mentre PathClasse è il path (assoluto o relativo alla posizione da cui lanciate il comando) contenente il codice della classe Otterremo il seguente output: >>java HelloWorld (comando desecuzione) Hello, world! (output della classe) >> (prompt/shell in attesa di nuovi comandi...)

9 9 /* Impariamo a usare le classi di I/O */ import java.util.Scanner; class HelloWorldEsteso{ } HelloWorldEsteso.java public static void main(String args[]){ Scanner in = new Scanner(System.in); System.out.println(Which day is today?); String tod=in.nextLine(); System.out.println(Hello, world!); System.out.print(Today is...); System.out.println(tod);

10 10 Salviamo, Compiliamo ed Eseguiamo! Ora Salviamo il tutto in un file dal nome HelloWorldEsteso.java COMPILIAMO… (con comando da tastiera al prompt) >>javac HelloWorldEsteso.java ESEGUIAMO… (con comando da tastiera al prompt) >>java HelloWorldEsteso Otterremo il seguente output: >>java HelloWorldEsteso (eseguiamo..) Which day is today? (output del programma) Monday (input dellutente) Today is...Monday (output del programma) >> (prompt in attesa di nuovi comandi)

11 11 AreaRettangolo.java /* AreaRettangolo calcola larea di un rettangolo */ public class AreaRettangolo { public static void main(String args[]) { int base=3; int altezza=4; System.out.print("Larea e "); System.out.println(base*altezza); }

12 12 Salviamo, Compiliamo ed Eseguiamo! >>javac AreaRettangolo.java >>java AreaRettangolo Larea e 12 >> Interattività Un programma come AreaRettangolo sarebbe più utile se, invece di assegnare valori fissati a base e altezza, permettesse allutente di specificarli a ogni esecuzione. Per fare questo è necessario introdurre dei comandi che permettano di ricevere questo input dalla tastiera.

13 13 AreaRettangoloInterattivo.java import java.util.Scanner; //NON DIMENTICARLO!! 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("Larea e "); System.out.println(base*altezza); }

14 14 Eseguiamolo! >>javac AreaRettangoloInterattivo.java >> java AreaRettangoloInterattivo 5 6 L'area e' 30 >>

15 15 Abbellimenti In questo caso lesecuzione del programma parte senza dare alcuna indicazione del fatto che il programma attende unazione dellutente (limmissione di base e altezza) E opportuno segnalare questo fatto allutente tramite degli output esplicativi Provate VOI a implementare il programma SENZA guardare la soluzione alla slide seguente.

16 16 AreaRettangoloAbbellito.java 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 laltezza"); int altezza=tastiera.readInt();//UPSI! errorino… System.out.print("Larea e "); System.out.println(base*altezza); }

17 17 Eseguiamolo! >>javac AreaRettangoloAbbellito.java >>java AreaRettangoloAbbellito Inserisci la base 4 Inserisci l'altezza 7 L'area e' 28 >>

18 18 Celsius vs. Fahrenheit Fahrenheit Celsius fahrenheit =celsius * 9/ Provate a implementare un programma che converte dalla scala celsius alla scala fahrenheit.

19 19 ConvertiTemperature.java (notate lindentazione!!!!) import java.util.Scanner(); public class ConvertiTemperature { public static void main(String args[]) { } Scanner in = new Scanner(); int celsius,fahrenheit; // Stesso tipo! Le dichiaro insieme! System.out.print(Inserisci); /*Giochiamo con loutput */ System.out.print( la ); System.out.print( temperatura in grad); System.out.println(i centigradi); celsius = in.nextInt(); //lettura input utente fahrenheit = celsius *9/5 +32; /*conversione del valore inserito in fahrenheit*/ System.out.print(La corrispondente temperatura in scala fahrenheit e di ); System.out.print(fahrenheit); System.out.println( gradi.); /*Calcolatelo su calcolatrice e poi eseguite…la conversione e esatta?? Perche*/

20 20 Eseguiamolo! >> javac ConvertiTemperature.java >>java ConvertiTemperature Inserisci la temperatura in gradi centigradi 0 La corrispondente temperatura in scala farenheit e' di 32 gradi. >> java ConvertiTemperature Inserisci la temperatura in gradi centigradi 37 La corrispondente temperatura in scala farenheit e' di 98 gradi. >>

21 Esercizio 0-CONSIGLIO: FATELO! Realizzare un programma SwappInt che chieda liserimento 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 Loutput dovra essere del tipo: >>java SwappInt Inserisci il valore di x (output programma) 7 (input utente) Inserisci il valore di y (output programma) 3 (input utente) Valori inseriti: x=7 e y=3 (output programma) Swap dei valori di x e y… (output programma) Valori dopo lo swap: x=3 e y=7 (output programma)

22 22 Esercizio 1 Realizzare un programma AltezzaRettangoloInterattivo che legga l'area e la base di un rettangolo, e ne calcoli e 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. Numeri reali Scrivete un programma che richiede allutente 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!

23 23 Esercizio 2a 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. Esercizio 2b

24 24 Scrivere un programma CentraNomi che stampi a video il vostro nome e cognome centrandoli in un rettangolo di dimensioni opportune, costruito utilizzando i simboli - e |. Ad esempio | | | unNome | | unCognome | | | Attenzione! Questo programma non deve accettare alcun input da tastiera: i vostri nomi devono essere scritti direttamente nel sorgente JAVA. Esercizio 3

25 Esercizio 4 Scrivere un programma che: –chieda linserimento delle età dei vostri genitori (utilizzerà le classi Scanner e System.out per i comandi di I\O). –calcoli e stampi la somma e la media delle età. –calcoli e stampi la somma (e la media) delle età che i genitori avevano n anni fa (dove il valore della variabile n è chiesto allutente).


Scaricare ppt "Primi programmi in Java Lezione II. 2 Il processo di sviluppo Passo 1: scrivere il programma –Software: un qualsiasi text editor Passo 2: compilare il."

Presentazioni simili


Annunci Google