Está en la página 1de 7

Universidad Nacional Autnoma de Mxico Facultad de Ingeniera Laboratorio de Programacin Avanzada y Mtodos Numricos Nombre: LAUREL ESPINOSA DULCE

IVONNE Grupo: 6 No. de Prctica: 2 Ttulo de la Prctica: Suma de polinomios 09/03/2011 Fecha de Entrega: No. de Cuenta: 306086412

PLANTEAMIENTO DEL PROBLEMA: Se deber realizar un programa que sume 2 polinomios de cualquier grado; con la restriccin de que uno de los polinomios debe estar dado obligatoriamente por el nmero de cuenta del usuario lo que implica que ser un polinomio de grado ocho, a esta matriz la nombraremos como A y posteriormente nos deber de arrojar en pantalla la suma de los polinomios ingresados.

CDIGO PROPUESTO COMO RESOLUCIN DEL PROBLEMA #include <stdio.h> #include <conio.h> #include <stdlib.h> //Declaracin estructura// typedef struct{ int grad; int *coef; //Declaracion apuntador// }polin; //Funcin lectura de polinomios// polin Leepolin() { polin pol; int i=0;

pol.grad=0; pol.coef=NULL;

printf("\n\t CUAL ES EL GRADO DEL POLINOMIO:_ "); scanf("%d",&pol.grad); //Reserva de memoria dinmica// pol.coef= (int *)malloc((pol.grad + 1)* sizeof(int)); if(pol.coef !=NULL) { //Lectura de coeficientes// for(i=pol.grad;i>=0;i--) { printf("\t INGRESA EL VALOR DEL COEFICIENTE:_ %d: ",i); scanf("%d",&pol.coef[i]); } } return pol; } //Funcin de suma // polin SumaPolin(polin polA,polin polB) { int gradMAX, polMAX, i; polin polRes={0,NULL}; //Indica el grado que tendra poliRes// if(polA.grad>=polB.grad) { gradMAX=polA.grad;

polMAX=1; } else { gradMAX = polB.grad; polMAX =2; } polRes.grad =gradMAX; //Asignacin de memoria para polRes // polRes.coef=(int*)malloc((gradMAX+1)*sizeof(int)); // A fuese de mayor grado*/ if(polMAX ==1) { for(i=gradMAX ;i>polB.grad ;i--) { polRes.coef[i]=polA.coef[i]; } //Suma coeficientes// for(i=polB.grad;i>=0;i--) { polRes.coef[i]=polA.coef[i]+polB.coef[i]; } } // B de mayor grado// else { for(i=gradMAX;i>polA.grad;i--)

{ polRes.coef[i]=polB.coef[i]; } for(i=polA.grad;i>=0;i--) { polRes.coef[i]=polB.coef[i]+polA.coef[i]; } } return polRes; }

main() { polin polA,polB,polRes; int i=0; printf("\n INGRESA EL GRADO Y LOS VALORES DE TU POLINOMIO A SUMAR:_\n"); polA=Leepolin(); if(polA.coef !=NULL) printf("\n TUS DATOS CORRESPONDEN A:_ "); for(i=polA.grad;i>=0;i--) { printf("+(%d)x^%d",polA.coef[i],i); } { printf("\n\n INGRESE SU NUMERO DE CUENTA:_\n"); polB=Leepolin();

if(polB.coef !=NULL) printf("\n TUS DATOS CORRESPONDE A:_\n\n"); for(i=polB.grad;i>=0;i--) { printf("+(%d)x^%d",polB.coef[i],i); } { polRes=SumaPolin(polA,polB); if(polRes.coef !=NULL) { printf("\n\n EL RESULTADO DE LA SUMA ES:_\n\n"); for(i=polRes.grad;i>=0;i--) { printf("+(%d)x^%d",polRes.coef[i],i); } } } } //liberar memoria // free(polA.coef); free(polB.coef); free(polRes.coef); getch(); }

PANTALLAS

CONCUSIONES Y COMENTARIOS La memoria dinmica es uno de los trminos ms confuso a mi parecer, me cost mucho trabajo comprender como es que funciona bien en apoyo a apuntadores que funciones como arreglos, y en si los apuntadores, las practicas que se realizan en el laboratorio son de mucha importancia ya que gracias a ellas podemos tener mayores ideas o por lo menos mas dudas en cuanto a lo que se debe de hacer, no solo se queda en los conceptos si no que aplicamos de nosotros para poder cumplir los objetivos aun estando fuera de la clase o del tiempo de clase, nos ayudo a investigar un poco por nuestra cuenta para poder resolver ciertas dudas que surgieron en el proceso, como en toda practica, el ejercicio nos hizo pensar en un mtodo de solucin viable y claro para poder comprender los trminos usados.

También podría gustarte