Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <stdio.h>
- using namespace std;
- class ulamek{
- public:
- int licznik, mianownik;
- //kontruktor domyslny
- ulamek();
- //kontruktor ulamkowy wymmagane parametry
- ulamek(int, int);
- //deklaracjha funkcji zaprzyjaznionej
- friend ostream& operator<< (ostream&,ulamek&);
- friend istream& operator>> (istream&,ulamek&);
- NWD(ulamek&);
- ulamek operator+ (ulamek&);
- };
- ulamek::ulamek(){
- licznik = 0;
- mianownik = 1;
- }
- ulamek::ulamek(int a, int b){
- licznik = a;
- mianownik = b;
- }
- istream& operator>> (istream &wejscie, ulamek& u)
- {
- char kreska;
- wejscie >> u.licznik;
- wejscie.get(kreska);
- if (kreska == '|'){
- wejscie >> u.mianownik;
- return wejscie;
- }
- else
- return wejscie;
- }
- ostream& operator<< (ostream &wyjscie, ulamek& u)
- {
- wyjscie << u.licznik;
- if(u.mianownik == 1){
- wyjscie << " ";
- return wyjscie;
- }
- else
- wyjscie << "|" << u.mianownik << " ";
- return wyjscie;
- }
- ulamek::NWD(ulamek& u){
- while(u.licznik!=u.mianownik)
- if(u.licznik>u.mianownik)
- u.licznik-=u.mianownik; //lub a = a - b;
- else
- u.mianownik-=u.licznik; //lub b = b-a
- return u.licznik; // lub b - obie zmienne przechowuj¹ wynik NWD(a,b)
- }
- ulamek ulamek::operator+ (ulamek& u)
- {
- ulamek u1;
- u1.licznik=licznik * u.mianownik + u.licznik * mianownik;
- u1.mianownik=mianownik * u.mianownik;
- if(u1.licznik % u1.mianownik == 0)
- u1.licznik = u1.licznik / u1.mianownik;
- u1.mianownik = 1;
- }
- int main()
- {
- ulamek u;
- vector <ulamek> Element;
- // Problemem jest to ze mam jak by jedną nazwe obiektu klasy czyli Element i on mi zapamiętuje mianownik zamiast ze tak powiem kozystac z mojego kontruktora kiedy nie podalem mianownika a kontruktor daje mi domyslnie 1 a tutaj to nie działa p ;
- cin >> u;
- Element.push_back(u);
- cin >> u;
- Element.push_back(u);
- cin >> u;
- Element.push_back(u);
- cout << Element[0];
- cout << Element[1];
- cout << Element[2];
- cout << Element[1].mianownik;
- /*
- while(getchar() != '\n'){
- cin >> u;
- Element.push_back(u);
- }
- */
- /*
- for(int i = 0; i < Element.size(); i++)
- {
- cout << Element[i];
- }
- */
- /*
- ulamek u1, u2, u3, u4, wynik;
- cin >> u1;
- cout << u1;
- cin >> u2;
- cout << u2;
- cin >> u3;
- cout << u3;
- cin >> u4;
- cout << u4;
- */
- // wynik = u1+u2;
- // cout << u1 << u2;
- // cout << wynik;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement