Advertisement
Guest User

Untitled

a guest
Nov 1st, 2014
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. typedef struct {
  5. int rango, coeficiente[6];
  6. } t_polinomio;
  7.  
  8. t_polinomio Crea (int grado, int coe[]){
  9. t_polinomio pol;
  10. pol.rango=grado;
  11.  
  12. int i;
  13.  
  14. for(i=0;i<=grado;i++){
  15. pol.coeficiente[i]=coe[i];}
  16.  
  17. return (pol);
  18. }
  19. double Evaluar ( t_polinomio pol, double pt){
  20. int i;
  21. double resultado=0;
  22.  
  23. for(i=0;i<=pol.rango;i++){
  24. resultado+=pol.coeficiente[i]*pow(pt,i);
  25. }
  26.  
  27. return (resultado);
  28.  
  29. }
  30. void Mostrar (t_polinomio pol){
  31. int i;
  32.  
  33. for(i=0;i<=pol.rango;i++){
  34. if(pol.coeficiente[i]!=0){
  35. printf("%d *x^%d ",pol.coeficiente,i);
  36. }
  37. }
  38. }
  39.  
  40. void Derivar(t_polinomio pol, t_polinomio *der){
  41. int i;
  42. der->rango=pol.rango-1;
  43.  
  44. for(i=1;i<=pol.rango;i++){
  45. der->coeficiente[i-1]=pol.coeficiente[i]*i;
  46. }
  47.  
  48. }
  49.  
  50.  
  51.  
  52. main(){
  53. t_polinomio pol,der;
  54. int i,rango,coeficiente[6];
  55. char orden;
  56. double pt;
  57.  
  58. printf("introduzca un rango para el polinomio: ");
  59. scanf("%d",&rango);
  60. if(rango>5){
  61. printf("No se puede realizar la operación. ");
  62. return (0);
  63. }
  64. for(i=0;i<=rango;i++){
  65. printf("Introduzca el coeficiente %i: ",i);
  66. scanf("%i",&coeficiente[i]);
  67. }
  68. pol=Crea(rango,coeficiente);
  69.  
  70. printf("Introduzca la operación a realizar: ");
  71. scanf("%c",&orden);
  72. switch (orden){
  73. case 'E':
  74. case 'e':
  75. printf("Introduzca un punto: ");
  76. scanf("%lf",&pt);
  77. printf("Valor: %lf",Evaluar(pol,pt));
  78. break;
  79. case 'M':
  80. case 'm':
  81. Mostrar(pol);
  82. break;
  83. case 'D':
  84. case 'd':
  85. Derivar(pol,&der);
  86. Mostrar(der);
  87. break;
  88. }
  89. return (0);
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement