Ciao a tutti, vorrei chiedervi aiuto su un esercizio che non riesco a risolvere. Devo pregettare una classe che implementa Polinomi, e fin qui nulla di difficoltoso.. Essendo per definizione un tipo di dato immutabile, rappresento il polinomio come un vettore di interi.
per chiarezzaecco una parte della classe e il costruttore:
codice:
private int[] termini;
private int grado;
public Poly (int c, int n) throws NegativeExponentException{
// POST:if n<0 solleva l'eccezione NegativeExponentException
// altrimenti inizializza this al polinomio cx^n
if (n<0) throw new NegativeExponentException("Poly(int,int) constructor");
if (c==0){termini=new int[1];grado=0;return;}
termini=new int[n+1];
for (int i=0;i<n;i++) termini[i]=0;
termini[n]=c;grado=n;
}
Il mio problema è questo: il coefficiente nel mio caso non deve essere un intero, ma un tipo di dato Razionale , precedentemente implementato in un'altra classe (che ha due campi privati interi, numeratore e denominatore) e il prototipo del mio costruttore deve essere
codice:
public Poly (Razionale r, int n)
Non riesco a capire come posso ad esempio fare il testo sul Razionale nullo, non accedendo ai campi privati.. e come andare successivamente a memorizzare il razionale nel vettore di interi. Non posso fare un cast in quanto int e razionale non sono nella stessa gerarchia, e non posso modificare la classe Razionale; allo stessomodo non ha senso creare un vettore di Razionali per memorizzare il polinomio....
Come fare? Grazie a chi mi risponderà!