Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Header
- int ler_polinomio(int poli[]) ;
- void escreve_polinomio(int poli[] , int grau) ;
- void adiciona_polinomios(int pol_A[] , int pol_B[] , int pol_R[] , int maior_grau) ;
- float calc(int pol_A[] , int grau , float x) ;
- // Funções
- #include <stdio.h>
- #define MAX_GRAU_POLI 10
- int power(int x , int grau)
- {
- if (grau >= 1) return (x * power(x , --grau)) ;
- else return (1) ;
- }
- int ler_polinomio(int poli[])
- {
- int i ;
- for (i = 0 ; i < 11 ; i++)
- {
- printf ("Escreva o coefiente de grau %d: " , i) ;
- scanf ("%d" , &poli[i]) ;
- }
- for (i = 10 ; i >= 0 ; i--) if (poli[i] != 0) break ;
- return i ;
- }
- void escreve_polinomio(int poli[] , int grau)
- {
- int i ;
- printf ("Polinómio:") ;
- for (i = grau ; i >= 0 ; i--) printf (" %dx^%d" , poli[i] , i) ;
- printf ("\n") ;
- }
- void adiciona_polinomios(int pol_A[] , int pol_B[] , int pol_R[] , int maior_grau)
- {
- int i ;
- printf ("Soma de polinómios:\n") ;
- printf ("Primeiro polinómio:") ;
- for (i = 10 ; i > 0 ; i--) printf (" %dx%d" , pol_A[i] , i) ;
- printf ("\nSegundo polinómio :") ;
- for (i = 10 ; i > 0 ; i--) printf (" %dx%d" , pol_B[i] , i) ;
- printf ("\nSoma dos dois polinómios com grau = %d :" , maior_grau) ;
- for (i = maior_grau ; i >= 0 ; i--)
- {
- pol_R[i] = pol_A[i] + pol_B[i] ;
- printf (" %dx^%d" , pol_R[i] , i) ;
- }
- printf ("\n") ;
- }
- float calc(int pol_A[] , int grau , float x)
- {
- int i , soma = 0 ;
- for (i = 10 ; i >= 0 ; i--) soma += pol_A[i] * power(x , i) ;
- return soma ;
- }
- // Programa
- #include <stdio.h>
- #include "header.h"
- #define MAX_GRAU_POLI 10
- void main()
- {
- int op , poli[MAX_GRAU_POLI] , pol_A[MAX_GRAU_POLI] , pol_B[MAX_GRAU_POLI] , pol_R[MAX_GRAU_POLI] , grau , grauA , grauB , x ;
- while (op != 5)
- {
- printf ("1. Ler polinómio ;\n") ;
- printf ("2. Escreve polinómio ;\n") ;
- printf ("3. Soma de dois polinómios ;\n") ;
- printf ("4. Calcular para um dado valor de 'x' ;\n") ;
- printf ("5. Sair ;\n") ;
- printf ("Opção : ") ;
- scanf ("%d" , &op) ;
- system ("clear") ;
- switch (op)
- {
- case 1 : grau = ler_polinomio(poli) ;
- continue ;
- case 2 : escreve_polinomio(poli , grau) ;
- continue ;
- case 3 : grauA = ler_polinomio(pol_A) ;
- grauB = ler_polinomio(pol_B) ;
- if (grauA > grauB) grau = grauA ;
- else grau = grauB ;
- adiciona_polinomios(pol_A , pol_B , pol_R , grau) ;
- continue ;
- case 4 : printf ("Valor de x : ") ;
- scanf ("%d" , &x) ;
- grau = ler_polinomio(poli) ;
- printf ("Resultado : %.2f\n" , calc(poli , grau , x)) ;
- continue ;
- case 5 : break ;
- system ("clear") ;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment