/** title: Calculo com Polinomios em C (aula TP1) ficheiro: ex14.c autor: (TP1) versao de: 2001.05.15 .implementacao de Polinomios com uma array de pares (coef,exp) .calculo da derivada **/ #include #define MAX 20 typedef int tExp; typedef float tCoef; typedef struct m { tCoef coef; tExp exp; }tMono; typedef tMono tPoli[MAX]; int lerPoli1(tPoli p) { tExp num, max; printf("\nQuantos termos? "); scanf("%d", &num); max = num; for( ;num > 0; num--) { printf("\nIntroduza o %d coeficiente e expoente: ", num); scanf("%f,%d", &p[num-1].coef, &p[num-1].exp); } return(max); } void escrevePoli1(tPoli p, int num) { for( ; --num >= 0; ) { if(p[num].coef) { printf("%.1fx^%d\n", p[num].coef,p[num].exp); } } } int derivaPoli1(tPoli p, int comp, tPoli d) { tExp i,j; for( i=j=0 ;i < comp; i++,j++ ) { if (p[i].exp == 0) { i++; } d[j].coef = (p[i].coef*p[i].exp); d[j].exp = (p[i].exp)-1; } return(j); } int main() { tPoli polinomio, derivada; tExp comp; comp = lerPoli1(polinomio); printf("Polinomio lido:\n"); escrevePoli1(polinomio, comp); comp = derivaPoli1(polinomio, comp, derivada); printf("Polinomio derivado:\n"); escrevePoli1(derivada, comp); return (0); }