Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <iomanip>
- #include <cmath>
- using namespace std;
- //konstantos
- const char Dfv[] = "Duom.txt";
- const char Rfv[] = "Rez.txt";
- //funkcijos
- void Prastinti (int & s, int & v);
- void Sveikoji_Dalis (int & a, int & s, int & v);
- void Suma (int a1, int s1, int v1, int a2, int s2, int v2, int & a, int & s, int & v);
- void Skirtumas (int a1, int s1, int v1, int a2, int s2, int v2, int & a, int & s, int & v);
- void Spausdinti (ofstream & fr, int a, int s, int v);
- int main()
- {
- int n;
- int a1, s1, v1, //pirma trupmena
- a2, s2, v2; //antra trupmena
- int a, s, v; //atsakymas
- ifstream fd (Dfv);
- ofstream fr (Rfv);
- fd >> n;
- fr << "-------------------------------------------------------" << endl;
- fr << " T1 T2 Suma Skirtumas " << endl;
- fr << "-------------------------------------------------------" << endl;
- for (int i = 1; i <= n; i++)
- {
- fd >> a1 >> s1 >> v1 >> a2 >> s2 >> v2;
- Spausdinti (fr, a1, s1, v1);
- Spausdinti (fr, a2, s2, v2);
- Suma (a1, s1, v1, a2, s2, v2, a, s, v);
- Spausdinti (fr, a, s, v);
- Skirtumas (a1, s1, v1, a2, s2, v2, a, s, v);
- Spausdinti (fr, a, s, v);
- fr << endl;
- }
- fd.close ();
- fr.close ();
- return 0;
- }
- //suprastina trupmena
- void Prastinti (int & s, int & v)
- {
- int x = s;
- int y = v;
- while ( (x != 0) && (y != 0))
- if (x >= y)
- x = x % y;
- else
- y = y % x;
- int DBD = x + y;
- s = s / DBD;
- v = v / DBD;
- }
- //sveikosios dalies isskirimas
- void Sveikoji_Dalis (int & a, int & s, int & v)
- {
- a = s / v;
- s = s % v;
- }
- //sumos skaiciavimas
- void Suma (int a1, int s1, int v1, int a2, int s2, int v2, int & a, int & s, int & v)
- {
- s = s1 * v2 + s2 * v1;
- v = v1 * v2;
- Prastinti (s, v);
- if (s >= v)
- Sveikoji_Dalis (a, s, v);
- else
- a = 0;
- a += a1 + a2;
- }
- //skirtumo skaiciavimas
- void Skirtumas (int a1, int s1, int v1, int a2, int s2, int v2, int & a, int & s, int & v)
- {
- int zenkl = 0;
- s1 = a1 * v1 + s1;
- s2 = a2 * v2 + s2;
- s = s1 * v2 - s2 * v1;
- v = v1 * v2;
- if (s < 0)
- {
- zenkl = 1;
- s = -s;
- }
- Prastinti (s, v);
- if (s >= v)
- Sveikoji_Dalis (a, s, v);
- else
- a = 0;
- if (zenkl == 1)
- if (a == 0)
- s = -s;
- else
- a = -a;
- }
- //veiksmo atsakymo spausdinimas
- void Spausdinti (ofstream & fr, int a, int s, int v)
- {
- if (a == 0)
- fr << setw(6) << " ";
- else
- fr << setw(6) << a;
- if (s != 0)
- fr << setw(3) << s << " /" << setw(2) << v;
- else
- fr << " ";
- }
Advertisement
Add Comment
Please, Sign In to add comment