// Clase para manipular polinomios // Antonio Carrillo Ledesma // Se define al polinomio por sus coeficientes, es decir // A0 + A1x^1 + ...+Anx^n // Quedando el arreglo como // A0, A1, ... An public class Poly { // Coeficientes del polinomio private Fraccion []C; // Guarda la dimension del arreglo de coeficientes static final private int Dim = 10; // Constructor de la clase public Poly() { int i; C = new Fraccion [Dim]; for (i = 0; i < Dim; i++) { C[i] = new Fraccion(); } } // Constructor de la clase public Poly(Fraccion []coef) { int i, n = coef.length; C = new Fraccion [Dim]; for (i = 0; i < n; i++) { C[i] = new Fraccion(coef[i]); } for (i = n; i < Dim; i++) { C[i] = new Fraccion(); } } // Constructor de la clase public Poly(Poly a) { int i, n = a.dimension(); C = new Fraccion [Dim]; for (i = 0; i < n; i++) { C[i] = new Fraccion(a.coeficiente(i)); } } // Retorna los coeficientes del polinomio Fraccion coeficiente(int i) { Fraccion r; if (i < Dim) r = C[i]; else r = new Fraccion(); return r; } // Retorna la dimension del arreglo de coeficientes int dimension() { return Dim; } // Visualiza el polinomio public void visualiza() { int i; for (i = 0; i < Dim; i++) { if (C[i].numerador() != 0.0) { System.out.print(" + "); C[i].visualiza(); if (i == 0) continue; System.out.print("X^"); System.out.print(i); } } System.out.println(" "); } // Suma el polinomio A y B public void suma(Poly a, Poly b) { int i; for (i = 0; i < Dim; i++) C[i].suma(a.coeficiente(i), b.coeficiente(i)); } // Funcion Principal .... public static void main(String[] args) { Fraccion []a = new Fraccion[3]; a[0] = new Fraccion(1, 2); a[1] = new Fraccion(2, 2); a[2] = new Fraccion(3, 2); Fraccion []b = new Fraccion[4]; b[0] = new Fraccion(1, 3); b[1] = new Fraccion(2, 3); b[2] = new Fraccion(3, 3); b[3] = new Fraccion(1, 3); Poly A = new Poly(a); A.visualiza(); Poly B = new Poly(b); B.visualiza(); Poly C = new Poly(); C.suma(A, B); C.visualiza(); } }