Comments
Description
Transcript
Esercizi1 con soluzioni
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); } }