Advertisement
Jupiter_Crafter

bruch.cpp

Apr 23rd, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.79 KB | None | 0 0
  1. #include "bruch.h"
  2.  
  3. int ggt(int zahl1, int zahl2)
  4. {
  5.     //überprüfen ob zweiter Paramter Null ist
  6.     if(zahl2 == 0)
  7.         return zahl1;
  8.     //rekursiver Aufruf mit vertauschen Der Parameter
  9.     ggt(zahl2, (zahl1 % zahl2));
  10. }
  11.  
  12.  
  13. //kleinstes gemeinsames vielfaches
  14. int kgv(int zahl1, int zahl2)
  15. {
  16.     return (zahl1 * zahl2) / ggt(zahl1, zahl2);
  17. }
  18.  
  19. //konstruktor mit parameter
  20. bruch::bruch(int _zaehler, int _nenner) : zaehler(_zaehler), nenner(_nenner)
  21. {
  22. }
  23.  
  24. bruch::bruch() : zaehler(0), nenner(0)
  25. {
  26. }
  27.  
  28. bruch bruch::kuerzen()
  29. {
  30.     int _ggt = ggt(nenner, zaehler);
  31.     nenner = nenner / _ggt;
  32.     zaehler = zaehler / _ggt;
  33.     bruch temp(zaehler, nenner);
  34.     return temp;
  35. }
  36.  
  37.  
  38. bruch bruch::operator*(bruch b1)
  39. {
  40.     int zaehler = this->zaehler * b1.zaehler;
  41.     int nenner = this->nenner * b1.nenner;
  42.     bruch temp(zaehler, nenner);
  43.     return temp;
  44. }
  45.  
  46. bruch bruch::operator+(const bruch& b1)
  47. {
  48.  
  49.     int nenner = kgv(b1.nenner, this->nenner);
  50.     int zaehler = (b1.zaehler * nenner / b1.nenner) + (this->zaehler * nenner / this->nenner);
  51.  
  52.     bruch temp(zaehler, nenner);
  53.  
  54.     return temp;
  55. }
  56.  
  57. bruch bruch::operator-(const bruch& b1)
  58. {
  59.     int nenner = kgv(b1.nenner, this->nenner);
  60.     int zaehler = (b1.zaehler * nenner / b1.nenner) - (this->zaehler * nenner / this->nenner);
  61.  
  62.     bruch temp(zaehler, nenner);
  63.  
  64.     return temp;
  65. }
  66.  
  67.  
  68. bruch bruch::operator/(const bruch& b1)
  69. {
  70.     int kehrwert_zaehler = this->nenner;
  71.     int kehrwert_nenner = this->zaehler;
  72.  
  73.     int zaehler = kehrwert_zaehler * b1.zaehler;
  74.     int nenner = kehrwert_nenner * b1.nenner;
  75.  
  76.     bruch temp(zaehler, nenner);
  77.     return temp;
  78. }
  79.  
  80. std::ostream& operator<<(std::ostream& os, const bruch& b1)
  81. {
  82.     os << b1.zaehler << " / " << b1.nenner << '\n';
  83.     return os;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement