ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Programa Que Suma Dos Polinomios De Cualquier Grado En C


Enviado por   •  18 de Febrero de 2014  •  409 Palabras (2 Páginas)  •  440 Visitas

Página 1 de 2

#include<stdio.h>

#include<stdlib.h>

// Definición de un nuevo tipo de dato: polinom

typedef struct{

int grado;

int *coef;

}polinom;

// Función de lectura de polinomios

polinom LeePolinom(){

polinom pol;

int i = 0;

pol.grado=0;

pol.coef=NULL;

printf("Indica el grado del polinomio: ");

scanf("%d",&pol.grado);

/* Asignación de memoria para el vector de coeficientes, según

el grado del polinomio */

pol.coef = (int *)malloc((pol.grado + 1) * sizeof(int));

if(pol.coef != NULL){

//Lectura de coeficientes, de mayor a menor grado

for(i=pol.grado; i>=0;i--){

printf("Dame el valor del coeficiente %d: ",i);

scanf("%d",&pol.coef[i]);

}

}

return pol;

}

// Función que suma A y B

polinom SumaPolinom(polinom polA, polinom polB){

int gradoMAX, polMAX;

int i=0;

polinom polRes = {0,NULL};

/* Condición que indica el grado que tendrá polRes */

if(polA.grado>=polB.grado){

gradoMAX = polA.grado;

polMAX = 1;

}

else{

gradoMAX = polB.grado;

polMAX = 2;

}

polRes.grado = gradoMAX;

//Asignación de memoria para polRes

polRes.coef=(int *)malloc((gradoMAX + 1) * sizeof(int));

//Si A fue de mayor grado

if(polMAX == 1){

/*Ciclo de copiado de los primeros coeficientes de A en

Res */

for(i=gradoMAX;i>polB.grado;i--){

polRes.coef[i]=polA.coef[i];

}

//Suma de coeficientes restantes

for(i=polB.grado;i>=0;i--){

polRes.coef[i]=polA.coef[i]+polB.coef[i];

}

}

//Si B fue de mayor grado

else{

/* Ciclo de copiado de los primeros coeficientes de B en

Res */

for(i=gradoMAX;i>polA.grado;i--){

polRes.coef[i]=polB.coef[i];

}

//Suma de coeficientes restantes

for(i=polA.grado;i>=0;i--){

polRes.coef[i]=polB.coef[i]+polA.coef[i];

}

}

return polRes;

}

// Función Principal

main(){

polinom polA, polB, polRes;

int i=0;

polA = LeePolinom();

if(polA.coef !=NULL){

polB = LeePolinom();

if(polB.coef != NULL){

polRes = SumaPolinom(polA,polB);

if(polRes.coef != NULL){

for(i=polRes.grado;i>=0;i--){

printf("+(%d)x^%d ",polRes.coef[i],i);

}

}

...

Descargar como (para miembros actualizados) txt (2 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com