Advertisement
Guest User

Untitled

a guest
Sep 16th, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.09 KB | None | 0 0
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <unistd.h>
  4. using namespace std;
  5.  
  6. #define DIM 10
  7.  
  8. int sort(int vec[], int size)
  9. {
  10.     for(int i = 0; i < DIM - 1; i++)
  11.         for(int i = 0; i < DIM - 1; i++)
  12.             if(vec[i] < vec[i + 1])
  13.                 swap(vec[i], vec[i + 1]);
  14. }
  15.  
  16. void search(int vec[], int elem, int start, int end)
  17. {
  18.     int mid = (start + end) / 2;
  19.     while(vec[mid] != elem && start != end) {
  20.         if(vec[mid] > elem)
  21.             end = mid;
  22.         else if(vec[mid] < elem)
  23.             start = mid;
  24.         else
  25.             cout << "elemento trovato a posizione " << mid << "\n";
  26.     }
  27. }
  28.  
  29. int main() {
  30.  
  31.     int vec[DIM];
  32.     int input;
  33.  
  34.     cout << "fare riferimento al testo\n";
  35.  
  36.     while(true) {
  37.         cout << ") ";
  38.         cin >> input;
  39.         switch(input) {
  40.         case 1:
  41.             cout << "inserimento vettore\n";
  42.             for(int i = 0; i < DIM; i++) {
  43.                 cout << "posizione " << i << ": ";
  44.                 cin >> vec[i];
  45.             }
  46.             break;
  47.         case 2:
  48.             cout << "stampa vettore\n";
  49.             for(int i = 0; i < DIM; i++)
  50.                 cout << vec[i] << "\n";
  51.             break;
  52.         case 3:
  53.             cout << "stampa vettore al contrario\n";
  54.             for(int i = 0; i < DIM; i++)
  55.                 cout << vec[DIM - i] << "\n";
  56.             break;
  57.         case 4:
  58.             cout << "stampa elementi pari\n";
  59.             for(int i = 0; i < DIM; i++)
  60.                 if(!(vec[i] % 2))
  61.                     cout << vec[i] << "\n";
  62.             break;
  63.         case 5:
  64.             cout << "stampa posizione pari\n";
  65.             for(int i = 0; i < DIM; i++)
  66.                 if(!(i % 2))
  67.                     cout << vec[i] << "\n";
  68.             break;
  69.         case 6:
  70.             cout << "stampa elementi dispari\n";
  71.             for(int i = 0; i < DIM; i++)
  72.                 if(vec[i] % 2)
  73.                     cout << vec[i] << "\n";
  74.             break;
  75.         case 7:
  76.             cout << "stampa posizione dispari\n";
  77.             for(int i = 0; i < DIM; i++)
  78.                 if(i % 2)
  79.                     cout << vec[i] << "\n";
  80.             break;
  81.         case 8: {
  82.             int max = vec[0];
  83.             int min = vec[0];
  84.             for(int i = 1; i < DIM; i++) {
  85.                 if(vec[i] > max) max = vec[i];
  86.                 if(vec[i] < min) min = vec[i];
  87.             }
  88.             cout << "min: " << min << "\n" << "max: " << max << "\n";
  89.             break;
  90.         }
  91.         case 9: {
  92.             int s;
  93.             for(int i = 0; i < DIM; i++)
  94.                 s += vec[i];
  95.             cout << "somma elementi vettore: " << s << "\n";
  96.             break;
  97.         }
  98.         case 10: {
  99.             int s;
  100.             for(int i = 0; i < DIM; i += 2)
  101.                 s += vec[i];
  102.             cout << "somma posizioni pari:" << s << "\n";
  103.             for(int i = 1; i < DIM; i += 2)
  104.                 s += vec[i];
  105.             cout << "somma posizioni dispari:" << s << "\n";
  106.             break;
  107.         }
  108.         case 11:
  109.             cout << "recicerca elemento linearmente (lazy)\n> ";
  110.             cin >> input;
  111.             for(int i = 0; i < DIM; i++)
  112.                 if(vec[i] == input) {
  113.                     cout << "elemento " << vec[i] << " a posizione " << i << "\n";
  114.                     break;
  115.                 }
  116.             break;
  117.         case 12:
  118.             cout << "recicerca elemento linearmente (lazy)\n> ";
  119.             cin >> input;
  120.             for(int i = 0; i < DIM; i++)
  121.                 if(vec[i] == input) {
  122.                     cout << "elemento " << vec[i] << " a posizione " << i << "\n";
  123.                 }
  124.             break;
  125.         case 13:
  126.             break;
  127.         case 14:
  128. #if defined(lazy_sort)
  129.             sort(vec.begin(), vec.end());
  130. #else
  131.             sort(vec, DIM);
  132. #endif
  133.             break;
  134.         case 15:
  135.             search(vec, input, 0, DIM);
  136.             break;
  137.         case 16:
  138.             cout << "azzera vettore\n";
  139.             memset(vec, 0, DIM);
  140.             break;
  141.         case 17:
  142.             return 0;
  143.         }
  144.     }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement