fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. // Funkcja obliczająca wartość wielomianu schematem Hornera
  7. double horner(const vector<double>& a, int stopien, double x)
  8. {
  9. double wynik = a[0]; // najwyższy współczynnik
  10. for (int i = 1; i <= stopien; i++)
  11. {
  12. wynik = wynik * x + a[i];
  13. }
  14. return wynik;
  15. }
  16.  
  17. // Funkcja wczytująca stopień wielomianu i współczynniki
  18. void wczytajDane(int &stopien, vector<double> &a)
  19. {
  20. cout << "Podaj stopien wielomianu: ";
  21. cin >> stopien;
  22.  
  23. a.resize(stopien + 1); // miejsce na wszystkie współczynniki
  24.  
  25. cout << "Podaj wspolczynniki od a" << stopien << " do a0:" << endl;
  26. for (int i = 0; i <= stopien; i++)
  27. {
  28. cout << "a" << (stopien - i) << " = ";
  29. cin >> a[i]; // a[0] = a3, a[1] = a2, ..., a[stopien] = a0
  30. }
  31. }
  32.  
  33. int main()
  34. {
  35. int stopien;
  36. vector<double> a;
  37. double x = 3; // punkt, w którym liczymy wartość
  38.  
  39. // wczytanie danych
  40. wczytajDane(stopien, a);
  41.  
  42. // obliczenie wartości wielomianu schematem Hornera
  43. double wynik = horner(a, stopien, x);
  44.  
  45. // wypisanie wyników w tym samym formacie co wcześniej
  46. cout << "stopien wielomianu: " << stopien << endl;
  47. for (int i = 0; i <= stopien; i++)
  48. {
  49. cout << "a" << (stopien - i) << " = " << a[i] << endl;
  50. }
  51. cout << "x = " << x << endl;
  52. cout << "w(" << x << ") = " << wynik << endl;
  53.  
  54. return 0;
  55. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
Podaj stopien wielomianu: Podaj wspolczynniki od a0 do a0:
a0 = stopien wielomianu: 0
a0 = 0
x = 3
w(3) = 0