#!/usr/bin/python # -*- coding: utf-8 -*- """ Bosquejo de un programa para manipular polinomios Autor: Antonio Carrillo Ledesma """ class Poly: C = [] # Coeficientes del polinomio Dim = 0 # Guarda la dimension del arreglo de coeficientes def __init__(self, coef): """Cosntructor de la clase""" self.Dim = len(coef) self.C = [0 for i in range(self.Dim)] for i in range(self.Dim): self.C[i] = coef[i] def __str__(self): """Visualiza el polinomio""" r = "" for i in range(self.Dim): if self.C[i] != 0: r += " + " + str(self.C[i]) if i == 0: continue r += "X^" + str(i) return r def visualiza(self): """Visualiza el polinomio""" print(self) def grado(self): """Grado del polinomio""" for i in range(self.Dim - 1, 0, -1): if self.C[i] != 0.0: return i return 0 def suma(self, a, b): """suma polinomios""" n1, n2 = a.Dim, b.Dim self.Dim = n1 + n2 self.C = [0 for i in range(self.Dim)] if n1 > n2: for i in range(n2): self.C[i] = a.C[i] + b.C[i] for i in range(n2, n1): self.C[i] = a.C[i] else: for i in range(n1): self.C[i] = a.C[i] + b.C[i] for i in range(n1, n2): self.C[i] = b.C[i] def multiplica(self, a, b): """multiplica polinomios""" self.Dim = a.Dim + b.Dim self.C = [0 for i in range(self.Dim)] for i in range(a.Dim): for j in range(b.Dim): self.C[i + j] += a.C[i] * b.C[j] """ Prueba de las clases """ if __name__ == "__main__": a = Poly([1.0, 2.0, 3.0]) a.visualiza() b = Poly([4.0, 3.0, 6.0, 1.0]) b.visualiza() c = Poly([0.0]) c.suma(a, b) c.visualiza() print(c.grado())