Witam.
Napisałem program, który sprawdza czy liczba p/q jest pierwiastkiem tego wielomianu. I wszystko pięknie działa:
#include
using namespace std;
int main()
{
int n;
cout<<"stopien wielomianu: ";
cin>>n;
double *t=new double[n];
cout<
for (int i=n;i>=0;i--)
{
cout<<"a"<
cin>>t[i];
}
double x=(t[0]/t[n-1]);
double y=x*t[n-1]+t[n-2];
for (int i=n-3;i>=0;i--) y=x*y+t[i];
if (y!=0) cout<<"Liczba p/q nie jest pierwiastkiem podanego wielomianu.";
else cout<<"Liczba p/q nie jest pierwiastkiem podanego wielomianu.";
delete[] t;
cout<<"\n\n";
system("pause");
}
[/code]
Postanowiłem ten program napisać na klasach no i niestety coś nie działa :cry: i nie mam pojęcia o co chodzi. Tutaj niedziałający program:
[code]#include using namespace std; class wielomian { int s; //stopien wielomianu double *a; //poszczegolne wspolczynniki a1,a2 itd… float horner(int s); //schemat hornera sprawdzajacy czy podana liczba jest pierwiastkiem wielomianu public: wielomian(int s,double *a); ~wielomian(); int czypierwiastek(); //wywoluje metode horner }; float wielomian::horner(int s) { double x=(a[0]/a[s-1]); double y=x*a[s-1]+a[s-2]; for (int i=s-3;i>=0;i–) y=x*y+a[i]; return y; } wielomian::wielomian(int s,double *t) { a=new double [s]; for (int i=s;i>=0;i–) a[i]=t[i]; } wielomian::~wielomian() { delete[] a; } int wielomian::czypierwiastek() { if (horner(s)) return 0; else return 1; } int main() { int n; cout<<“stopien wielomianu: “; cin>>n; double *t=new double[n]; cout< for (int i=n;i>=0;i–) { cout<<“a”< cin>>t[i]; } wielomian W(n,t); if (W.czypierwiastek()) cout<<“Liczba p/q jest pierwiastkiem podanego wielomianu.”; else cout<<“Liczba p/q nie jest pierwiastkiem podanego wielomianu.”; delete[] t; cout<<”\n\n”; system(“pause”); }
To jest mój pierwszy program na klasach więc proszę o wyrozumiałość i wytknięcie wszystkich moich błędów abym ich na przyszłość nie robił