primi programmi in java lezione ii. 2 il processo di sviluppo passo 1: scrivere il programma...
TRANSCRIPT
![Page 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/1.jpg)
Primi programmi in JavaPrimi programmi in JavaPrimi programmi in JavaPrimi programmi in Java
Lezione IILezione II
![Page 2: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/2.jpg)
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
![Page 3: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/3.jpg)
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 eConsoleOutputManager
fanno parte del package prog.io usato SOLO nel corso di teoria per semplificare la
spiegazione.
![Page 4: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/4.jpg)
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).
![Page 5: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/5.jpg)
5
HelloWorld
/* Impariamo a usare le classi di Output */
class HelloWorld{
public static void main(String args[]) {
System.out.println(‘‘Hello, world!’’);
}
}
![Page 6: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/6.jpg)
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
![Page 7: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/7.jpg)
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
![Page 8: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/8.jpg)
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 d’esecuzione)
Hello, world! (output della classe)>> (prompt/shell in attesa di nuovi comandi...)
![Page 9: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/9.jpg)
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);
![Page 10: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/10.jpg)
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)
![Page 11: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/11.jpg)
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); }
}
![Page 12: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/12.jpg)
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.
![Page 13: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/13.jpg)
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);
}
}
![Page 14: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/14.jpg)
14
Eseguiamolo!
>>javac AreaRettangoloInterattivo.java
>> java AreaRettangoloInterattivo
5
6
L'area e' 30
>>
![Page 15: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/15.jpg)
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.
![Page 16: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/16.jpg)
16
AreaRettangoloAbbellito.javaimport 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);}
}
![Page 17: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/17.jpg)
17
Eseguiamolo!
>>javac AreaRettangoloAbbellito.java>>java AreaRettangoloAbbellitoInserisci la base4Inserisci l'altezza7L'area e' 28
>>
![Page 18: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/18.jpg)
18
Celsius vs. Fahrenheit
Fahrenheit
Celsius
-40
-40
0 40 80 120
-20 0 20 40
fahrenheit =celsius * 9/5 + 32
Provate a implementare un programma che converte dalla scala celsius alla scala fahrenheit.
![Page 19: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/19.jpg)
19
Con
vert
iTem
pera
ture
.java
(nota
te l’in
den
tazi
on
e!!
!!)
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 l’output */
System.out.print(“ la ”);System.out.print(“ temperatura in grad”);System.out.println(“i centigradi”);celsius = in.nextInt(); //lettura input utentefahrenheit = 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’*/
![Page 20: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/20.jpg)
20
Eseguiamolo!
>> javac ConvertiTemperature.java>>java ConvertiTemperatureInserisci la temperatura in gradi centigradi0La corrispondente temperatura in scala farenheit e' di 32 gradi.>> java ConvertiTemperatureInserisci la temperatura in gradi centigradi37La corrispondente temperatura in scala farenheit e' di 98 gradi.>>
![Page 21: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/21.jpg)
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 SwappIntInserisci 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)
![Page 22: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/22.jpg)
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!
![Page 23: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/23.jpg)
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
![Page 24: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/24.jpg)
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
![Page 25: 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](https://reader035.vdocuments.net/reader035/viewer/2022062418/5542eb58497959361e8c3a73/html5/thumbnails/25.jpg)
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).