1 / 25

Primi programmi in Java

Primi programmi in Java. Lezione II. 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

beth
Download Presentation

Primi programmi in Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 programma • Software (Compilatore): Java Development Kit (JDK) • Comando:javac HelloWorld.java • ->crea il fileHelloWorld.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. Un package importante Per gestire l’input da tastiera e l’output a video utilizzeremo rispettivamente le classi (fornite nelle Librerie JAVA!!): • Scanner (per l’input) • System.out (per l’output) 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. 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 ambienteCLASSPATH).

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

  6. Salviamo, Compiliamo… • Passo 1: SALVIAMOil 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. 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 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

  8. Eseguiamo! • Passo 3: ESEGUIAMOla 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 d’esecuzione) Hello, world! (output della classe) >> (prompt/shell in attesa di nuovi comandi...)

  9. HelloWorldEsteso.java /* Impariamo a usare le classi di I/O */ import java.util.Scanner; class HelloWorldEsteso{ } } 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. 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 dell’utente) Today is...Monday (output del programma) >> (prompt in attesa di nuovi comandi)

  11. 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); } }

  12. Salviamo, Compiliamo ed Eseguiamo! >>javac AreaRettangolo.java >>java AreaRettangolo L’area e’ 12 >> 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.

  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("L’area e’ "); System.out.println(base*altezza); } }

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

  15. 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 VOI a implementare il programma SENZA guardare la soluzione alla slide seguente.

  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 l’altezza"); int altezza=tastiera.readInt();//UPSI! errorino… System.out.print("L’area e’ "); System.out.println(base*altezza); } }

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

  18. Fahrenheit -40 0 40 80 120 -40 -20 0 20 40 Celsius Celsius vs. Fahrenheit fahrenheit=celsius* 9/5 + 32 Provate a implementare un programma che converte dalla scala celsius alla scala fahrenheit.

  19. ConvertiTemperature.java (notate l’indentazione!!!!) Scanner in = new Scanner(); int celsius,fahrenheit; // Stesso tipo! Le dichiaro insieme! System.out.print(“Inserisci”); /*Giochiamo con l’output */ 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’*/ import java.util.Scanner(); public class ConvertiTemperature { public static void main(String args[]) { } }

  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 l’iserimento 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 L’output 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. 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 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!

  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. Esercizio 3 • 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.

  25. Esercizio 4 • Scrivere un programma che: • chieda l’inserimento 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 all’utente).

More Related