Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: istruzioni I/O
•
Esercizio 1.0
modificare il programma precedente:
import java.util.*;
// libreria…utilità di sistema!
public class esempio1_0{
public static void main(String[] args) {
System.out.print("Benvenuto nel mondo Java !");
}
}
In modo tale che stampi a video la seguente stringa
Benvenuto
nel mondo Java !
Fondamenti di Informatica
32
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: istruzioni I/O
• Esempio 1.1
stampare il messaggio ”Inserire un numero con la virgola” a
video, memorizzare in una variabile il valore inserito dall'utente
e stampare di nuovo a video il valore inserito dall'utente.
Istruzioni di output
System.out.println("Stringa da stampare");
System.out.print("Stringa da stampare");
Istruzioni di input
Scanner sc = new Scanner(System.in);
System.out.println("Inserire un numero intero");
a = sc.nextFloat();
// nel caso di numero con la virgola
Fondamenti di Informatica
33
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: istruzioni I/O
•
Esempio 1.1: richiedere un numero e stamparlo
START
Stampa messaggio chiedendo
all’utente l’inserimento di un intero
leggi a
Stampa messaggio visualizzando
il numero inserito
END
Fondamenti di Informatica
34
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: istruzioni I/O
import java.util.*;
// libreria…utilità di sistema!
public class esempio1-1{
public static void main(String[] args) {
int a;
Scanner sc = new Scanner(System.in);
System.out.println("Inserire un numero intero");
a= sc.nextInt();
System.out.println("Il numero e'" + a);
}
}
Fondamenti di Informatica
35
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: istruzioni I/O
• Esercizio 1.1
modificare il programma precedente, in modo tale che richieda
tre numeri, due interi e uno con la virgola(float), e li stampi a
video.
Fondamenti di Informatica
36
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: istruzioni I/O
import java.util.*;
// libreria…utilità di sistema!
public class esempio1-1{
public static void main(String[] args) {
int a,b;
float c, tot;
Scanner sc = new Scanner(System.in);
System.out.println("Inserire un numero intero");
a= sc.nextInt();
System.out.println("Inserire un numero intero");
b= sc.nextInt();
System.out.println("Inserire un numero in virgola
mobile");
c= sc.nextFloat();
System.out.println("Il primo numero e'" + a);
System.out.println("Il secondo numero e'" + b);
System.out.println("Il terzo numero e'" + c);
}
}
Fondamenti
di Informatica
37
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: istruzioni I/O
• Esempio 1.2
chiedere tre numeri da tastiera, due interi e uno con la virgola
(float), usando le istruzioni Java:
Scanner sc = new Scanner(System.in);
System.out.println("Inserire un numero intero");
a= sc.nextInt();
// nel caso di numero intero
b= sc.nextFloat();
// nel caso di numero con la virgola
Effettuare poi la somma dei tre numeri (due interi e un numero
con la virgola).
Infine, stampare il risultato a video (standard output)
System.out.print("La somma vale:
Fondamenti di Informatica
"+tot);
38
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: istruzioni I/O
•
Esempio 1.2: somma tra due numeri interi e un numero con
la virgola
int a,b
float c
float tot
leggi b
START
Stampa messaggio chiedendo
all’utente l’inserimento di un numero
con la virgola
Stampa messaggio chiedendo
all’utente l’inserimento di un intero
leggi c
leggi a
tot = a+b+c
Stampa messaggio chiedendo
all’utente l’inserimento di un intero
Fondamenti di Informatica
Stampa tot
END
39
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: istruzioni I/O
// legge due numeri interi e un numero con la virgola
// tastiera ed effettua la somma
import java.util.*;
da
// libreria…utilità di sistema!
public class esempio1-2{
public static void main(String[] args) {
int a,b;
float c, tot;
Scanner sc = new Scanner(System.in);
System.out.println("Inserire un numero intero");
a= sc.nextInt();
System.out.println("Inserire un numero intero");
b= sc.nextInt();
System.out.println("Inserire un numero in virgola
mobile");
c= sc.nextFloat();
tot = a+b+c;
System.out.print("La somma vale:
"+tot);
}
}
Fondamenti di Informatica
40
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
Strutture di controllo
Fondamenti di Informatica
41
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
• Strutture di controllo: if - else
if (a>b) {
System.out.print(a);
}
else {
System.out.print(b);
}
if (K>10) {
K = K+1;
}
Fondamenti di Informatica
si
a>b
Stampa a
si
no
Stampa b
K>10
no
K=K+1
42
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
• Strutture di controllo: while
int x=0;
int y = 2;
while(x<4) {
x ++;
y = y*y;
}
System.out.print(y);
no
x<4
si
x++
y=y*y
Stampa y
Fondamenti di Informatica
43
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
• Strutture di controllo: do while
int x=0;
int y = 2;
do {
x ++;
y = y*y;
} while(x<4);
System.out.print(y);
x++
y=y*y
x<4
si
no
Stampa y
Fondamenti di Informatica
44
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
• Strutture di controllo: cicli definiti
I=0
for(int I=0; I<10; I++) {
System.out.println(I);
}
no
I<10
si
NB: non è diverso da un while
Stampa I
I++
Fondamenti di Informatica
45
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
• Strutture di controllo: selezione multipla
int choice= sc.nextInt();
switch (choice) {
case 1:
…
break;
case 2:
…
break;
.
.
.
default:
…
break;
choice ==1
….
choice ==2
….
caso default
}
Fondamenti di Informatica
46
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
•
Esempio 2.0:
int voto
START
Stampa messaggio chiedendo
all’utente l’inserimento di un voto
leggi voto
voto >= 60?
si
Stampa “promosso”
END
Fondamenti di Informatica
47
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
// legge un numero intero e stampa il numero più grande
import java.util.*;
// libreria…utilità di sistema!
public class esempio2-0{
public static void main(String[] args) {
int voto;
Scanner sc = new Scanner(System.in);
System.out.println("Inserire un voto");
a= sc.nextInt();
if (voto >= 60) {
System.out.print(“Promosso“);
}
}
}
Fondamenti di Informatica
48
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
•
•
Esercizio 2.0:
completare il programma precedente in modo che se il voto
e' >= 60 venga stampata la scritta “Promosso”, altrimenti
venga stampata la scritta “Bocciato”.
Fondamenti di Informatica
49
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
•
Esercizio 2.0:
int voto
START
Stampa messaggio chiedendo
all’utente l’inserimento di un voto
leggi voto
no
voto >= 60?
Stampa “Bocciato”
Fondamenti di Informatica
si
Stampa “Promosso”
END
50
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
•
•
Esempio 2.1: confronto tra due numeri interi
viene richiesto all'utente di inserire due numeri interi a,b; si
effettua il controllo per verificare quale dei due numeri e'
maggiore e si restituisce la differenza positiva tra i due
numeri.
Fondamenti di Informatica
51
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
•
int a,b
Esempio 2.1: confronto tra due numeri interi
START
si
Stampa messaggio chiedendo
all’utente l’inserimento di un intero
leggi a
Stampa messaggio chiedendo
all’utente l’inserimento di un intero
a>b?
tot = a - b;
no
tot = b - a;
Stampa tot
END
leggi b
Fondamenti di Informatica
52
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
// legge due numeri interi e stampa la differenza positiva
import java.util.*;
// libreria…utilità di sistema!
public class Esempio2_1
{
public static void main(String[] args) {
int a,b,tot;
Scanner sc = new Scanner(System.in);
System.out.println("Inserire un numero intero");
a= sc.nextInt();
System.out.println("Inserire un numero intero");
b= sc.nextInt();
if (a>b) { tot = a-b; }
else
{ tot = b-a; }
System.out.print("La differenza positiva tra i due numeri è:
" + tot);
}
}
Fondamenti di Informatica
53
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
•
•
Esercizio 2.2: confronto tra due numeri interi
viene richiesto all'utente di inserire due numeri interi a,b; si
effettua il controllo per verificare quale dei due numeri e'
maggiore e si restituisce la differenza positiva tra i due
numeri.
DA SVOLGERE UTILIZZANDO L'ISTRUZIONE DI
CONTROLLO “if then”
Fondamenti di Informatica
54
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
•
•
Esercizio 2.3: inversione di una stringa
viene richiesto all'utente di inserire una stringa; la stringa
data in input deve essere ricopiata, invertendola, in una
nuova variabile di tipo stringa. La stringa di output deve
cioe' avere come primo carattere l'ultimo carattere della
stringa di input e cosi' via per tutti gli altri caratteri.
Fondamenti di Informatica
55
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
•
Esempio 2.3: inversione di una stringa
String sin, sout
i=0
START
i<lung sin
stampa sout
sout = vuota
END
Stampa messaggio chiedendo
all’utente l’inserimento di una stringa
incolla in testa a sout
carattere i-mo sin
leggi sin
i=i+1
Fondamenti di Informatica
56
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
// inverte una stringa
import java.util.*;
public class Esempio2_3{
public static void main(String[] args) {
String sin, sout;
sout="";
Scanner sc = new Scanner(System.in);
System.out.println("Inserire una stringa arbitraria");
sin= sc.nextLine();
for (int i=0; i<sin.length();i++) {
sout = sin.charAt(i)+sout;
}
System.out.print(sout);
}
}
Fondamenti di Informatica
57
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
•
•
Esempio 2.4: si chiede all'utente una stringa di input. Deve
essere restituita una nuova stringa di output che contiene la
stessa stringa di input a cui sono state eliminate le vocali, sia
esse maiuscole o minuscole. Per semplicita' non si considerano
le vocali accentati.
Suggerimento: creare una stringa ad uso interno che contenga
tutte le vocali: aeiouAEIOU
Fondamenti di Informatica
58
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
•
Esempio 2.4: conteggio ed eliminazione delle vocali di una
stringa
int contatore
String sin, sout, vocali
i=0
START
no
si
END
si
Stampa messaggio chiedendo
all’utente l’inserimento di una stringa
leggi sin
stampa sout
e contatore
i<lung sin
vocali = “aeiouAEIOU”
sout = vuota
contatore = 0
carattere i-mo
sin!= vocale?
incolla in coda a sout
carattere i-mo sin
no
contatore ++
i=i+1
Fondamenti di Informatica
59
Università di Sassari Dipartimento PolComIng - A.A. 2015-2016
Fondamenti del linguaggio: strutture di controllo
// conta ed elimina le vocali di una stringa
import java.util.*;
public class Esempio2_3{
public static void main(String[] args) {
String vocali, sin, sout;
int contatore=0;
vocali = "aeiouAEIOU";
sout="";
Scanner sc = new Scanner(System.in);
System.out.println("Inserire una stringa arbitraria");
sin= sc.nextLine();
for (int i=0; i<sin.length();i++) {
if (vocali.indexOf(sin.charAt(i))== -1) {
sout = sout+sin.charAt(i);}
else {contatore++;}
}
System.out.println("contate ed eliminate "+ contatore + " vocali");
System.out.print(sout);
}
}
Fondamenti di Informatica
60