• Non ci sono risultati.

Esercizi aggiuntivi sulla definizione di classi

N/A
N/A
Protected

Academic year: 2021

Condividi "Esercizi aggiuntivi sulla definizione di classi "

Copied!
3
0
0

Testo completo

(1)

Esercizi aggiuntivi sulla definizione di classi

(Fondamenti di Informatica 1 – Walter Didimo) Soluzione

Esercizio 5 Definire una classe di nome EquazioneDiPrimoGrado i cui oggetti rappresentano equazioni di primo grado nella forma ax+b=0.

La classe deve avere i seguenti costruttori e metodi:

/* costruttore: crea un oggetto della classe con i coefficienti specificati */

public EquazioneDiPrimoGrado (double a, double b){….}

/* calcola e restituisce la soluzione dell’equazione */

public double soluzione ( ) {….}

/* reimposta i coefficienti dell’equazione */

public void cambiaCoefficienti (double a, double b) {….}

/* restituisce una descrizione dell’equazione nella forma ax+b=0*/

public String toString( ) {….}

Definire inoltre una classe di prova, chiamata ProvaEquazioneDiPrimoGrado, che permette di verificare la correttezza della classe EquazioneDiPrimoGrado.

Soluzione

class EquazioneDiPrimoGrado{

private double a, b; //coefficienti dell'equazione

/* costruttore: crea un oggetto della classe con i coeff. specificati */

public EquazioneDiPrimoGrado (double a, double b){

this.a = a;

this.b = b;

}

/* calcola e restituisce la soluzione dell’equazione */

public double soluzione ( ) { return (-b/a);

}

/* reimposta i coefficienti dell’equazione */

public void cambiaCoefficienti (double a, double b) { this.a = a;

this.b = b;

}

/* restituisce una descrizione dell’equazione nella forma ax+b=0*/

public String toString( ) { String s = "";

s += this.a + "x " + "+ " + this.b + " = 0";

return s;

} }

(2)

class ProvaEquazioneDiPrimoGrado{

public static void main (String[] args){

/* Fa inserire all'utente i coeff. di una equazione di primo grado all'utente */

InputWindow in = new InputWindow();

double coeffA = in.readDouble ("Coeff. a dell'equazione ax+b=0?");

double coeffB = in.readDouble ("Coeff. b dell'equazione ax+b=0?");

/* Crea un oggetto EquazioeDiPrimoGrado con i coefficienti inseriti dall'utente*/

EquazioneDiPrimoGrado eq = new EquazioneDiPrimoGrado(coeffA,coeffB);

/* Visualizza all'utente l'equazione e la sua soluzione in una finestra grafica */

OutputWindow out = new OutputWindow ("Equazione di primo grado");

out.writeln ("Equazione:" + eq.toString());

out.writeln ("Soluzione: x = " + eq.soluzione());

/* Cambia i coefficienti */

coeffA = in.readDouble ("Imposta un nuovo coefficiente a:");

coeffB = in.readDouble ("Imposta un nuovo coefficiente b:");

eq.cambiaCoefficienti (coeffA,coeffB);

/* Rivisualizza all'utente l'equazione e la sua soluzione in una finestra grafica */

out.writeln ("Nuova Equazione:" + eq.toString());

out.writeln ("Soluzione: x = " + eq.soluzione());

} }

Esercizio 6 Definire una classe di nome Punto, i cui oggetti rappresentano punti nel piano, specificati attraverso due coordinate cartesiane, x ed y.

La classe deve avere i seguenti costruttori e metodi:

/* costruttore: crea un oggetto della classe con le coordinate specificate */

public Punto (double coordX, double coordY) {….}

/* restituisce la distanza tra il punto corrente e quello passato come parametro */

public double distanzaDa (Punto p){….}

/* restituisce true se il punto corrente coincide con quello passato come parametro */

public boolean equals (Punto p){….}

/* restituisce una descrizione sotto forma di stringa del punto corrente */

public String toString ( ){….}

Definire inoltre una classe di prova, chiamata ProvaPunto, che permette di verificare la correttezza della classe Punto.

(3)

Soluzione

class Punto{

private double x,y; // le coordinate del punto

/* costruttore: crea un oggetto della classe con le coordinate specificate */

public Punto (double coordX, double coordY){

this.x = coordX;

this.y = coordY;

}

/* restituisce la distanza tra il punto corrente e quello passato come parametro */

public double distanzaDa (Punto p){

double dist;

dist = Math.sqrt(Math.pow((this.x - p.x),2) + Math.pow((this.y - p.y),2));

return dist;

}

/* restituisce true se il punto corrente coincide con quello passato come parametro */

public boolean equals (Punto p){

return ((this.x == p.x) && (this.y == p.y));

}

/* restituisce una descrizione sotto forma di stringa del punto corrente */

public String toString (){

String s = "(" + this.x + "," + this.y + ")";

return s;

} }

class ProvaPunto{

public static void main (String[] args){

InputWindow in = new InputWindow ();

/* chiede i dati all’utente */

double p1x = in.readDouble ("Inserisci coordinata x del primo punto");

double p1y = in.readDouble ("Inserisci coordinata y del primo punto");

double p2x = in.readDouble ("Inserisci coordinata x del secondo punto");

double p2y = in.readDouble ("Inserisci coordinata y del secondo punto");

/* crea i punti */

Punto p1 = new Punto (p1x,p1y);

Punto p2 = new Punto (p2x,p2y);

/* visualizza distanza e risultato del confronto */

OutputWindow out = new OutputWindow();

out.writeln ("Distanza tra " + p1 + " e " + p2 + " = " +

p1.distanzaDa(p2));

out.writeln ("Punti uguali: " + p1.equals(p2));

} }

Riferimenti

Documenti correlati

Completare la seguente uguaglianza in una delle due forme equivalenti, usando il simbolo di sommatoria:. f

Dire se le seguenti funzioni sono pari o dispari (salvo diverso avviso, ipotizzare che il dominio di ogni funzione coincida con il suo insieme di esistenza).. Funzione né pari

 chiedere in input un colore e calcolare e visualizzare il perimetro di tutti i poligoni contenuti nel vettore che sono di quel colore, visualizzando anche

Uno sportello ha come dati membro una coda (queue) di persone (ogni persona è rappresentata con un carattere), se è aperto (true/false) ed il nome di un file..

private Parola chiave del linguaggio Java; si mette di solito davanti alla definizione di una variabile di istanza o di classe per indicare che tale variabile è accessibile solo

La classe ContoCorrente ha inoltre una variabile statica, di nome massimoScoperto, che indica (in valore assoluto) il massimo valore di scoperto consentito per ogni conto corrente

a) Esiste indipendenza distributiva? In caso di risposta negativa costruire la tabella delle frequenze congiunte in modo che i caratteri X e Y risultino indipendenti in

Calcolare, utilizzando le ponderazioni opportune quando necessario, la media aritmetica di Superficie vitata, Età media delle viti, Densità di impianto e Resa