befozes202410_ksz_DK_C++.cpp

 1  #include <iostream>         // cin és cout parancsok
 2  #include <vector>           // vector adattípus
 3  #include <algorithm>        // max függvény
 4  #include <iterator>         // distance függvény
 5  #include <numeric>          // accumulate függvény
 6  
 7  using namespace std;
 8  
 9  int main()
10  {
11      setlocale(LC_ALL, "");
12      // 1. feladat - átmásolni az adatokat ide egy megfelelő adatszerkezetbe, pl. vectorba
13      vector<int> uvegek = {5, 2, 2, 4, 3, 2, 4, 10, 5, 5, 3, 5, 4, 3, 3};
14      int lekvar;         // Mari néni ennyi lekvárt akar eltenni
15  
16      cout << "2. feladat" << endl;
17      cout << "Mari néni lekvárja (dl): ";
18      cin >> lekvar;
19      // --------------------------------------------------------------------------------------------
20  
21      cout << "3. feladat" << endl;
22      // C++ megoldás
23      int legn_uveg = *max_element(uvegek.begin(), uvegek.end());
24      auto it = find(uvegek.begin(), uvegek.end(), legn_uveg);
25      auto sorszama = distance(uvegek.begin(), it) + 1;
26      cout << "A legnagyobb üveg: " << legn_uveg << " dl és " << sorszama << ". a sorban." << endl;
27  
28      // "Klasszikus" megoldás: Programozási tétel segítségével (maximumkeresés)
29      int legn_uveg2, sorszama2;
30      legn_uveg2 = uvegek[0];
31      for(int i = 1; i < uvegek.size(); i++)
32      {
33          if(uvegek[i] > legn_uveg2)
34          {
35              legn_uveg2 = uvegek[i];
36              sorszama2 = i + 1;
37          }
38      }
39      cout << "A legnagyobb üveg: " << legn_uveg2 << " dl és " << sorszama2 << ". a sorban." << endl;
40      // --------------------------------------------------------------------------------------------
41  
42      cout << "4. feladat" << endl;
43      // C++ megoldás
44      if(accumulate(uvegek.begin(), uvegek.end(), 0) >= lekvar)
45      {
46          cout << "Elegendő üveg volt." << endl;
47      }
48      else
49      {
50          cout << "Maradt lekvár." << endl;
51      }
52  
53      // "Klasszikus" megoldás: Programozási tétel segítségével (sorozatszámítás - öszegzés)
54      int osszes_urtartalom = 0;
55      for(int i = 0; i < uvegek.size(); i++)
56          osszes_urtartalom += uvegek[i];
57      if(osszes_urtartalom >= lekvar)
58      {
59          cout << "Elegendő üveg volt." << endl;
60      }
61      else
62      {
63          cout << "Maradt lekvár." << endl;
64      }
65      return 0;
66  }