Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Wymierna
- {
- friend ostream& operator<<(ostream&, const Wymierna&);
- friend Wymierna operator+(Wymierna, Wymierna);
- friend Wymierna operator*(Wymierna, Wymierna);
- friend Wymierna operator-(Wymierna, Wymierna);
- friend Wymierna operator/(Wymierna, Wymierna);
- private:
- int licznik;
- int mianownik;
- public:
- Wymierna(); // tworzy liczbe wymierna równa 0
- Wymierna(int); // tworzy liczbe wymierna o podanej wartosci
- Wymierna(int, int); // tworzy liczbe wymierna o podanych liczniku i mianowniku
- double wartosc(); // zwraca wartosc liczby wymiernej
- };
- Wymierna::Wymierna() {
- licznik=0;
- mianownik=1;
- }
- Wymierna::Wymierna(int a, int b) {
- licznik=a;
- mianownik=b;
- }
- Wymierna::Wymierna(int c) {
- licznik=c;
- mianownik=1;
- }
- Wymierna operator*(Wymierna A, Wymierna B) {
- Wymierna wynik;
- wynik.mianownik = A.mianownik * B.mianownik;
- wynik.licznik = A.licznik * B.licznik;
- return wynik;
- }
- ostream& operator<<(ostream& strumien, const Wymierna& wymierna) {
- strumien << wymierna.licznik << "/" << wymierna.mianownik;
- return strumien;
- }
- unsigned nwd(unsigned a, unsigned b)
- {
- while(a != b)
- {
- if(a > b)
- a = a - b;
- if(b > a)
- b = b - a;
- }
- return a;
- }
- int nww(int d, int e) {
- return d * e / nwd(d,e);
- }
- Wymierna operator+(Wymierna A, Wymierna B) {
- Wymierna wynik;
- nww(A.mianownik,B.mianownik);
- wynik.licznik = A.licznik + B.licznik;
- return wynik;
- }
- Wymierna operator-(Wymierna A, Wymierna B) {
- Wymierna wynik;
- wynik.licznik = A.licznik - B.licznik;
- return wynik;
- }
- Wymierna operator/(Wymierna A, Wymierna B) {
- Wymierna wynik;
- wynik.mianownik = A.mianownik * B.licznik;
- wynik.licznik = A.licznik * B.mianownik;
- return wynik;
- }
- int main()
- {
- Wymierna A(5,2);
- Wymierna B(7,3);
- cout << A << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment