Está en la página 1de 2

Estructura de datos para POLINOMIO en C++

Un requerimiento fundamental para implementar correctamente una estructura de datos es que NO SE


DEBE USAR funciones de entrada y de salida del lenguaje; es decir, el código de la estructura de datos no
debe incluir instrucciones de E/S de interfaz ni de consola ni de formularios. Así por ejemplo el código en
C++ de la clase polinomio, no deberá contener instrucciones como cout, cin, printf, scanf, ni objetos
visuales de formulario como ser Edit, StringGrrid, ListBoxt, etc. ni ninguna instrucción de interfaz.

Las instrucciones de E/S se utilizarán solamente en el programa principal o programa usuario de la


estructura de datos, como código propio de estos programas.

La implementación de una estructura puede realizarse mediante el modelo estructurado o bien el modelo
orientado a objetos (POO). Cuando se utiliza el modelo POO, la estructura se puede construir a través de
una o más clases. En el caso de la estructura de datos para polinomios utilizaremos el modelo POO, para lo
cual crearemos una clase que llamaremos “clase Polinomio”.

Una vez implementada la clase para la estructura de datos, debe ser incluir en el código del programa que
la requiere. El esquema siguiente muestra la relación entre la clase y los “programas usuarios”.

ARCHIVO
“ClasePolinomio.h”

class Polinomio {

PROGRAMA EN PROGRAMA CON


CONSOLA FORMULARIOS

#include “ClasePolinomio.h” #include “ClasePolinomio.h”

main() {
{
/*usar métodos de polinomio*/

/*usar métodos de polinomio*/


}

}
Esto significa que el mismo código de la estructura polinomio sin ningún cambio, se puede utilizar en
modo consola o en modo formulario.

Esto cumple con el concepto de Tipo Abstracto de Datos TDA, que dice que una estructura de datos debe
diseñarse a nivel lógico, independiente de la implementación.

Implementación de la estructura Polinomio


El código del programa que le envío está basado en la forma 2 de implementación de la estructura de
datos (que se explicó en las diapositivas). Esta estructura usa una clase llamada “Polinomio” que contiene
las dos partes fundamentales de una clase:

Atributos

Métodos

En los atributos tenemos el contenedor de datos que es un vector de float, y dos propiedades de un
polinomio: número de términos y grado, además tenemos un indicador que es el índice actual del vector
que va indicando cuantos pares de valores (coef, exp) tiene el polinomio en cada momento. También
contiene dos funciones utilitarias que necesita la lógica de la estructura.

Los métodos de la clase polinomio son de varios tipos, según su utilidad; así tenemos los constructores, los
modificadores, los consultores, y los más importantes, los métodos propios o de manipulación. Cabe hacer
notar que la lógica de los métodos de la clase es creada por el razonamiento del programados (en este caso
del profesor), por lo tanto, puede variar de programador a programador; es decir, cada uno puede utilizar
su propia lógica. Por ejemplo, la lógica de la suma de polinomios P y Q que se utilizó, consiste en lo
siguiente:

Sumar cada término de Q con el correspondiente término de P, siempre


que sean términos semejantes, si no hay un término semejante en P,
entonces se añade un nuevo término a P, hasta terminar con todos los
términos de Q. La suma se encontrará en el polinomio P, que será
retornado como resultado del método.

Esto es una manera de razonamiento que no es única y que cada programador puede realizar su método
según su propia lógica, pero lo importante es que se obtenga en resultado correcto. De esta forma, cada
método obedece a la lógica de cada programador.

Un concepto teórico importante es que los algoritmos o métodos deben ser lo más sencillos posible, sin
necesidad de complicarse; esto se refleja en un pequeño número de instrucciones y en utilizar la menor
cantidad de variables posible.

Por ejemplo, en el caso del ejemplo polinomio, el método “derivar” solo requiere de siete instrucciones, el
resto de los métodos siguen la misma idea.

También podría gustarte