Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <math.h>
- using namespace std;
- class ZlyUlamek {
- public:
- ZlyUlamek() {}
- friend std::ostream& operator << (std::ostream& out, ZlyUlamek &zu);
- };
- class DzieleniePrzezZero {
- public:
- DzieleniePrzezZero() {}
- friend std::ostream& operator << (std::ostream& out, DzieleniePrzezZero &dpz);
- };
- std::ostream& operator << (std::ostream& out, ZlyUlamek &zu) {
- out << "WYJATEK: zly ulamek - w mianowniku nie moze byc zera" << std::endl;
- return out;
- }
- std::ostream& operator << (std::ostream& out, DzieleniePrzezZero &dpz) {
- out << "WYJATEK: proba dzielenia przez 0" << std::endl;
- return out;
- }
- class Ulamek {
- private:
- int licznik;
- int mianownik;
- public:
- Ulamek(int licznik, int mianownik) {
- this->licznik = licznik;
- if (mianownik == 0) throw ZlyUlamek();
- this->mianownik = mianownik;
- };
- Ulamek() {};
- int getLicznik() {
- return licznik;
- }
- void setLicznik(int licznik) {
- this->licznik = licznik;
- }
- int getMianownik() {
- return mianownik;
- }
- void setMianownik(int mianownik) {
- this->mianownik = mianownik;
- }
- friend ostream& operator << (ostream& out, Ulamek &liczba) {
- out << liczba.getLicznik() << '/' << liczba.getMianownik();
- return out;
- };
- Ulamek operator / (Ulamek a) {
- if (a.licznik == 0) throw DzieleniePrzezZero();
- Ulamek wynik(licznik*a.mianownik, mianownik*a.licznik);
- return wynik;
- }
- };
- class Pierwiastki {
- private:
- double x;
- double y;
- public:
- Pierwiastki(double x, double y) {
- this->x = x;
- this->y = y;
- if (x < 0 || y < 0 || x + y < 0) throw ZlyPierwiastek();
- };
- };
- int main() {
- try {
- Ulamek u1(3, 5);
- std::cout << u1;
- Ulamek u2(0, 6);
- std::cout << u2;
- Ulamek dzielenie = u1 / u2;
- std::cout << dzielenie;
- }
- catch (ZlyUlamek zu) {
- std::cout << zu;
- }
- catch (DzieleniePrzezZero dpz) {
- std::cout << dpz;
- }
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement