C++ Klasa Reprezentująca Wielomiany
Ostatnio zmodyfikowano 2018-11-08 00:18
Fran3k Temat założony przez niniejszego użytkownika |
C++ Klasa Reprezentująca Wielomiany » 2018-11-07 12:23:31 Witam, Mam do zrobienia Klasę Reprezentującą Wielomiany. 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. testpoly.cpp : #include <iostream> using namespace std; #include "poly.h"
int main( void ) { poly P1; P1[ 3 ] = 2; P1[ 1 ] = 3.6; P1[ 0 ] = 7; poly P2 = 5; P2[ 1 ] = 3; P2[ 2 ] = 6; P2[ 4 ] = 1; cout << "Polynomial P1: " << P1 << endl; cout << "Polynomial P2: " << P2 << endl; poly P3 = P1 + P2; cout << "Sum of polynomials P1 and P2: " << P3 << endl; P3 = P1 * P2; cout << "Product of polynomials P1 and P2: " << P3 << endl; P3 = 2 * P1; cout << "Polynomial P1 multiplied by 2: " << P3 << endl; double val = P1( 3.14 ); cout << "Value of polynomial P1 at point 3.14: " << val << endl; };
Z tego co zdążyłem poczytać i poszukać to powinienem chyba użyć "Kontenera z biblioteki STL" - Vector (http://cpp0x.pl/kursy/Kurs-STL-C++/Wstep-podstawowe-informacje-o-STL-u/115 to przeczytałem i chyba tylko Vector tu będzie pasował) Prosiłbym o pomoc ze zrobieniem tego zadania. Nie chcę gotowego programu tylko chciałbym żeby ktoś mnie kierował co po kolei robić, bo ja totalnie nie wiem od czego zacząć. Póki co zrobiłem po prostu drugi plik poly.hpp #include <iostream> #include <math.h> using namespace std; class poly { private: public: double P1; double P2; double P3; };
Nie widzę po prostu w przód tego co będę musiał zrobić. Myślę, że kolejny plik z konstruktorami i funkcjami itd zrobię żeby łatwo było się w tym ogarnąć. Ale prosiłbym o podanie mi pierwszego kroku jaki bym musiał zrobić :/ Wiem, że długa droga przede mną ale jakby ktoś się chciał zainteresować pomocą to bardzo bym prosił :) Czasu jest sporo :) |
|
pekfos |
» 2018-11-07 18:34:45 Klasa musi mieć: Reszta to szczegóły implementacyjne. Te P1, P2 itd w klasie możesz od razu wywalić. Masz mieć wektor współczynników. |
|
Fran3k Temat założony przez niniejszego użytkownika |
» 2018-11-07 22:29:22 Dziękuję Ci bardzo za pomoc :) Plik poly.h #include <iostream> #include <math.h> using namespace std; class poly { private: public: poly(); ~poly(); int operator []; poly operator *( const poly & A, const poly & B ); poly operator +( const poly & B, const poly & B ); friend operator <<( std::ostream &, const poly & ); }; ------------------------------------------------------------------
B ł ę dy: wiersz / kolumna / b ł ą d 13 18 poly.h[ Error ] declaration of 'operator[]' as non - function 14 47 poly.h[ Error ] 'poly poly::operator*(const poly&, const poly&)' must take either zero or one argument 15 46 poly.h[ Error ] redefinition of 'const poly& B' 15 30 poly.h[ Note ] 'const poly& B' previously declared here
Plik wszystko.cpp #include "poly.h" poly::poly() { } poly::~poly() { }
poly operator *( const poly & A, const poly & B ) { return poly( A * B ); }
poly operator +( const poly & A, const poly & B ) { return poly( A + B ); }
-------------------------------------------------- B ł ę dy: C:\P rogram Files( x86 ) \D ev - Cpp\MinGW64\x86_64 - w64 - mingw32\lib\libmingw32.a( lib64_libmingw32_a - crt0_c.o ) In function ` main ': 18 C:\c rossdev\src\mingw - w64 - v3 - git\mingw - w64 - crt\crt\crt0_c.c undefined reference to ` WinMain ' poly\collect2.exe[ Error ] ld returned 1 exit status
Nie umiałem dodać wywołania niestety. Jakiś podkład zrobiłem ale co i jak poprawić to nie mam pojęcia. Wspierałem się internetem. Z tego co rozumiem to będziemy operować na A i B, pod które po prostu będą podstawiane P1 / P2 / P3. Zawsze jakiś krok do przodu zrobiony. Teraz bym prosił o kolejne wskazówki i pomoc w poprawieniu tego kodu, który teraz podsyłam, bo wiem, że słabo to wygląda. |
|
pekfos |
» 2018-11-08 00:18:06 |
|
« 1 » |