Primi Programmi Java - Home di homes.di.unimi.it

annuncio pubblicitario
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).
Scarica