ESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1:

Documenti analoghi
Geometria figure piane Raccolta di esercizi

Esempio su strutture dati dinamiche: ArrayList

La classe java.lang.object

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Esercitazione n 3. Obiettivi

Esempio su strutture dati dinamiche: ArrayList

Alberi Binario in Java

Fondamenti di Informatica T1 Mappe

Esempio su strutture dati dinamiche: ArrayList

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Programmazione II Compitino (Vers. B)

Ministero della Difesa Direzione Generale per il Personale Militare I Reparto

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Esercitazione n 3. Capacità di analisi e di estensione di progetti esistenti Linguaggio Java:

Ricerca e ordinamento su array di oggetti. Corso di Programmazione 2 Esercitazione 5

Implementazione Java di un ADT

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Esercitazione n 2. Obiettivi

Esempi in Java di program.ne O-O

Definizione di classi

Esercizi Programmazione I

Fondamenti di Informatica T-1

Definizione di classi

14 - Metodi e Costruttori

Esercizio 1 - Componente Matrice (1/3) Esercizio 1 - Componente Matrice (3/3) Esercizio 1 - Componente Matrice (2/3)

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Programmazione con Java

Programmazione II Compitino (Vers. A)

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;

CLASSI ASTRATTE - ESERCIZIO

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

LA CIRCONFERENZA e IL CERCHIO

TIPI PRIMITIVI: LIMITI

18 - Classi parzialmente definite: Classi Astratte e Interfacce

Corso di Matematica - Geometria. Geometria - 0. Ing. L. Balogh

ANGOLO AL CENTRO ANGOLO ALLA CIRCONFERENZA

Liceo Scientifico Statale ALBERT EINSTEIN Milano

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Riassunto. La programmazione OO. Oggi. Esempio

Ereditarietà (ultima)

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

POLIGONI INSCRITTI E CIRCOSCRITTI A UNA CIRCONFERENZA

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Risolvi i seguenti problemi scrivendo dati, richiesta, figura e svolgimento come negli esempi sottostanti.

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

Teorema di Pitagora. Triangoli con angoli di 45, 30 e 60. Eserciziario con soluzioni. - 1

L AREA DELLE PRINCIPALI FIGURE DELLA GEOMETRIA PIANA

I TRIANGOLI AB < AC + BC

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Metodi statici. Dichiarazione e chiamata di metodi statici

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Laboratorio di Programmazione 1 [Java]

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

16 - Ereditarietà, tipi e gerarchie

Corso di Algoritmi e Strutture Dati con Laboratorio. Tipi di dato pila e coda

1) Claudio ha 45 biglie colorate e ne regala 1/3 alla sua migliore amica. Con quante biglie gli restano? 2) Ho letto i sette decimi di un libro di

I TRIANGOLI AB < AC + BC

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Uso di metodi statici. Walter Didimo

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.

Programmazione ad oggetti

I PARALLELOGRAMMI Si dice PARALLELOGRAMMA un quadrilatero avente i lati opposti paralleli a due a due.

Programmazione orientata agli oggetti Classi astratte e interfacce

Classe Vettore (i) Creare una classe che consenta di gestire un vettore di N elementi reali (double), che preveda i seguenti metodi:

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1.

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati

Programmazione II Compitino (Vers. B)

Fondamenti di Informatica L-B Esercitazione n 5 Java: Interfaccia Comparable, Array

Introduzione al C++ Corso di C++ INFN LNS 13 Dicembre Corrado Santoro

La classe Object. L2-Linguaggi di Programmazione II-unina 1

PROBLEMI DI GEOMETRIA SUL CERCHIO

Confronti, equals. Operatori Relazionali, confronti Confronti fra Oggetti, ridefinizione di equals. Laboratorio di Programmazione - Luca Tesei

Le caratteristiche dei poligoni. La relazione tra i lati e gli angoli di un poligono. Definizioni

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Esercizi di ricapitolazione

Laboratorio di Programmazione Lezione 3. Cristian Del Fabbro

Programmazione in Java (I modulo)

3. Il sistema dei tipi I tipi wrapper

Il Linguaggio Java. Le interfacce

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

ESERCIZIO 1 (FILE DI TESTO)

01. Se il raggio di un cerchio dimezza, la sua area diventa: a) 1/3 b) 1/4 c) 3/2 d) 1/5

Problemi di geometria

Specifica: la sintassi. Specifica: la semantica. Specifica: la semantica

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Problemi di geometria

