#include <iostream>
#include <vector>
using namespace std;
// Funkcja 1: zwraca i wypisuje współczynniki wielomianu
// W(x) = a3*x^3 + a2*x^2 + a1*x + a0
vector<double> wspolczynnikiWielomianu() {
vector<double> a;
a.push_back(1); // a3
a.push_back(2); // a2
a.push_back(3); // a1
a.push_back(4); // a0
cout << "Wspolczynniki wielomianu:" << endl;
cout << "a3 = " << a[0] << endl;
cout << "a2 = " << a[1] << endl;
cout << "a1 = " << a[2] << endl;
cout << "a0 = " << a[3] << endl;
return a;
}
// Funkcja 2: algorytm Hornera
double horner(const vector<double>& a, double x) {
double wynik = a[0];
for (int i = 1; i < a.size(); i++) {
wynik = wynik * x + a[i];
}
return wynik;
}
int main() {
vector<double> a = wspolczynnikiWielomianu();
double x;
cout << "Podaj argument x: ";
cin >> x;
double wynik = horner(a, x);
cout << "Wartosc wielomianu W(x) = " << wynik << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIEZ1bmtjamEgMTogendyYWNhIGkgd3lwaXN1amUgd3Nww7PFgmN6eW5uaWtpIHdpZWxvbWlhbnUKLy8gVyh4KSA9IGEzKnheMyArIGEyKnheMiArIGExKnggKyBhMAp2ZWN0b3I8ZG91YmxlPiB3c3BvbGN6eW5uaWtpV2llbG9taWFudSgpIHsKICAgIHZlY3Rvcjxkb3VibGU+IGE7CiAgICBhLnB1c2hfYmFjaygxKTsgLy8gYTMKICAgIGEucHVzaF9iYWNrKDIpOyAvLyBhMgogICAgYS5wdXNoX2JhY2soMyk7IC8vIGExCiAgICBhLnB1c2hfYmFjayg0KTsgLy8gYTAKCiAgICBjb3V0IDw8ICJXc3BvbGN6eW5uaWtpIHdpZWxvbWlhbnU6IiA8PCBlbmRsOwogICAgY291dCA8PCAiYTMgPSAiIDw8IGFbMF0gPDwgZW5kbDsKICAgIGNvdXQgPDwgImEyID0gIiA8PCBhWzFdIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJhMSA9ICIgPDwgYVsyXSA8PCBlbmRsOwogICAgY291dCA8PCAiYTAgPSAiIDw8IGFbM10gPDwgZW5kbDsKCiAgICByZXR1cm4gYTsKfQoKLy8gRnVua2NqYSAyOiBhbGdvcnl0bSBIb3JuZXJhCmRvdWJsZSBob3JuZXIoY29uc3QgdmVjdG9yPGRvdWJsZT4mIGEsIGRvdWJsZSB4KSB7CiAgICBkb3VibGUgd3luaWsgPSBhWzBdOwoKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgYS5zaXplKCk7IGkrKykgewogICAgICAgIHd5bmlrID0gd3luaWsgKiB4ICsgYVtpXTsKICAgIH0KCiAgICByZXR1cm4gd3luaWs7Cn0KCmludCBtYWluKCkgewogICAgdmVjdG9yPGRvdWJsZT4gYSA9IHdzcG9sY3p5bm5pa2lXaWVsb21pYW51KCk7CgogICAgZG91YmxlIHg7CiAgICBjb3V0IDw8ICJQb2RhaiBhcmd1bWVudCB4OiAiOwogICAgY2luID4+IHg7CgogICAgZG91YmxlIHd5bmlrID0gaG9ybmVyKGEsIHgpOwoKICAgIGNvdXQgPDwgIldhcnRvc2Mgd2llbG9taWFudSBXKHgpID0gIiA8PCB3eW5payA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==