Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "bruch.h"
- int ggt(int zahl1, int zahl2)
- {
- //überprüfen ob zweiter Paramter Null ist
- if(zahl2 == 0)
- return zahl1;
- //rekursiver Aufruf mit vertauschen Der Parameter
- ggt(zahl2, (zahl1 % zahl2));
- }
- //kleinstes gemeinsames vielfaches
- int kgv(int zahl1, int zahl2)
- {
- return (zahl1 * zahl2) / ggt(zahl1, zahl2);
- }
- //konstruktor mit parameter
- bruch::bruch(int _zaehler, int _nenner) : zaehler(_zaehler), nenner(_nenner)
- {
- }
- bruch::bruch() : zaehler(0), nenner(0)
- {
- }
- bruch bruch::kuerzen()
- {
- int _ggt = ggt(nenner, zaehler);
- nenner = nenner / _ggt;
- zaehler = zaehler / _ggt;
- bruch temp(zaehler, nenner);
- return temp;
- }
- bruch bruch::operator*(bruch b1)
- {
- int zaehler = this->zaehler * b1.zaehler;
- int nenner = this->nenner * b1.nenner;
- bruch temp(zaehler, nenner);
- return temp;
- }
- bruch bruch::operator+(const bruch& b1)
- {
- int nenner = kgv(b1.nenner, this->nenner);
- int zaehler = (b1.zaehler * nenner / b1.nenner) + (this->zaehler * nenner / this->nenner);
- bruch temp(zaehler, nenner);
- return temp;
- }
- bruch bruch::operator-(const bruch& b1)
- {
- int nenner = kgv(b1.nenner, this->nenner);
- int zaehler = (b1.zaehler * nenner / b1.nenner) - (this->zaehler * nenner / this->nenner);
- bruch temp(zaehler, nenner);
- return temp;
- }
- bruch bruch::operator/(const bruch& b1)
- {
- int kehrwert_zaehler = this->nenner;
- int kehrwert_nenner = this->zaehler;
- int zaehler = kehrwert_zaehler * b1.zaehler;
- int nenner = kehrwert_nenner * b1.nenner;
- bruch temp(zaehler, nenner);
- return temp;
- }
- std::ostream& operator<<(std::ostream& os, const bruch& b1)
- {
- os << b1.zaehler << " / " << b1.nenner << '\n';
- return os;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement