kestutis

2 lygis | 2 pamokėlė |7.Paprastoji trupmena|Karolio Breidoko

Dec 31st, 2013
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.16 KB | None | 0 0
  1. #include <iomanip>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. void suma (int svsk1,int skt1,int vrd1,int svsk2,int skt2,int vrd2,int &svsk_sum,int &skt_sum,int &vrd_sum)
  6. {
  7.     skt1+=svsk1*vrd1;
  8.     skt2+=svsk2*vrd2;
  9.     if(skt1!=skt2)
  10.     {
  11.         vrd_sum=vrd1*vrd2;
  12.         skt1*=vrd2;
  13.         skt2*=vrd1;
  14.     }
  15.     else vrd_sum=vrd1;
  16.     skt_sum=skt1+skt2;
  17.     svsk_sum=skt_sum/vrd_sum;
  18.     skt_sum-=svsk_sum*vrd_sum;
  19. }
  20. void skirtumas (int svsk1,int skt1,int vrd1,int svsk2,int skt2,int vrd2,int &svsk_skr,int &skt_skr,int &vrd_skr)
  21. {
  22.     skt1+=svsk1*vrd1;
  23.     skt2+=svsk2*vrd2;
  24.     if(skt1!=skt2)
  25.     {
  26.         vrd_skr=vrd1*vrd2;
  27.         skt1*=vrd2;
  28.         skt2*=vrd1;
  29.     }
  30.     else vrd_skr=vrd1;
  31.     skt_skr=skt1-skt2;
  32.     svsk_skr=skt_skr/vrd_skr;
  33.     skt_skr-=svsk_skr*vrd_skr;
  34. }
  35. void isvedimas (ofstream &rez,int svsk,int skt,int vrd)
  36. {
  37.     if (svsk!=0) rez<<setw(3)<<svsk;
  38.     else rez<<setw(3)<<" ";
  39.     if (vrd==1) return ;
  40.     rez<<setw(3)<<skt<<"/"<<vrd<<setw(5)<<" ";
  41. }
  42.  
  43. void prastinimas (int &skt,int &vrd)
  44. {
  45.     int sk1=skt,sk2=vrd,laik;
  46.     while (sk2!=0)
  47.     {
  48.         laik=sk2;
  49.         sk2=sk1%sk2;
  50.         sk1=laik;
  51.     }
  52.  
  53.     skt/=sk1;
  54.     vrd/=sk1;
  55. }
  56.  
  57. int main()
  58. {
  59.     int n,svsk1,skt1,vrd1,svsk2,skt2,vrd2,svsk_sum,skt_sum,vrd_sum,svsk_skr,skt_skr,vrd_skr;
  60.     ifstream duom ("Duomenys.txt");
  61.     ofstream rez ("Rezultatai.txt");
  62.     rez<<"-------------------------------------------------------"<<endl<<endl<<
  63.          "    T1            T2          Suma     Skirtumas"       <<endl<<endl<<
  64.          "-------------------------------------------------------"<<endl;
  65.     duom>>n;
  66.     for (int a=0;a<n;a++)
  67.     {
  68.         duom>>svsk1>>skt1>>vrd1>>svsk2>>skt2>>vrd2;
  69.         isvedimas (rez,svsk1,skt1,vrd1);
  70.         isvedimas (rez,svsk2,skt2,vrd2);
  71.         suma (svsk1,skt1,vrd1,svsk2,skt2,vrd2,svsk_sum,skt_sum,vrd_sum);
  72.         prastinimas(skt_sum,vrd_sum);
  73.         isvedimas (rez,svsk_sum,skt_sum,vrd_sum);
  74.         skirtumas (svsk1,skt1,vrd1,svsk2,skt2,vrd2,svsk_skr,skt_skr,vrd_skr);
  75.         prastinimas(skt_skr,vrd_skr);
  76.         isvedimas (rez,svsk_skr,skt_skr,vrd_skr);
  77.         rez<<endl;
  78.     }
  79.     return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment