Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int NWD(int a, int b)
- {
- int pom;
- while(b!=0)
- {
- pom = b;
- b = a%b;
- a = pom;
- }
- return a;
- }
- class Ulamek
- {
- public:
- Ulamek(int licznik, int mianownik);
- Ulamek(int licznik);
- operator double ()
- {
- return (double)licznik/mianownik;
- }
- void skroc_ulamek(){
- int maksymalna = NWD(licznik,mianownik);
- licznik=licznik/maksymalna;
- mianownik=mianownik/maksymalna;
- }
- friend std::ostream &operator<<(std::ostream &os, const Ulamek &ulamek);
- private:
- friend Ulamek dodaj(Ulamek,Ulamek);
- int licznik,mianownik=1;
- };
- Ulamek dodaj(Ulamek pierwszy,Ulamek drugi)
- {
- if(drugi.mianownik!=pierwszy.mianownik)
- {
- pierwszy.licznik=pierwszy.licznik*drugi.mianownik;// sprowadzanie do wspólnego mianownika
- drugi.licznik=drugi.licznik*pierwszy.mianownik;
- return Ulamek(drugi.licznik+pierwszy.licznik,pierwszy.mianownik);
- } else return Ulamek(drugi.licznik+pierwszy.licznik,drugi.mianownik);
- }
- Ulamek::Ulamek(int licznik, int mianownik) : licznik(licznik), mianownik(mianownik) {}
- Ulamek::Ulamek(int licznik) : licznik(licznik) {}
- std::ostream &operator<<(std::ostream &os, const Ulamek &ulamek) {
- if(ulamek.mianownik!=1)
- os << ulamek.licznik << " / " << ulamek.mianownik;
- else os<<ulamek.licznik;
- return os;
- }
- double kwadrat_liczby(double ulamek)
- {
- return ulamek*ulamek;
- }
- int main() {
- Ulamek tablica[3] = {Ulamek(1,2),Ulamek(5,8),Ulamek(7,9)};
- cout<<tablica[0]<<endl<<tablica[1]<<endl<<tablica[2]<<endl;
- cout<<dodaj(tablica[0],tablica[1])<<endl;
- cout<<dodaj(tablica[0],7)<<endl;
- cout<<kwadrat_liczby(tablica[2])<<endl;
- Ulamek nowy(88,22);
- nowy.skroc_ulamek();
- cout<<nowy;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement