Esercizi
1. Scrivere un programma che dopo aver generato un numero casuale compreso tra 0 e 99
chiede all’utente di indovinare il numero dandogli 6 possibilità, ad ogni tentativo indica se il
numero inserito è più basso o più alto del numero da indovinare, se indovina il numero
stampa la scritta "indovinato, era =" seguito dal numero random, altrimenti alla fine dei sei
tentativi stampa "Numero di tentativi esaurito il numero da indovinare era =" seguito dal
numero random.
− Per generare il numero casuale si può usare la classe Random contenuta nel package
java.util (attenzione a fare l’import)
il Costruttore è Random()
Il metodo
public int nextInt(int n)
restituisce un numero casuale tra 0 (compreso) e n (escluso)
Quindi ogni volta che si richiama il metodo verrà restituito un numero intero a caso
compreso tra 0 e n-1
2. Modificare il programma dell’esercizio 1 in modo che alla fine della prova (6 tentativi)
permetta all’utente di decidere se continuare a giocare o uscire dal programma, se decide di
continuare deve essere generato un nuovo numero e riproposte le 6 possibilità.
3. Scrivere un programma per calcolare il numero più grande tra 5 numeri digitati dall’utente
− Per richiedere per 5 volte il numero da confrontare si può usare il metodo
int richiediNumero(String richiesta) della classe Interfaccia Console
La Classe InterfacciaConsole ha
Il metodo costruttore InterfacciaConsole()
Ed il seguente metodo:
int richiediNumero(String richiesta)
Stampa a video la stringa di richiesta di digitazione di un numero passatagli per
parametro e restituisce il numero digitato dall’utente se si verificano errori restituisce –1
4. Modificare il programma dell’esercizio 3 richiedendo all’utente quanti numeri vuole
confrontare e poi richiedere e confrontare tali numeri.
Soluzioni
Esercizio1
import java.util.Random;
class IndovinaNumero{
public static void main(String args[]){
Random generatore =new Random();
InterfacciaConsole myInterfaccia= new InterfacciaConsole();
int estratto,sel,tentativi=0; boolean indovinato=false;
estratto= generatore.nextInt(100);
do{
sel=myInterfaccia.richiediNumero("Indovina il numero da 0 a 100:");
if(sel<estratto)
System.out.println(sel+"e' troppo basso");
else
if(sel>estratto)
System.out.println(sel+"e' troppo alto");
else {
System.out.println("indovinato, era ="+estratto );
indovinato=true;
}
tentativi++;
}while ((indovinato==false) & (tentativi<6));
if (indovinato==false)
System.out.println("Numero di tentativi esaurito il numero da indovinare era ="+estratto);
}
}
Esercizio2
import java.util.Random;
class IndovinaNumero2{
public static void main(String args[]){
Random generatore =new Random();
InterfacciaConsole myInterfaccia= new InterfacciaConsole();
int estratto,sel,tentativi,scelta=1; boolean indovinato;
while(scelta==1){
tentativi=0; indovinato=false; estratto= generatore.nextInt(100);
do{
sel=myInterfaccia.richiediNumero("Indovina il numero da 0 a 100:");
if(sel<estratto) System.out.println(sel+" e' troppo basso");
else if(sel>estratto) System.out.println(sel+" e' troppo alto");
else { System.out.println("indovinato, era ="+estratto );
indovinato=true;}
tentativi++;
}while ((indovinato==false) & (tentativi<6));
if (indovinato==false)
System.out.println("Numero di tentativi esaurito il numero da indovinare era ="+estratto);
scelta=myInterfaccia.richiediNumero("Vuoi riprovare? digita 1 per SI, digita 0 per terminare");
}
}
}
Esercizio3
class Max_N{
public static void main(String args[]){
InterfacciaConsole f = new InterfacciaConsole();
int max= f.richiediNumero("inserisci il numero");
int x;
for(int k=1;k<5;k++){
x= f.richiediNumero("inserisci il numero");
if(max<x) max=x;
//max=max<x?x:max;
// max=Math.max(max,x);
}
System.out.println("il max tra i numeri immessi è"+max);
}
}
Esercizio4
class Max_N{
public static void main(String args[]){
InterfacciaConsole f = new InterfacciaConsole();
int n = f.richiediNumero("quanti numeri vuoi confrontare?");
int max= f.richiediNumero("inserisci il numero");
int x;
for(int k=1;k<n;k++){
x= f.richiediNumero("inserisci il numero");
if(max<x) max=x;
//max=max<x?x:max;
// max=Math.max(max,x);
}
System.out.println("il max tra i numeri immessi è"+max);
}
}
ESERCIZIO CON ARRAY
Esercizio5
Modificare l’esercizio 4 in modo da memorizzare tutti i numeri digitati e prima di stampare il
massimo stampa l’elenco dei numeri digitati dall’utente
Soluzione ESERCIZIO CON ARRAY
Esercizio5
class Max_N_A{
public static void main(String args[]){
InterfacciaConsole f = new InterfacciaConsole();
int n = f.richiediNumero("quanti numeri vuoi confrontare?");
int a[]= new int[n];
for(int k=0;k<n;k++){
a[k]= f.richiediNumero("inserisci il numero");
}
int max=a[0];
for(int k=1;k<n;k++){
if(max<a[k]) max=a[k];
//max= max<a[k]?a[k]:max;
}
System.out.println("il max tra i numeri immessi:");
for(int k=0;k<n;k++) System.out.println(a[k]);
System.out.println("e'"+max);
}
}