Facultad de Ingeniera
Escuela de Informtica
Ingeniera Civil en Informtica
LABORATORIO N1
Estructuras de Datos Lineales: Aritmtica de Polinomios
Algoritmos y Estructuras de Datos
TABLA DE CONTENIDOS
1. INTRODUCCIN.
2. TDA POLINOMIOS
11
4. MANUAL DE USUARIO
12
5. REFERENCIAS BIBLIOGRFICAS.
13
1. INTRODUCCIN.
El presente informe expone el desarrollo del primer laboratorio realizado en la asignatura
de Algoritmos y Estructuras de Datos. Concretamente consiste en hacer un programa que permita
realizar ciertas operaciones sobre dos polinomios escritos en lenguaje matemtico en un archivo
de texto. El programa construido est escrito en el lenguaje de programacin C (Kernighan &
Ritchie, 1991).
Es importante recordar que si p(x) es un polinomio en la variable x, su expresin
matemtica correspondiente ser:
n
p ( x ) = ai x
i=0
5 x +32 x + 9 x
, en el archivo de texto
1 En el enunciado de este trabajo se establece que los coeficientes de cada polinomio de entrada, sern
enteros positivos.
3
2.
TDA POLINOMIOS
Campo coef
0
Campo exp
P ( x )=3 x + 8 x +4
Figura 2.1. Ejemplo de un polinomio (izquierda) y su correspondiente representacin mediante listas dinmicas
simplemente enlazadas (derecha).
Siendo esta la estructura para poder tener en cada nodo un trmino del polinomio con su
respectiva base y exponente. Con eso cada expresin del polinomio puede ser usado en las distintas
2.3
ALGORITMOS
DE
OPERACIONES
CONSTRUCTORAS,
MODIFICADORAS
ANALIZADORAS
Se trabaj con distintas funciones las cuales permiten trabajar con las listas de manera
ms rpida y sencilla. Para cada necesidad se implement una funcin, algunas funciones fueron
sacadas del apunte funciones rescatadas del ejemplo "lista simplemente enlazadas" y
5
2.2.1
Operaciones Analizadoras
En cuanto a lo que se dice operacin analizadora, casi todas las funciones tienen
comparativos para poder trabajar ambos polinomios, es decir, gran parte de las funciones
compara los exponentes de los polinomios para sumar o restar. O bien algunas funciones con las
que se trabajaron, analizan el exponente que posee un trmino determinado del polinomio para
as poder ordenar de mayor a menor. Tambin cuando se requiere derivar se analiza el exponente
porque este es el de mayor importancia en la derivacin.
Cada operacin analizadora que realizan las funciones, va definida por unas cuantas lneas
de cdigo que no son muy extensas. Ms que nada son comparaciones mediante IFs los cuales
pueden ser vistos en las funciones que van ser explicadas ms adelante en el apartado 2.2.1 y
tambin en el apartado 2.2.2
Figura 2.4 en la cual se muestra el algoritmo para sumar cada nodo que contenga los
mismos exponentes.
En cuanto al algoritmo de la resta, es similar al de la suma. Solo cambian algunas lneas de
cdigo para poder restar los trminos semejantes de cada polinomio.
Lista Lista_DERIVADA(Lista P)
{
Lista aux, aux_der;
aux_der = Lista_INICIA();
MIENTRAS(P != NULL)
{
aux->bas = P->bas * P->exp;
aux->exp= P->exp - 1;
aux_der=Lista_INSERTAR(aux_der, aux->bas, aux->exp);
P = P->sig;
}
retornar aux_der;
}
Figura 2.5 donde se muestra el algoritmo de derivacin.
Por ende en las tres operaciones modificadoras se trabaja con los nodos de forma independiente
unos de otros. En cuanto a suma y resta existe una comparacin entre el polinomio uno y el dos,
para as poder determinar los trminos semejantes entre ambos y poder trabajarlos segn la
funcin lo requiera. No as en la derivacin, donde se trabaja cada polinomio por separado y a su
vez tambin cada nodo separado, derivando cada nodo sin sumar ni estar nada entre ellos.
10
3.
CONCLUSIONES.
A modo de conclusin se puede decir que el hecho de tokenizar cada nodo, hace que el trabajo
sea ms ordenado y ms sencillo a la hora de trabajar en las funciones.
Tambin se puede decir que en cuanto a la hora de programar la funcin derivacin es mucho
ms sencilla en cuanto a las dems. Si bien la idea de tokenizar cada trmino lo hace ms fcil
para trabajar con los trminos, programarla es de mucha mayor dificultad.
Por ltimo el hecho de trabajar con funciones matemticas hace que sea un poco ms fcil de
entender la problemtica, porque se lleva algo conocido a la programacin. Creando as un mayor
entendimiento de las listas enlazadas simples que fue con las cuales se trabaj. A la hora de
trabajar con algo conocido hace que sea ms llevadera la programacin y de una manera ms
fcil, tambin el uso de diagramas o representaciones graficas ayuda mucho a crear una idea
antes de entrar a programar directamente.
11
4.
MANUAL DE USUARIO
El programa es una ejecucin simple, ya que este carece de un men y aplica todas funciones de
inmediato a los polinomios ingresados en el archivo de texto.
Entonces como primer paso esta ingresar trminos al archivo de texto llamado datos.txt de la
siguiente manera:
Una vez ingresado los datos, se puede ejecutar el programa que muestra los siguientes resultados
para el caso de prueba con los datos de la figura anterior.
12
Si bien el programa a la hora de la ejecucin es bastante simple, tambin cuenta con algunos
errores que no pudieron ser manejados correctamente que se detallan a continuacin:
-
5.
REFERENCIAS BIBLIOGRFICAS.
Kernighan, B. W., & Ritchie, D. M. (1991). El lenguaje de Programacin C (2da ed.). Mexico:
Prentice Hall Hispanoamericana.
13