Problemi per la lezione del 10/12
- [Classe Parabola] Definite una classe Parabola le cui
istanze rappresentano parabole con retta direttrice orizzontale; la classe deve avere i seguenti costruttori e metodi:
- Parabola(): costruisce la parabola y=x^2;
- Parabola(double a, double b, double c): costruisce la parabola y=ax^2+bx+c;
- Parabola(Punto fuoco, Punto vertice): costruisce la parabola con dati fuoco e vertice (che devono avere la stessa ascissa, altrimenti il costruttore deve sollevare un'eccezione);
- double getA(): restituisce il coefficiente del termine di grado 2;
- double getB(): restituisce il coefficiente del termine di grado 1;
- double getC(): restituisce il coefficiente del termine noto;
- boolean equals(Object x): determina se la parabola è uguale a x;
- Punto getVertice(): restituisce il vertice;
- Punto getFuoco(): restituisce il fuoco;
- Retta getDirettrice(): restituisce la retta direttrice;
- boolean y(double x): restituisce il valore y per cui (x,y) appartiene alla parabola;
- boolean passaPer(Punto p): restituisce true sse la parabola passa per p;
- boolean passaPer(Punto[] p): restituisce true sse la parabola passa per tutti i punti dell'array p.
Suggerimento: per questa classe potrebbe essere utile consultare http://mathworld.wolfram.com/.
- [Classe astratta Curva] Definite una classe astratta di nome Curva
che corrisponda a una curva sul piano cartesiano. Questa classe deve avere:
- un metodo astratto boolean passaPer(Punto p) che dice se la curva passa per un punto dato;
- un metodo concreto boolean passaPer(Punto p[]) che restituisce true sse la curva passa per tutti i punti elencati.
- [Classe Parabola] Fate in modo che le classi Parabola e Retta estendano Curva.
- [Metodo arePipppere] Due curve C e C' sono dette pipppere se e solo se esiste un x intero
compreso fra 1 e 10 tale che i punti (x,x) e (2*x,2*x) appartengono a entrambe le curve e il punto (x+1,1.5*x*x) appartiene ad almeno
una delle due curve.
Aggiungete alla classe Curva un metodo statico boolean arePipppere(Curva c1, Curva c2) che date due curve restituisce true sse le curve sono pipppere. Verificate, usando questo metodo che la retta y=x e la parabola y=-3x^2+19x-24 sono pipppere.
- [Classe Iperbole] Definite una classe Iperbole che estende Curva e le cui istanze rappresentano iperboli i cui semiassi giacciono sugli assi cartesiani. Decidete voi di quali costruttori e metodi dotarla.
- [Pacchetto my.geom] Spostate tutte le classi della gerarchia geometrica realizzata in queste ultime lezioni in un pacchetto di nome my.geom, e realizzate una classe Test (nel pacchetto senza nome) che importi e utilizzi alcune della classi e metodi del pacchetto appena creato.