Stringhe. In C le stringhe ben formate sono in realtà array di caratteri terminati sempre da un carattere speciale, \0, detto anche

SIMULAZIONI TEST INVALSI

public BankAccount() { balance = 0; } public BankAccount(double initialbalance) { balance = initialbalance; }

Linguaggi di programmazione II AA 2010/2011 Esercitazione 2

Input. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

REGOLA DELLA SEMPLIFICAZIONE DELLE AREE

Indice. Prefazione. 3 Oggetti e Java 53

La programmazione ad oggetti (OOP)

COMPITI DI MATEMATICA PER LE VACANZE

TEOREMA DI PITAGORA Pg. 1 TEOREMA DI PITAGORA. c² = a² + b². TRIANGOLO RETTANGOLO a = cateto minore b= cateto maggiore c= ipotenusa

Transcript:

ESERCIZI JAVA Esercizi sulle Interfacce Esercizio 1: Java mette a disposizione un'interfaccia chiamata Comparable. Quando un oggetto implementa questa interfaccia esso può implementare un metodo chiamato compareto che restituisce un valore intero a variazione dei seguenti casi: >0 se l'attuale valore è maggiore di quello passatogli come parametro =0 se l'attuale valore è uguale a quello passatogli come parametro <0 se l'attuale valore è minore di quello passatogli come parametro Si vuole dunque scrivere una classe Quadrato che implementi i seguenti metodi: public int getlato() //restituisce il valore del lato del quadrato public void setlato(int lato) //riscrive il valore del lato del quadrato la classe Quadrato deve inoltre implementare l'interfaccia Comparable, e con essa, il metodo compareto(object q). Il metodo compareto nella classe Quadrato comparerà i lati dei quadrati, e restituirà un valore intero a variazione dei casi come detto precedentemente. Scrivere il costruttore della classe Quadrato a proprio piacimento. Esercizio 2: Scrivere una classe Punto con le seguenti caratteristiche: public Punto(int x, int y) //costruttore public int getx() //restituisce la coordinata X public int gety() //restituisce la coordinata Y public boolean isorigin() //restituisce true se il punto è nella coordinata 0,0 //altrimenti restituisce false public double distance(punto p) //restituisce la distanza fra i due punti public String tostring() //stampa il punto nella forma P(x,y) Scrivere dunque una classe Cerchio con le seguenti caratteristiche: public Punto getcenter() //restituisce il punto del centro della circonferenza public double getradius() //restituisce il raggio della circonferenza public double getdiameter() //restituisce il diametro della circonferenza inoltre implementare nella classe Cerchio l'interfaccia Comparable che compara le circonferenza in base al loro raggio. Scrivere il costruttore della classe Cerchio a proprio piacimento. Esercizio 3: Scrivere un'interfaccia Polygon con i seguenti metodi: ArrayList<Punto> getvertexes() //restituisce i vertici del poligono double area() // restituisce l'area del poligono double perimeter() // restituisce l'area del perimetro Ricordarsi di importare la il pacchetto java.util.* per l'uso delle ArrayList. Per la classe Punto fare riferimento alla classe Punto dell'esercizio 2.

Esercizio 4: Basandosi sulla classe Punto dell'esercizio 2 e sull'interfaccia Polygon dell'esercizio 3 scrivere le seguenti classi che implementano l'interfaccia Polygon: classe Square: public Square(Punto p1, Punto p2, Punto p3, Punto p4) //costruttore public double getside() //ritorna il lato del quadrato public double getdiagonal() //ritorna la diagonale del quadrato classe Rhomb: public Rhomb(Punto p1, Punto p2, Punto p3, Punto p4) //costruttore public double getside() //restituisce il lato del rombo public double getlongdiagonal() //restituisce la diagonale lunga del rombo public double getshortdiagonal() //restituisce la diagonale corta del rombo classe Triangle: public Triangle(Punto p1, Punto p2, Punto p3) //costruttore public double height() //restituisce l'altezza del rettangolo public boolean isisosceles() //restituisce true se il triangolo è isoscele public boolean isequilateral() //restituisce true se il triangolo è scaleno public boolean isscalene() //restituisce true se il triangolo è scaleno Esercizio 5: Usando le classi scritte nell'esercizio 4 scrivere una classe Test che fa le seguenti operazioni: Crea un'arraylist di Polygon (riempire l'arraylist con poligoni di proprio gusto) Mostra le aree dei vari poligoni Mostra i perimetri dei vari poligoni Mostra la posizione dei vari vertici dei poligoni Identifica i vari poligoni (usare l'operatore instanceof) Se il poligono è... un quadrato, stampare la misura della diagonale un rombo, stampare la misura delle due diagonali un triangolo, dire se il triangolo è isoscele, equilatero o scaleno Esercizio 6: Definire un'interfaccia Misura con attributi unità di misura e valore; definire i metodi equals() e compareto() (attenzione alle unità di misura!). Creare delle sottoclassi per le misure di lunghezza e peso per poter effettuare confronti più appropriati. Definire anche dei metodi di conversione tra una unità e l'altra (per esempio tra metri e cm). (Suggerimento: definire con costanti intere i valori possibili per le unità di misura). Si ricordano i valori delle seguenti unità di misura... 1 yarda = 0.9144 metri 1 oncia = 28,5 grammi 1 libbrra = 453,6 grammi

Esercizi sulle ArrayList Esercizio 1: Data la seguente classe: public class NumeroNaturale { private int value; public NumeroNaturale(int n){ this.setvalue(n); public NumeroNaturale(){ value=0; public int getvalue() { return value; public void setvalue(int n) { value=n; if(n<0) value=value*(-1); /* Da completare public NumeroNaturale massimo(integer nn){ public NumeroNaturale minimo(integer nn){ */ Creare un array di numeri. Da questo array creare un oggetto di tipo ArrayList<NumeroNatuale> che riceve oggetti del tipo indicato tra i diamond (i diamond sono i simboli < >) e inserirli nell'arraylist. Quindi scrivere il corpo dei metodi massimo() e minimo() della classe NumeroNaturale che restituiscono il maggiore/minore fra il NumeroNaturale attuale e l'integer passato. Se l'integer non è un NumeroNaturale, i metodi massimo() e minimo() restituiscono null.

Esercizio 2: Completare la seguente classe: public class MyStack<E> { private ArrayList<E> stack; public MyStack<E>() { stack = new ArrayList<E>(); // Aggiunge in testa il valore passato come parametro public void push(e elem){ // Restituisce e rimuove il valore in testa allo stack // Se non ci sono elementi nello stack restituisce null. public E pop(){ // Restituisce il numero degli elementi presenti nello stack public int size(){ Dopo avercompletato la classe scrivere una classe TestStack con i seguenti metodi: Dato un numero intero decimale usando la classe MyStack<E> tradurre il numero in binario e stamparlo corretto. Il metodo restituisce un array di interi che saranno le cifre del numero binario. Data una stringa, usando i metodi push e pop della classe MyStack<E> dice se la stringa è palindroma. La classe di wrapper per il tipo primitivo char è Charset. Per ottenere i singoli char della stringa usare il metodo getcharat(int index) della classe String. Se la stringa è palindroma restituisce true.

Data una stringa di parentesi tonde aperte e chiuse, usare i metodi push e pop per controllare che il numero di parentesi aperte e chiuse siano equivalenti e nell'ordine giusto. Si da per certo che la stringa sia fatta di sole parentesi tonde. Se le parentesi sono nell'ordine giusto restituisce true. Esempio: ( () () ) OK ( ( ) ) () ) ( ERRATO Esercizi con sulla creazione di classi e sull'implementazione di metodi privati, pubblici e statici Per ogni classe che creerete, definire sempre: un costruttore che vuole tutti gli attributi come parametri un costruttore che non vuole nessun parametro (costruttore di default) i metodi getter and setter Creare una classe Libro con i seguenti attributi: autore titolo editore Creare una classe Bit con i seguenti attributi: bit (che può avere solo valore 0 o 1) e con i seguenti metodi: void set() //setta il bit a 1 void reset() //setta il bit a 0 void complemento() //fa il complemento del bit (0 1, 1 0) Creare una classe Operazione senza costruttore che implementa i seguenti metodi statici: media(int[] a) media(arraylist<integer> a) minimo(int a, int b) minimo(int[] a) minimo(arraylist<integer> a) massimo(int a, int b) massimo(int[] a) massimo(arraylist<integer> a) fibonacci(int n) In una classe si possono definire più metodi con lo stesso nome, basta che cambi il tipo del parametro (vedi overloading). Esercizi tratti da: Java: la programmazione ad oggetti di Fabrizia Scorzoni.