Advertisement
Lavig

Лабораторна робота №11 (Завдання 3)

Nov 15th, 2024
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.47 KB | None | 0 0
  1. #include <iostream>
  2. #include <windows.h>
  3. #include <format>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     SetConsoleOutputCP(1251);
  9.     int const n{ 4 };
  10.     int i{}, j{}, max_i{}, max_j{}, line_index{}, column_index{};
  11.     double max{}, line_sum{}, line_product{ 1 }, column_sum{}, column_product{ 1 }, main_diagonal_sum{}, main_diagonal_product{ 1 }, secondary_diagonal_sum{}, secondary_diagonal_product{ 1 };
  12.     double Z[n][n]{
  13.         {2.3, -5, 6.2, 12},
  14.         {10.3, 0.23, 32.6, 8.33},
  15.         {-7.1, 4, -0.25, 9},
  16.         {-1, -7.7, 8, 1.98} };
  17.     while (true) {
  18.         cout << "Введіть індекс рядка, для якого будуть проводитись розрахунки (від 0 до 3): ";
  19.         cin >> line_index;
  20.         if (cin.fail() || cin.peek() != '\n' || line_index < 0 || line_index > 3) {
  21.             cin.clear();
  22.             cin.ignore(32767, '\n');
  23.             cout << "Індекс рядка було введено неправильно. Спробуйте ще раз!" << endl;
  24.             continue;
  25.         }
  26.         else {
  27.             break;
  28.         }
  29.     }
  30.     while (true) {
  31.         cout << "Введіть індекс стовпця, для якого будуть проводитись розрахунки (від 0 до 3): ";
  32.         cin >> column_index;
  33.         if (cin.fail() || cin.peek() != '\n' || column_index < 0 || column_index > 3) {
  34.             cin.clear();
  35.             cin.ignore(32767, '\n');
  36.             cout << "Індекс стовпця було введено неправильно. Спробуйте ще раз!" << endl;
  37.             continue;
  38.         }
  39.         else {
  40.             break;
  41.         }
  42.     }
  43.     max = Z[0][0];
  44.     cout << "Задана матриця: " << endl;
  45.     for (i = 0; i < n; i++) {
  46.         for (j = 0; j < n; j++) {
  47.             if (Z[i][j] > max) {
  48.                 max = Z[i][j];
  49.                 max_i = i;
  50.                 max_j = j;
  51.             }
  52.             if (i == line_index) {
  53.                 line_sum += Z[i][j];
  54.                 line_product *= Z[i][j];
  55.             }
  56.             if (j == column_index) {
  57.                 column_sum += Z[i][j];
  58.                 column_product *= Z[i][j];
  59.             }
  60.             cout << format("{:10}", Z[i][j]);
  61.             if (i == j) {
  62.                 main_diagonal_sum += Z[i][j];
  63.                 main_diagonal_product *= Z[i][j];
  64.             }
  65.             if (i + j == n - 1) {
  66.                 secondary_diagonal_sum += Z[i][j];
  67.                 secondary_diagonal_product *= Z[i][j];
  68.             }
  69.         }
  70.         cout << endl;
  71.     }
  72.     cout << "Максимальний елемент  матриці - " << max << endl;
  73.     cout << "Індекс рядка максимального елемента  матриці - " << max_i << endl;
  74.     cout << "Індекс стовпця максимального елемента  матриці - " << max_j << endl;
  75.     cout << "Сума елементів рядка із заданим індексом (" << line_index << ") - " << line_sum << endl;
  76.     cout << "Добуток елементів рядка із заданим індексом (" << line_index << ") - " << line_product << endl;
  77.     cout << "Сума елементів стовпця із заданим індексом (" << column_index << ") - " << column_sum << endl;
  78.     cout << "Добуток елементів стовпця із заданим індексом (" << column_index << ") - " << column_product << endl;
  79.     cout << "Сума елементів головної діагоналі - " << main_diagonal_sum << endl;
  80.     cout << "Добуток елементів головної діагоналі - " << main_diagonal_product << endl;
  81.     cout << "Сума елементів побічної діагоналі - " << secondary_diagonal_sum << endl;
  82.     cout << "Добуток елементів побічної діагоналі - " << secondary_diagonal_product << endl;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement