Advertisement
irmantas_radavicius

Untitled

May 21st, 2024
617
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.48 KB | None | 1 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. struct Kiekiai {
  8.     int kiek1, kiek3, kiek5;
  9.     int kiekA;
  10. };
  11. struct Kainos {
  12.     int islaidos;
  13.     int kaina1, kaina3, kaina5;
  14. };
  15. struct Duomenys {
  16.     Kiekiai k;
  17.     Kainos a;
  18. };
  19.  
  20. Duomenys gautiDuomenis(string vardas){
  21.     Duomenys d;
  22.     ifstream in(vardas);
  23.     in >> d.k.kiek1 >> d.k.kiek3 >> d.k.kiek5;
  24.     in >> d.k.kiekA >> d.a.islaidos;
  25.     in >> d.a.kaina1 >> d.a.kaina3 >> d.a.kaina5;
  26.     in.close();
  27.     return d;
  28. }
  29.  
  30. void spausdintiKiekius(Kiekiai duom, ofstream &out){
  31.     out << duom.kiek1 << " " << duom.kiek3 << " " << duom.kiek5;
  32. }
  33.  
  34. Kiekiai gautiKiekius(Kiekiai &duom){
  35.     Kiekiai rez = { 0, 0, 0, 0, };
  36.     rez.kiekA = duom.kiekA;
  37.  
  38.     while(1){
  39.         if(duom.kiek5 > 0 && rez.kiekA >= 5){
  40.             rez.kiekA = rez.kiekA - 5;
  41.             duom.kiek5--;
  42.             rez.kiek5++;
  43.         } else
  44.             break;
  45.     }
  46.     while(1){
  47.         if(duom.kiek3 > 0 && rez.kiekA >= 3){
  48.             rez.kiekA = rez.kiekA - 3;
  49.             duom.kiek3--;
  50.             rez.kiek3++;
  51.         } else
  52.             break;
  53.     }
  54.     while(1){
  55.         if(duom.kiek1 > 0 && rez.kiekA >= 1){
  56.             rez.kiekA = rez.kiekA - 1;
  57.             duom.kiek1--;
  58.             rez.kiek1++;
  59.         } else
  60.             break;
  61.     }
  62.     return rez;
  63. }
  64.  
  65. int gautiPelna(Kiekiai k1, Kiekiai k2, Kainos a){
  66.     int pelnas = -a.islaidos;
  67.     pelnas += (k1.kiek1+k2.kiek1) * a.kaina1;
  68.     pelnas += (k1.kiek3+k2.kiek3) * a.kaina3;
  69.     pelnas += (k1.kiek5+k2.kiek5) * a.kaina5;
  70.     return pelnas;
  71. }
  72.  
  73. int main(int argc, char *argv[]){
  74.  
  75.     string inVardas = "U1.txt";
  76.     string outVardas = "U1rez.txt";
  77.  
  78.     if(argc > 1){
  79.         inVardas = argv[1];
  80.     }
  81.     if(argc > 2){
  82.         outVardas = argv[2];
  83.     }
  84.  
  85.     /*
  86.     cout << argc << endl;
  87.     for(int i = 0; i < argc; ++i)
  88.         cout << argv[i] << endl;
  89.     cout << endl << endl;
  90.     */
  91.  
  92.     ofstream out(outVardas);
  93.  
  94.     Duomenys d = gautiDuomenis(inVardas);
  95.     Kiekiai k1 = gautiKiekius(d.k);
  96.     spausdintiKiekius(k1, out);
  97.     out << " " << k1.kiekA << endl;
  98.     spausdintiKiekius(d.k, out);
  99.     out << endl;
  100.  
  101.     Kiekiai k2;
  102.     k2.kiek1 = k1.kiekA;
  103.     k2.kiek3 = k1.kiekA;
  104.     k2.kiek5 = k1.kiekA;
  105.     k2.kiekA = k1.kiekA;
  106.     Kiekiai k3 = gautiKiekius(k2);
  107.     spausdintiKiekius(k3, out);
  108.     out << endl;
  109.  
  110.     int p = gautiPelna(k1, k3, d.a);
  111.     out << p << endl;
  112.  
  113.     out.close();
  114.  
  115.     return 0;
  116. }
  117.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement