//********************************************************************* // // OHJ-1151 Ohjelmointi 2e // Palautustehtävä 3 // // Tässä harjoituksessa tehtävänäsi on toteuttaa Polynomi-luokan // sisäinen toteutus. Julkista rajapintaa ei saa muuttaa. // //********************************************************************* #ifndef POLYNOMI_HH #define POLYNOMI_HH #include #include using namespace std; struct Termi { double kerroin; int eksponentti; }; // Luokka: Polynomi // Käyttö: Matemaattisen polynomin kuvaaminen class Polynomi { public: // Funktio: Polynomi() // Parametrit: - // Toiminta: Rakentaja Polynomille, joka ei sisällä termejä Polynomi(); // Funktio: Polynomi( double kerroin, int eksponentti ) // Parametrit: Polynomin sisältämän termin kerroin ja eksponentti // Toiminta: Rakentaja Polynomille, joka sisältää yhden termin Polynomi( double kerroin, int eksponentti ); // Funktio: void tulosta( ostream& virta ) // Parametrit: Virta, johon Polynomi tulostetaan // Toiminta: Tulostaa Polynomin // Paluuarvo: - void tulosta( ostream& virta ) const; // Funktio: void sievenna() // Parametrit: - // Toiminta: Sieventää Polynomin summaamalla samanasteiset // termit ja poistamalla termit, joiden kerroin on nolla // Paluuarvo: - void sievenna(); // Funktio: void lisaaTermi( double kerroin, int eksponentti ) // Parametrit: Lisättävän termin kerroin ja eksponentti // Toiminta: Lisää Polynomiin uuden termin // Paluuarvo: - void lisaaTermi( double kerroin, int eksponentti ); // Funktio: Polynomi lisaa( const Polynomi& lisattava ) const // Parametrit: Lisättävä Polynomi vakioviitteenä // Toiminta: Laskee Polynomin summan toisen Polynomin kanssa // Paluuarvo: Laskutoimituksen tulos Polynomi lisaa( const Polynomi& lisattava ) const; // Funktio: Polynomi vahenna( const Polynomi& vahennettava ) const // Parametrit: Vähennettävä Polynomi vakioviitteenä // Toiminta: Laskee Polynomin erotuksen toisen Polynomin kanssa // Paluuarvo: Laskutoimituksen tulos Polynomi vahenna( const Polynomi& vahennettava ) const; private: // Kirjoita tähän oma toteutuksesi std::vector termit_; }; #endif