Pouknouki

Classe ZFraction

Jul 4th, 2013
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.94 KB | None | 0 0
  1. #include "ZFraction.h";
  2. #include <iostream>
  3.  
  4. double numerateur;
  5. double denominateur;
  6.  
  7.  
  8. ZFraction::ZFraction(double aNumerateur, double aDenominateur) {
  9.     int lePGCD = PGCD(aNumerateur, aDenominateur);
  10.     numerateur = aNumerateur / lePGCD;
  11.     denominateur = aDenominateur / lePGCD;
  12.     if (numerateur != aNumerateur) {
  13.         std::cout << "La fraction a ete automatiquement simplifiee ! Elle vaut maintenant " << numerateur << "/" << denominateur;
  14.     }
  15.  
  16. }
  17.  
  18. ZFraction& ZFraction::operator+=(ZFraction const& autre) {
  19.     denominateur = denominateur * autre.denominateur;
  20.     numerateur = numerateur * autre.denominateur + autre.numerateur * denominateur;
  21.     numerateur = numerateur / PGCD(numerateur, denominateur);
  22.     denominateur = denominateur / PGCD(numerateur, denominateur);
  23.     return *this;
  24. }
  25.  
  26. ZFraction operator+(ZFraction const& a, ZFraction const& b) {
  27.     ZFraction copie(a);
  28.     copie+=b;
  29.     return copie;
  30. }
  31.  
  32. ZFraction& operator*=(ZFraction const& autre) {
  33.     denominateur = denominateur * autre.denominateur;
  34.     numerateur = numerateur * autre.numerateur;
  35.     int lePGCD = PGCD(denominateur, numerateur);
  36.     denominateur /= lePGCD;
  37.     numerateur /= lePGCD;
  38.     return *this;
  39. }
  40.  
  41. ZFraction operator*(ZFraction const& a, ZFraction const& b) {
  42.     ZFraction copie(a);
  43.     copie*=b;
  44.     return copie;
  45. }
  46.  
  47. bool ZFraction::estEgal(ZFraction const& autre) {
  48.     if (denominateur * autre.numerateur = autre.denominateur * numerateur) {
  49.         return true;
  50.     } else {
  51.         return false;
  52.     }
  53. }
  54.  
  55. bool operateur==(ZFraction const& autre) {
  56.     if (estEgal(b)) {
  57.         return true;
  58.     } else {
  59.         return false;
  60.     }
  61. }
  62.  
  63. bool operateur!=(ZFraction const& autre) {
  64.     if (estEgal(b)) {
  65.         return false
  66.     } else {
  67.         return true;
  68.     }
  69.  
  70. void ZFraction::afficher() const {
  71.     std::cout << numerateur << "/" << denominateur;
  72. }
  73.  
  74.  
  75.  
  76. int ZFraction::PGCD(int a, int b){
  77.     while(b!=0){
  78.         int c=a%b;
  79.         a=b;
  80.         b=c;
  81.     }
  82.     return a;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment