Witam,
znowu poproszę o pomoc. Tym razem dłuższy projekt i pewnie będę miał setki pytań. Dość sporo czytałem o programowaniu obiektowym ale musicie wiedzieć, że jestem początkujący. Próbowałem wcześniej zrobić proste klasy ale już gdy mam się podpasować pod narzucone zadanie to nie wiem co i jak zrobić.
Treść zadania:
Napisz klasę "poly" tak, aby mogła ona być użyta w przykładzie zaprezentowanym w pliku testpoly.cpp. Wykorzystaj w tym celu jeden z kontenerów bibliteki STL.
Napisz klasę którą będzie można użyć dla danego kodu. Użyj konteneru bibilioteki STL (Tutaj z tego co wiem chodzi o vector)
Kod pod który mam zrobić klasę:
#include <iostream>
using namespace std;
#include "poly.h"
int main(void)
{
poly P1; //Declare object representing polynomial P1
P1[3] = 2; P1[1] = 3.6; P1[0] = 7; //Specify coefficients of P1 = 2x^3 + 3.6x + 7
poly P2 = 5; //Declare object representing polynomial P2 = 5
P2[1] = 3; P2[2] = 6; P2[4] = 1; //Specify additional coefficients of P2 = x^4 + 6x^2 + 3x + 5
cout << "Polynomial P1: " << P1 << endl; //Print P1
cout << "Polynomial P2: " << P2 << endl; //Print P2
poly P3 = P1 + P2; //Add P1 and P2
cout << "Sum of polynomials P1 and P2: " << P3 << endl; //Print sum of P1 and P2
P3 = P1 * P2; //Multiply P1 by P2
cout << "Product of polynomials P1 and P2: " << P3 << endl; //Print product of P1 and P2
P3 = 2 * P1; //Multiply P1 by 2
cout << "Polynomial P1 multiplied by 2: " << P3 << endl; //Print product of P1 and 2
double val = P1(3.14); //Calculate the value of P1 at point 3.14
cout << "Value of polynomial P1 at point 3.14: " << val << endl; //Print the value of P1 at point 3.14
};
Z tego co do tej pory się nauczyłem to muszę w klasie mieć takie rzeczy jak:
- jakiś operator do tego:
P1[ 3 ] = 2;
i innych P1 / P2 / P3
Zaprzyjaźniony operator ostream dla tego:
cout << "Polynomial P1: " << P1 << endl;
Operatory dodawania i mnożenia dla tego:
poly P3 = P1 + P2; //Add P1 and P2
//..
P3 = P1 * P2; //Multiply P1 by P2
//..
P3 = 2 * P1; //Multiply P1 by 2
Coś do tego:
double val = P1( 3.14 );
na razie zrobiłem szablon - podstawę do zrobienia czegokolwiek. Będę potrzebował pomocy z całą resztą ale oczywiście nie oczekuję gotowego kodu do zadania, a chętnie przez kilka dni posiedzę nad takim projektem :D
Mój kod:
#include <iostream>
#include <vector>
using namespace std;
class Wielomian
{
private:
vector <double> dane;
public:
Wielomian(); //Nie wiem co w konstruktorze
friend Wielomian operator +(const Wielomian& A, const Wielomian& B); // +
friend Wielomian operator *(const Wielomian& A, const Wielomian& B); // *
};
// suma
Wielomian operator+(const Wielomian& A, const Wielomian& B)
{
}
// iloczyn
Wielomian operator*(const Wielomian& A, const Wielomian& B)
{
}
//ostream do cout'a
ostream& operator<<(ostream& o, const Wielomian& w)
{
//tu nie wiem jeszcze co będzie
}
int main()
{
cout<< "Hello World" <<endl;
return 0;
}
vector już też wrzuciłem mimo, że jeszcze z niego nie umiem korzystać ale myślę, że dam radę.
Prosiłbym o informację co jeszcze i jak wrzucić do szablonu.
Wiem, że jest potrzebne jeszcze
Coś do tego:
double val = P1( 3.14 );
i jakiś operator do tego:
P1[ 3 ] = 2;
i innych P1 / P2 / P3
ale nie bardzo wiedziałem jak to zapisać.
Za każdą pomoc daję lajki i jestem mega wdzięczny. Proszę nie hejtować, bo potrzebuję pomocy w nauce i co najwyżej proszę krytykować mój kod :D