Dodano metodę do obliczenia wielomianu poprzez rekurencję
This commit is contained in:
@@ -7,7 +7,7 @@ using namespace std;
|
|||||||
class Wielomian
|
class Wielomian
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
bool readFromFile(string filename)
|
void readFromFile(string filename)
|
||||||
{
|
{
|
||||||
string str;
|
string str;
|
||||||
stopien = 0;
|
stopien = 0;
|
||||||
@@ -24,7 +24,6 @@ public:
|
|||||||
stopien++;
|
stopien++;
|
||||||
}
|
}
|
||||||
file.close();
|
file.close();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setX(float x)
|
void setX(float x)
|
||||||
@@ -32,7 +31,11 @@ public:
|
|||||||
this->x = x;
|
this->x = x;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool oblicz()
|
int getStopien() {
|
||||||
|
return this->stopien;
|
||||||
|
}
|
||||||
|
|
||||||
|
void oblicz()
|
||||||
{
|
{
|
||||||
b.resize(stopien);
|
b.resize(stopien);
|
||||||
for (int i = stopien - 1; i >= 0; i--)
|
for (int i = stopien - 1; i >= 0; i--)
|
||||||
@@ -50,7 +53,14 @@ public:
|
|||||||
b[i] = a[i] + b[i + 1] * x;
|
b[i] = a[i] + b[i + 1] * x;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
}
|
||||||
|
|
||||||
|
float oblicz_rekurencyjnie(int n) {
|
||||||
|
if (n == 0) {
|
||||||
|
return a[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return a[n] + x * oblicz_rekurencyjnie(n - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wyswietl_wynik()
|
void wyswietl_wynik()
|
||||||
@@ -63,6 +73,10 @@ public:
|
|||||||
cout << "Rozwiazaniem wielomianu jest: " << b[0] << endl;
|
cout << "Rozwiazaniem wielomianu jest: " << b[0] << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void reverse_a() {
|
||||||
|
reverse(a.begin(), a.end());
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
vector<float> a;
|
vector<float> a;
|
||||||
vector<float> b;
|
vector<float> b;
|
||||||
@@ -82,6 +96,9 @@ int main()
|
|||||||
wielomian.setX(x);
|
wielomian.setX(x);
|
||||||
wielomian.oblicz();
|
wielomian.oblicz();
|
||||||
wielomian.wyswietl_wynik();
|
wielomian.wyswietl_wynik();
|
||||||
|
wielomian.reverse_a();
|
||||||
|
|
||||||
|
cout << "\nWynik rekurencyjny: " << wielomian.oblicz_rekurencyjnie(wielomian.getStopien() - 1) << endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user