Advertisement
kali_mnedic

polinom.c

Feb 18th, 2020
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "polinom.h"
  4.  
  5. void ispisi(const Polinom *p){
  6. int nulaPolinom = 1;
  7. for (int i = p->stepen; i >= 0; i--){
  8. if (p -> kfc[i]){
  9. nulaPolinom = 0;
  10. if (p -> kfc[i] >= 0 && i!= p->stepen)
  11. putchar('+');
  12. if (i > 1)
  13. printf("%.2fx^%d", p->kfc[i], i);
  14. else if (i == 1)
  15. printf("%.2fx", p->kfc[i]);
  16. else
  17. printf("%.2f", p->kfc[i]);
  18. }
  19. }
  20. if (nulaPolinom)
  21. putchar('0');
  22. putchar('\n');
  23. }
  24.  
  25. Polinom ucitaj(){
  26. Polinom p;
  27. printf("Unesi polinom:\n");
  28.  
  29. scanf("%d", &p.stepen);
  30.  
  31. while(p.stepen < 0){ //||p.stepen > MAKS
  32. printf("Stepen je pogresan\n");
  33. scanf("%d", &p.stepen);
  34. }
  35. for (int i = p.stepen; i >=0; i--)
  36. scanf("%lf", &p.kfc[i]);
  37.  
  38. return p;
  39. }
  40. double horneova(const Polinom *p, double x){
  41. double rezultat = 0;
  42. for (int i = p->stepen; i>=0; i--)
  43. rezultat = rezultat*x+p->kfc[i];
  44. return rezultat;
  45. }
  46.  
  47. Polinom saberi(const Polinom *p, const Polinom *q){
  48. Polinom r;
  49. r.stepen = p->stepen > q ->stepen ? p->stepen:q->stepen;
  50. for (int i = 0; i <= r.stepen; i++){
  51. r.kfc = (i > p->stepen ? 0: p->kfc[i]) + (i > q->stepen? 0 : q->kfc[i]);
  52. }
  53. return r;
  54. }
  55.  
  56. Polinom pomnozi(const Polinom *p, const Polinom *q){
  57. Polinom r;
  58. r.stepen = p->stepen + q->stepen;
  59. if (r.stepen > MAKS){
  60. fprintf(stderr, "Greska");
  61. exit(EXIT_FAILURE);
  62. }
  63. for (int i = 0; i < r.stepen; i++)
  64. r.kfc[i] = 0;
  65.  
  66. for (int i = 0; i <= p->stepen; i++)
  67. for (int j = 0; j <= q->stepen; j++)
  68. r.kfc[i + j] += p->kfc[i] * q-> kfc[j];
  69.  
  70. return r;
  71. }
  72.  
  73. Polinom izvod(const Polinom *p){
  74. Polinom r;
  75. if (p->stepen > 0){
  76. r.stepen = p->stepen - 1;
  77. for (int i =0; i <= r.stepen; i++){
  78. r.kfc[i] = (i+1*p->kfc[i+1];
  79. }
  80. }
  81. else
  82. r.kfc[0] = r.stepen=0;
  83. return r;
  84. }
  85. Polinom n_izvod(const Polinom *p, int n){
  86. Polinom r;
  87. if (n < 0){
  88. fprintf(stderr, "Greska, n_izvod");
  89. exit(EXIT_FAILURE);
  90. }
  91. if (n == 0)
  92. return *p;
  93. r = izvod(p);
  94. for (int i = 1; i < n; i++)
  95. r = izvod(&r);
  96.  
  97. return r;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement