aLT22

4semlab4 (C++) Hudyakov's LAB

May 25th, 2015
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.33 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <cmath>
  4. #include <math.h>
  5.  
  6. using namespace std;
  7.  
  8. class Container {
  9. protected:
  10.     vector <int> mas;
  11. public:
  12.     virtual void sort() = 0;
  13.     virtual void foreach() = 0;
  14.     virtual void print() = 0;
  15. };
  16.  
  17. class Bubble : public Container {
  18. public:
  19.     Bubble() {
  20.         mas.clear();
  21.     }
  22.     Bubble(int n) {
  23.         cout << "Enter massiv: ";
  24.         int temp = 0;
  25.         for (int i = 0; i < n; i++) {
  26.             cin >> temp;
  27.             mas.push_back(temp);
  28.         }
  29.         cout << endl;
  30.     }
  31.     ~Bubble() {
  32.         mas.clear();
  33.     }
  34.     void sort() {
  35.         for (int i = mas.size() - 1; i >= 0; i--) {
  36.             for (int j = 0; j < i; j++) {
  37.                 if (mas[j] > mas[j+1]) {
  38.                     int temp = mas[j];
  39.                     mas[j] = mas[j + 1];
  40.                     mas[j + 1] = temp;
  41.                 }
  42.             }
  43.         }
  44.     }
  45.     void foreach() {
  46.         for (int i = 0; i < mas.size(); i++) {
  47.             mas[i] = (int)sqrt(mas[i]);
  48.         }
  49.     }
  50.     void print() {
  51.         for (int i = 0; i < mas.size(); i++) {
  52.             cout << mas[i] << ' ';
  53.         }
  54.         cout << endl;
  55.     }
  56. };
  57.  
  58. class Choice : public Container {
  59. public:
  60.     Choice() {
  61.         mas.clear();
  62.     }
  63.     Choice(int n) {
  64.         cout << "Enter the second massive: ";
  65.         int temp = 0;
  66.         for (int i = 0; i < n; i++) {
  67.             cin >> temp;
  68.             mas.push_back(temp);
  69.         }
  70.         cout << endl;
  71.     }
  72.     ~Choice() {
  73.         mas.clear();
  74.     }
  75.     void sort() {
  76.         for (int i = 0; i < mas.size() - 1; i++) {
  77.             int min_i = i;
  78.             for (int j = i + 1; j < mas.size(); j++) {
  79.                 if (mas[j] < mas[min_i]) {
  80.                     min_i = j;
  81.                 }
  82.             }
  83.             int temp = mas[i];
  84.             mas[i] = mas[min_i];
  85.             mas[min_i] = temp;
  86.         }
  87.     }
  88.     void foreach() {
  89.         for (int i = 0; i < mas.size(); i++) {
  90.             mas[i] = (int)log(mas[i]);
  91.         }
  92.     }
  93.     void print() {
  94.         for (int i = 0; i < mas.size(); i++) {
  95.             cout << mas[i] << ' ';
  96.         }
  97.         cout << endl;
  98.     }
  99. };
  100.  
  101. int main() {
  102.     setlocale(LC_ALL, "Russian");
  103.     int n;
  104.     cout << "Vvedite razmernost' massiva: ";
  105.     cin >> n;
  106.     label : Choice c(n);
  107.     Bubble b(n);
  108.     char choice;
  109.     cout << "Vvedite s kakim massivom rabotat'(1 - pervii, 2 - vtoroi): ";
  110.     cin >> choice;
  111.     if (choice == '1') {
  112.         c.sort();
  113.         c.print();
  114.         c.foreach();
  115.         c.print();
  116.     } else if (choice == '2') {
  117.         b.sort();
  118.         c.print();
  119.         b.foreach();
  120.         b.print();
  121.     } else {
  122.         char choice_final;
  123.         cout << "Enter the final solution(Exit or Not): ";
  124.         cin >> choice_final;
  125.         if (choice_final == 'n') {
  126.             goto label;
  127.         } else {
  128.             system("pause");
  129.             return 0;
  130.         }
  131.     }
  132. }
Advertisement
Add Comment
Please, Sign In to add comment