View Single Post
Old 04-12-2008, 14:34   #5
Xfree
Senior Member
 
L'Avatar di Xfree
 
Iscritto dal: Aug 2001
Messaggi: 9538
Il main potresti cominciare a scriverlo in un altro file sorgente ancora. Ma costruttore non ne dichiari?
Questa è la mia soluzione:

Classe Polinomio
Codice:
public class Polinomio {
	int v[];
	
	public Polinomio(int []v) {
		this.v = new int [v.length];
		System.arraycopy(v,0,this.v,0,v.length);
	}
		
	
	public void stampaFunzione() {
		for (int i = getNumeroCoefficienti() - 1; i >= 0; i--) {
			if (i > 1 && v[i] != 0) {
				if (v[i] > 1)
					System.out.print(v[i] + "x^" + i);
				else
					System.out.print("x^" + i);
			}
			if (i == 1 && v[i] != 0) {
				if (v[i] > 1)
					System.out.print(v[i] + "x");
				else
					System.out.print("x");
			}
			if (i == 0 && v[i] != 0)
				System.out.println(+v[i]);
			if (i >= 1 && v[i - 1] != 0)
				System.out.print(" + ");
		}
	}

	public void valorePolinomio(int x) {
		int ris = v[0];
		for (int i = 1; i < getNumeroCoefficienti() ; i++) {
			int n = v[i] * x;
			ris = ris + n;
			x = x * x;
		}
		System.out.println(ris);
	}
	
	public int getNumeroCoefficienti() {
		return this.v.length;
	}
}
Classe Polinomio2
Codice:
public class Polinomio2 extends Polinomio {
	
	public Polinomio2(int v[]) {
		super(v);
	}
	
	public void calcolaDerivata() {
		int []temp = new int[getNumeroCoefficienti()-1];
		for (int i = getNumeroCoefficienti()-1; i > 0; i--)
			temp[i-1] = v[i]*i;
		v = temp;
		
	}
}
Classe TestPolinomio
Codice:
public class TestPolinomio {
	public static void main(String[] args) {
		int v[] = { 1, 3, 2 };
		int x = 2;
		Polinomio obj = new Polinomio(v);
		System.out.print("La funzione e': ");
		obj.stampaFunzione();
		System.out.print("Per x = " + x + " la funzione risulta --> ");
		obj.valorePolinomio(x);
		Polinomio2 obj2 = new Polinomio2(v);
		System.out.print("La derivata e': ");
		obj2.calcolaDerivata();
		obj2.stampaFunzione();
		System.out.print("Per x = " + x + " la derivata risulta --> ");
		obj2.valorePolinomio(x);
	}
}
Xfree è offline   Rispondi citando il messaggio o parte di esso