SHARE
TWEET

LW6 Ilona

parad0xxxxx Jan 24th, 2020 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <iomanip> // для функции setw()   задает разную ширину поля вывода строк
  3. #include <clocale> // для подключения языка
  4. #include <time.h>
  5. using namespace std;
  6.  
  7. int main() {
  8.     int RJAD = 3, COL = 4, a = 2, b = -20, c = 10;                                                                                                            //  что значит конст?
  9.     setlocale(LC_ALL, "Russian");
  10.     cout << "Введите количество рядов : " << endl;
  11.     //  cin >> RJAD;
  12.     cout << "Введите количество столбцов : " << endl;
  13.     //  cin >> COL;
  14.  
  15.     int** arr = new int* [RJAD]; //hranit stro4ki,создали massiv ukazatelej na stro4ki ( na kazdij otd massiv ) указатель на каждый ряд!
  16.                                                                      //в кажд ячейку ложить указатель на  др массив (ряд с колич колонн)
  17.     for (int i = 0; i < RJAD; i++)
  18.         arr[i] = new int[COL];
  19.  
  20.     cout << "Выберите и введите соответствующий номер : 1 - ввод массива вручную ; 2 - с помощью генератора:   ";
  21.     //  cin >> a;
  22.  
  23.     if (a == 1) {
  24.  
  25.         cout << "Введите элементы рядов и столбцов: " << endl;
  26.  
  27.         for (int i = 0; i < RJAD; i++) {
  28.             cout << "Введите элементы  " << i + 1 << "-ого ряда: " << endl;
  29.             //cout << endl;
  30.             for (int j = 0; j < COL; j++) {
  31.                 cout << "Введите " << j + 1 << "-й элемент ряда: ";
  32.  
  33.                 cin >> arr[i][j];
  34.                 //cout << setw(4) << arr[i][j];
  35.  
  36.             }
  37.             cout << endl;
  38.  
  39.         }
  40.         for (int i = 0; i < RJAD; i++) {
  41.             for (int j = 0; j < COL; j++) {
  42.                 cout << setw(4) << arr[i][j];
  43.  
  44.             }
  45.             cout << endl;
  46.  
  47.         }
  48.  
  49.     }
  50.  
  51.     else if (a == 2) {
  52.         cout << "Введите начальное число диапазона массива: " << endl;
  53.         //      cin >> b;
  54.         cout << "Введите завершающее число диапазона массива: " << endl;
  55.         //      cin >> c;
  56.         srand(time(NULL));
  57.  
  58.  
  59.         for (int i = 0; i < RJAD; i++) {
  60.  
  61.             arr[i] = new int[COL];  // в каждый элемент присваиваем новый динамический массив
  62.         }
  63.  
  64.  
  65.         for (int i = 0; i < RJAD; i++) {     // смещаемся на элемент вперед от одного к второму массиву, когда отработает внутр цикл
  66.  
  67.             for (int j = 0; j < COL; j++) {   // и идем по всем его элементам в строчке
  68.  
  69.  
  70.                 arr[i][j] = rand() % (c - b + 1) + b; // и опять наполняем данными
  71.  
  72.                 cout << setw(5) << arr[i][j];
  73.  
  74.             }
  75.             cout << endl;
  76.         }
  77.     }
  78.  
  79.     else { cout << "Введенные значения не соответствуют номерам 1 и 2! Попробуйте еще раз! " << endl; }
  80.     cout << "---------------------------------" << endl;
  81.     // Aprēķināt negatīvu elementu reizinājumu tajās masīva kolonnās, kurās ir vismaz viens pozitīvs elements.
  82.  
  83.     int Umn;
  84.     bool isPositive;
  85.     bool isFirst;
  86.     for (int j = 0; j < COL; j++) {
  87.         Umn = 0;
  88.         isPositive = false;
  89.         isFirst = false;
  90.         for (int i = 0; i < RJAD; i++) {
  91.  
  92.             if (arr[i][j] >= 0) {
  93.                 isPositive = true;
  94.             }
  95.  
  96.             else if (!isFirst && arr[i][j] < 0) {
  97.                 Umn = arr[i][j];
  98.                 isFirst = true;
  99.             }
  100.             else if (isFirst && arr[i][j] < 0) {
  101.                 Umn = Umn * arr[i][j];
  102.             }
  103.  
  104.  
  105.  
  106.         }
  107.         if (isPositive)
  108.         {
  109.             cout << setw(5) << Umn;
  110.         }
  111.         else {
  112.             cout << setw(5) << "-";
  113.         }
  114.  
  115.     }
  116.     //for (int j = 0; j < COL; j++) {
  117.         //for (int i = 0; i < RJAD; i++) {
  118.             //if (arr[i][j] < 0) {
  119.             //  cout << " Произведение негативных " << j + 1 << "-ого столбца равно " << Umn << endl;
  120.             //  Umn = 1;
  121.         //  }
  122.         //}
  123.     //}
  124. //  }
  125.  
  126.     for (int i = 0; i < RJAD; i++)
  127.         delete[] arr[i];
  128.     delete[] arr;
  129.  
  130.  
  131.     return 0;
  132. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top