Fondamenti di informatica T-A
Esercitazione 2 : Linguaggio Java, basi e
controllo del flusso
AA 2012/2013
Tutor : Domenico Di Carlo
<[email protected]>
2
Hello World
• Si consiglia caldamente di utilizzare dispositivi rimovibile
per salvare il proprio lavoro (Pennine USB o simili)
• Creiamo un file vuoto e chiamiamolo Esercitazione2.java
• Apriamo il file e scriviamoci dentro il seguente codice :
public class Esercitazione2 {
public static void main(String args[]) {
System.out.println(“Ciao Mondo!”);
}
}
• Ricordiamo che la classe che andiamo a creare deve essere
chiamata allo stesso modo del file nel quale è contenuta !!
Fondamenti di informatica A-K - Domenico Di Carlo
3
Compilazione Hello World
• Ora che abbiamo il nostro primo file sorgente
Esercitazione2.java, proviamo a compilarlo !
• Per compilare, apriamo il prompt dei comandi come abbiamo
visto nella scorsa esercitazione, raggiungiamo il direttorio nel
quale è contenuto il file Esercitazione2.java ed utilizziamo il
seguente comando :
 javac Esercitazione2.java
• Una volta eseguito questo comando, il compilatore java avrà
creato il file Esempio2.class contenente il bytecode della classe
Esempio2.java
• Per lanciarlo, eseguiamo il seguente comando :
 java Esercitazione2
• Nel prompt, dovrebbe apparire la stringa : "Ciao mondo!"
Fondamenti di informatica A-K - Domenico Di Carlo
4
Variabili ed espressioni
• Il linguaggio consente di definire variabili:
int a = 10;
• Di valutare espressioni:
2*a + 1
• Di effettuare assegnamenti:
int b = 2*a +1
• Stampare a video:
System.out.println(“testo”)
System.out.println(“testo” + variabile)
L’operatore “+” permette anche di concatenare stringhe.
Fondamenti di informatica A-K - Domenico Di Carlo
5
Tipo primitivi in Java
• Java conosce di base alcuni tipi di dato. Questi tipi primitivi
sono utilizzabili direttamente, senza nessuna definizione.
• Sono ovviamente necessari per definire variabili,
espressioni, assegnamenti etc.
• Di seguito c'è uno schema riassuntivo
Fondamenti di informatica A-K - Domenico Di Carlo
6
Provate voi !
• Ora che siete diventati degli esperti con Java, provate voi !
• Modificate il file precedente in modo da contenere non più
la stampa a video di «Ciao Mondo» bensì faccia la somma
tra due numeri.
• Definite quindi tre variabili di tipo intero.
▫ Le prime due saranno gli addendi
▫ La terza sarà il risultato della somma delle prime due
• Stampate a video il risultato ottenuto
• Nella prossima slide c'è la soluzione, prova a non sbirciare.
Ne va del vostro esame !!
Fondamenti di informatica A-K - Domenico Di Carlo
7
Avete provato ?
• Ecco la soluzione del semplice esercizio precedente :
public class Somma {
public static void main(String args[]) {
int a = 3;
int b = 4;
int risultato = a + b;
System.out.println("La somma vale: " + risultato);
}
}
Fondamenti di informatica A-K - Domenico Di Carlo
8
Controllo del flusso
• Il codice che noi scriviamo in Java non deve essere così
limitato e monolitico.
• Vengono in nostro aiuti tutti quei costrutti, tutte quelle
strutture sintattiche proprie del linguaggio che permettono
di realizzare alcuni passaggi base della programmazione: vi
sono costrutti per i cicli, per le condizioni, ecc...
• Questo permette di modellare il flusso
di esecuzione a nostro piacere.
Vediamo subito un esempio.
Fondamenti di informatica A-K - Domenico Di Carlo
9
Esercizio
• Scrivere un semplicissimo programma Java che prenda in
input tre numeri interi e li stampi in ordine decrescente.
• La logica da seguire è :
▫ Leggo i 3 numeri
▫ Confronto il primo con il secondo tramite un if e determino il
maggiore dei due. Nell’else determino ovviamente l’altro caso.
▫ Confronto il terzo numero con il maggiore precedentemente
trovato e con il minore precedente.
 Se il terzo è maggiore del maggiore precedentemente trovato vuol dire che il
primo diventa secondo e che il secondo diventa terzo
 Se il terzo è minore del minore precedentemente trovato vuol dire che il primo ed
il secondo rimangono invariati ed il più piccolo tra i tre è proprio il terzo
 L’unico altro caso possibile è che il terzo sia l’intermedio tra i tre e quindi il
secondo deve diventare terzo ed il terzo deve diventare secondo.
• Lo so che sembra complicato detto così ma in realtà è una
sciocchezza vera e propria, vediamo il codice relativo !
Fondamenti di informatica A-K - Domenico Di Carlo
10
Ordinamento decrescente 1/2
import java.util.Scanner;
public class Prova {
public static void main(String args[]){
System.out.println("Inserisci 3 numeri");
Scanner tastiera = new Scanner(System.in);
int a = tastiera.nextInt();
int b = tastiera.nextInt();
int c = tastiera.nextInt();
int primo, secondo, terzo;
if ( a > b ) {
primo =
secondo
}
else {
primo =
secondo
}
a;
= b;
b;
= a;
Fondamenti di informatica A-K - Domenico Di Carlo
11
Ordinamento decrescente 2/2
if ( c > primo ) {
terzo = secondo;
secondo = primo;
primo = c;
}
else {
if ( c < secondo )
terzo = c;
else {
terzo = secondo;
secondo = c;
}
}
System.out.println("I numeri immessi ordinati in ordine decrescente
sono : " + primo +", " + secondo + ", " + terzo);
}
}
Fondamenti di informatica A-K - Domenico Di Carlo
12
Ultimo esercizio
• Dal tabaccaio un utonto arriva e compra cose a caso per
l’ammontare di una certa cifra che chiameremo totale.
• L’utonto paga il totale con una banconota a scelta
• Il tabaccaio cerca di dare il resto all’utonto utilizzando tagli
di banconote più grandi possibile. Quindi, se per esempio
l’utonto deve:
▫ pagare 13 euro ed ha una banconote da 50 euro
▫ non deve ricevere 3 pezzi da 10, 1 da 5 e 2 da 1 euro.
▫ Bensì 1 da 20, 1 da 10, 1 da 5 e 1 da 2.
• Supponiamo per semplicità che i centesimi non esistano
(quindi si usano int e non float) e che la banconota
massima che l’utonto ha a disposizione sia un pezzo da 50
euro.
Fondamenti di informatica A-K - Domenico Di Carlo
13
Provate voi !
• La soluzione sarà pubblicata nei prossimi giorni sul sito del
corso.
Intanto voi arrovellatevi il cervello.
• Tips & tricks :
▫ Acquisire il totale e la banconota dell’utonto con Scanner
▫ Calcolare il resto da dare come totale – banconota
▫ If ( c’èancorarestodadare )
 [dosomething]
▫ Else
 [dosomethingelse ]
Fondamenti di informatica A-K - Domenico Di Carlo
Scarica

Fondamenti di informatica T