Created
March 15, 2026 10:17
-
-
Save thinkphp/77fb9f563f4d1037b9a7520811449437 to your computer and use it in GitHub Desktop.
Supraincare operatori +,-,*,/ < ==
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <iostream> | |
| #include <numeric> //pentru a utiliza GCD | |
| using namespace std; | |
| class Fractie { | |
| int nr, nm;//date membre private | |
| void simplifica() { //metoda privata | |
| int d = gcd(abs(nr), abs(nm)); | |
| nr /= d; nm /=d; | |
| if(nm < 0) {nr = -nr; nm =-nm;} //semn la numitor | |
| } | |
| public: | |
| Fractie(int n = 0, int m = 1): nr(n), nm(m) { simplifica(); } | |
| //operatori aritmetici | |
| // b | |
| Fractie operator+(const Fractie& f) const {return {nr * f.nm, nm*f.nm};} | |
| Fractie operator-(const Fractie& f) const {return {nr*f.nm - f.nr*nm, nm*f.nm};} | |
| Fractie operator*(const Fractie& f) const {return {nr*f.nr, nm*f.nm};} | |
| Fractie operator/(const Fractie& f) const {return {nr*f.nm, nm*f.nr};} | |
| //operatori de comparatie | |
| bool operator ==(const Fractie& f) const { return nr == f.nr && nm == f.nm;} | |
| bool operator <(const Fractie& f) const { return nr * f.nm < f.nr * nm;} | |
| friend ostream& operator<<(ostream&os, const Fractie& f) { | |
| if(f.nm == 1) return os <<f.nr; | |
| return os << f.nr <<"/"<<f.nm; | |
| } | |
| }; | |
| //a/b + c/d | |
| //a,ib + c,id | |
| //Supraincarcarea operatorilor | |
| int main(int argc, char const *argv[]) | |
| { | |
| Fractie a(1,2), b(1,3); | |
| //fractia a are date membre: nr si nm, dar fractia b are date membre f.nr, f.nm | |
| cout<<a<<" + "<<b<<" = "<<(a + b)<<endl; | |
| cout<<a<<" - "<<b<<" = "<<(a - b)<<endl; | |
| cout<<a<<" * "<<b<<" = "<<(a * b)<<endl; | |
| cout<<a<<" / "<<b<<" = "<<(a / b)<<endl; | |
| cout<<"1/2 < 1/3 ? "<< ( a < b ? "DA" : "NU")<<endl; | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment