Title | Esercizi e Soluzioni uso Oggetti |
---|---|
Course | JAVA MODULO A |
Institution | Università degli Studi di Roma Tor Vergata |
Pages | 10 |
File Size | 255.7 KB |
File Type | |
Total Downloads | 115 |
Total Views | 161 |
esercizi con soluzioni uso oggetti...
Esempi visti a lezione Esempio1 La Classe InterfacciaConsole ha - Il metodo costruttore InterfacciaConsole() Ed il seguente metodo: - int richiediNumero(String richiesta) che 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 Utilizzare la classe per chiedere all’utente di digitare un numero, leggerlo e stamparlo. Esempio2 Utilizzare la classe InterfacciaConsole per richiedere all’utente di inserire due numeri x e y e confrontarli se y>x il programma stampa la scritta il max e' y altrimenti se x>y stampa la scritta il max e' x altrimenti stampa la scritta x=y. Esempio3 Sapendo che la classe Televisore ha il seguente costruttore: Televisore(int pollici) ed il metodo: String getMarca() che restituisce la marca del televisore Scrivere le istruzioni per istanziare un oggetto di tipo Televisore e poi richiamare il metodo getMarca per stampare la marca. Esempio4 Sapendo che la classe Disco ha il seguente costruttore • Disco(String Autore, int giri) ed i metodi • int getGiri() che restituisce il numero di giri del disco • void setTitolo(String canzone, int p) che definisce il nome della canzone in posizione p Scrivere le istruzioni per istanziare un oggetto di tipo Disco con autore Renato Zero e numero i giri 33 e poi richiamare il metodo setTitolo per impostare la canzone “Chiedi” in posizione 1 quindi richiamando il metodo getGiri stampare il numero di giri del disco. Esempio5 Supponendo di avere la classe Poligono avente il seguente costruttore: • Poligono(int numeroLati , double lato) numeroLati = numero dei lati del poligono lato = la lunghezza dei lati (che sono tutti uguali) La classe Poligono ha come metodi: • double perimetro() che calcola il perimetro del poligono • void stampa() che stampa il numero dei lati del poligono e il valore del lato Scrivere la classe UsoPoligono.java che istanzia un oggetto di tipo Poligono con primo parametro pari a 4 e secondo parametro 6,8. Richiamare i metodo perimetro visualizzando a video il perimetro e stampare il numero dei lati e il loro valore richiamando il metodo stampa. Esempio6 Considerando classe String con costruttore: String (String str) Istanziare un oggetto di nome x e di tipo String con parametro iniziale “istanziare oggetti usando new” Utilizzare il metodo int length() per stampare a video la lunghezza dell’oggetto appena istanziato 1
Creare un nuovo oggetto y di tipo String ottenuto come sottostringa di x prendendo gli ultimi 3 caratteri da lunghezza stringa -3 a lunghezza stringa, chiedendo a x di eseguire il metodo String substring(int beginIndex, int endIndex) Creare un nuovo oggetto z di tipo String usando il metodo String replaceAll(String regex, String replacement) passandogli come parametro istanziare e nuovi Stampare le tre stringhe separate dalla stringa “ - ” Esempio7 Modificare l’esempio2, determinando il massimo utilizzando la classe Math con il metodo statico static int max(int x, int y) che restituisce il massimo tra i due numeri interi passati come parametri. Utilizzare la classe InterfacciaConsole per richiedere due numeri x e y verificare se x=y, se è vero stampare la scritta x=y altrimenti calcolare il massimo tra x e y e stampare la scritta il max e' seguito dal valore restituito dal metodo max. Esempio8 Scrivere un programma che istanzia una stringa a1 pari a "Prima stringa di prova" ed un’altra stringa a2 pari a "Esercitazione sulle stringhe". Creare una terza stringa x il cui valore è dato dalla concatenazione della sottostringa di a1 da indice 0 ad indice 6 con la sottostringa di 02 da indice 0 ad indice 13, quindi stampare a video il valore della stringa x. Stampare a video il valore della stringa x con tutti i caratteri maiuscoli. Stampare a video verticalmente la stringa a1, stampando un carattere per riga. [considerare i metodi della classe String: - String substring(int beginIndex, int endIndex) restiuisce la sottostringa della stringa che esegue il metodo, che va dall’indice beginIndex a endIndex-1 - String toUpperCase() restiuisce la stringa ottenuta dalla stringa che esegue il metodo, che va dall’indice beginIndex a endIndex-1 -
char charAt(int index) restituisce il carattere presente nella stringa che esegue il metodo all’indice specificato come parametro int length() restituisce la lunghezza della stringa]
Esempio9 Avendo una classe OggStatico che ha 2 attributi: • static int varDiClasse=3; • int varDiIstanza; ed i metodi: • static void metodoStatico() che stampa a video il valore di varDiClasse • void stampa() che stampa a video il valore di varDiClasse e di varDiIstanza Dire cosa stampa il seguente programma: class ProvaStatic { public static void main(String[] args) { OggStatico.metodoStatico(); OggStatico.varDiClasse=7; OggStatico.metodoStatico(); OggStatico o1= new OggStatico(); OggStatico o2= new OggStatico(); o1.varDiIstanza=1; o1.varDiClasse=2; 2
o2.varDiIstanza=3; o2.varDiClasse=4; System.out.println("o1.varDiIstanza="+o1.varDiIstanza); System.out.println("o1.varDiClasse="+o1.varDiClasse); System.out.println("o2.varDiIstanza"+o2.varDiIstanza); System.out.println("o2.varDiClasse"+o2.varDiClasse); o1.stampa(); o2.stampa(); }}
Esercizi Esercizio1 Scrivere un programma per calcolare il numero più grande tra 5 numeri digitati dall’utente − Per richiedere 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 Il programma richiede il primo numero e lo pone come il numero più grande, poi richiede per 4 volte di inserire un numero che confronta con il numero più grande determinato in precedenza, se è maggiore sostituisce il numero più grande con il numero appena inserito altrimenti non fa nulla. Ala fine stampa il valore del numero più grande. Esercizio2 Modificare il programma dell’esercizio 1 richiedendo all’utente quanti numeri vuole confrontare e poi richiedere e confrontare tali numeri. Esercizio3 Scrivere un programma che dopo aver generato un numero casuale compreso tra 0 e 100 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) 3
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
Esercizio4 Modificare il programma dell’esercizio 3 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à.
4
Soluzioni Esempio1 class Esempio1{ public static void main (String args[]) { InterfacciaConsole interf; interf = new InterfacciaConsole(); int x; x=interf.richiediNumero("digitare il numero x"); if(x==-1) System.out.println("errore"); else System.out.println("il numero inserito e': "+x); } } Esempio2 class Confronto{ public static void main (String args[]) { InterfacciaConsole interf; interf = new InterfacciaConsole(); int x,y; x=interf.richiediNumero("digitare il numero x"); y=interf.richiediNumero("digitare il numero y"); if(x>y) System.out.println("il max e' x"); else if(x...