Advertisement
MeehoweCK

Untitled

Aug 30th, 2022
594
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.04 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. struct Wielomian
  7. {
  8.     unsigned stopien_wielomianu;
  9.     vector<int> wspolczynniki;
  10. };
  11.  
  12. Wielomian wczytaj_wielomian()
  13. {
  14.     cout << "Podaj stopien wielomianu: ";
  15.     Wielomian nowy;
  16.     int temp;
  17.     cin >> nowy.stopien_wielomianu;
  18.     cout << "Podaj kolejne calkowite wspolczynniki wielomianu liczac od wyrazu wolnego: ";
  19.     for(unsigned i = 0; i <= nowy.stopien_wielomianu; ++i)
  20.     {
  21.         cin >> temp;
  22.         nowy.wspolczynniki.push_back(temp);
  23.     }
  24.     return nowy;
  25. }
  26.  
  27. void wypisz_wielomian(Wielomian wielomian)
  28. {
  29.     for(int stopien = wielomian.stopien_wielomianu; stopien >= 0; --stopien)
  30.     {
  31.         if(stopien == 0)
  32.         {
  33.             if(wielomian.wspolczynniki[0] == 0)
  34.                 cout << endl;
  35.             else
  36.                 cout << wielomian.wspolczynniki[0] << endl;
  37.             break;
  38.         }
  39.         if(wielomian.wspolczynniki[stopien] == 0)
  40.             continue;
  41.         cout << wielomian.wspolczynniki[stopien] << "x^" << stopien << ' ';
  42.     }
  43. }
  44.  
  45. Wielomian wyznacz_pochodna(Wielomian wielomian)
  46. {
  47.     Wielomian pochodna;
  48.     if(wielomian.stopien_wielomianu == 0)
  49.     {
  50.         pochodna.stopien_wielomianu = 0;
  51.         return pochodna;
  52.     }
  53.     pochodna.stopien_wielomianu = wielomian.stopien_wielomianu - 1;
  54.  
  55.     for(unsigned i = 1; i <= wielomian.stopien_wielomianu; ++i)
  56.         pochodna.wspolczynniki.push_back(wielomian.wspolczynniki[i] * i);
  57.     return pochodna;
  58. }
  59.  
  60. Wielomian wyznacz_pochodna_stopnia(Wielomian wielomian, unsigned stopien)
  61. {
  62.     if(stopien == 0)
  63.         return wielomian;
  64.     Wielomian wynik = wyznacz_pochodna(wielomian);
  65.     for(unsigned i = 1; i < stopien; ++i)
  66.         wynik = wyznacz_pochodna(wynik);
  67.     return wynik;
  68. }
  69.  
  70. int main()
  71. {
  72.     Wielomian A = wczytaj_wielomian();
  73.     wypisz_wielomian(A);
  74.     Wielomian pochodna = wyznacz_pochodna(A);
  75.     wypisz_wielomian(pochodna);
  76.     Wielomian pochodna2 = wyznacz_pochodna_stopnia(A, 2);
  77.     wypisz_wielomian(pochodna2);
  78.     return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement