Advertisement
MouseyN1

Suma a 2 fractii ordinale dupa simplificarea fractiilor

Oct 25th, 2012
627
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1. /* 25.10.2012
  2.  
  3. 13. un program calculeaza suma a 2 fractii ordinale
  4. afisare dupa simplificarea fractiilor
  5. - obs. la citire numitorul nu are voie sa fie 0
  6. A) numitor si numarator naturale
  7. B) numitor si numarator intregi
  8. */
  9.  
  10. #include<iostream>
  11. using namespace std;
  12. void citire(int &m,int &n)
  13. {
  14.     cout<<"m="; cin>>m;
  15.     do
  16.     {
  17.         cout<<"n="; cin>>n;
  18.     }while(n==0);
  19. }
  20. int cmmdc(int a,int b)
  21. {
  22.     int r;
  23.     if(b==0)
  24.         return 0;
  25.     else
  26.     {
  27.         int r=a%b;
  28.         while(r)
  29.         {
  30.             a=b;
  31.             b=r;
  32.             r=a%b;
  33.         }
  34.         return b;
  35.     }
  36. }
  37. void afisare(int m,int n)
  38. {
  39.     if(m*n<0)
  40.     {
  41.         m=-m;
  42.         cout<<m;
  43.     }
  44.     else
  45.         cout<<m;
  46.     if(n!=1)
  47.         cout<<"/"<<n<<" ";
  48. }
  49. void suma(int am,int an,int bm,int bn,int &Sm,int &Sn)
  50. {
  51.     Sm=bn*am+bm*an;// numarator
  52.     Sn=bn*an; // numitor
  53.     Sm=Sm/cmmdc(Sm,Sn);// simplific numaratorul
  54.     Sn=Sn/cmmdc(Sm,Sn);// simplific numitorul
  55. }
  56. int main()
  57. {
  58.     int am,an,bm,bn,Sn,Sm;
  59.     citire(am,an);
  60.     citire(bm,bn);
  61.     afisare(am,an);
  62.     afisare(bm,bn);
  63.     cout<<endl<<endl;
  64.     cout<<"Suma fractiilor este ";
  65.     suma(am,an,bm,bn,Sm,Sn);
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement