Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.32 KB | None | 0 0
  1. #include <iostream>
  2. #include <locale.h>
  3. #include <windows.h>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8. int Check(int MIN, int MAX)
  9. {
  10.     bool IsCorrect;
  11.     SetConsoleCP(1251);
  12.     SetConsoleOutputCP(1251);
  13.     int Num;
  14.     IsCorrect = TRUE;
  15.     do {
  16.         try {
  17.             cin >> Num;
  18.             if ((Num > MIN) && (Num < MAX))
  19.             {
  20.                 IsCorrect = FALSE;
  21.             }
  22.             else {
  23.                 cout << "Ошибка! Введите число от " << MIN << " до " << MAX << endl;
  24.                 cin.clear();
  25.                 cin.ignore();
  26.                 IsCorrect = TRUE;
  27.             }
  28.         }
  29.         catch(exception e) {
  30.             cout << "Ошибка! Введите число от " << MIN << " до " << MAX << endl;
  31.  
  32.             cin.clear();
  33.             cin.ignore();
  34.         }
  35.     }
  36.     while (IsCorrect);
  37.     return Num;
  38. }
  39.  
  40. int СheckSymmetry(int Num1, int Num2, int m)
  41. {
  42.     if (Num1 != Num2)
  43.     {
  44.         m = 1;
  45.     }
  46.     return m;
  47. }
  48.  
  49. int main()
  50. {
  51.     SetConsoleCP(1251);
  52.     SetConsoleOutputCP(1251);
  53.     const int MIN_N = 2;
  54.     const int MAX_INT = INT_MAX;
  55.     const int MIN_INT = INT_MIN;
  56.     int N = 0;
  57.     int k = 0;
  58.     int i;
  59.     int m = 0;
  60.  
  61.     cout << "Задача: Дана квадратная матрица А порядка N. Проверить, является ли данная матрица симметричной." << endl << "Введите N (порядок квадратной матрицы)" << endl;
  62.     N = Check(MIN_N, MAX_INT);
  63.     int** Matr = new int* [N];
  64.  
  65.     for (int i = 0; i < N; i++)
  66.     {
  67.         Matr[i] = new int[N];
  68.     }
  69.     cout << "Введите элементы матрицы";
  70.     for (i = 0; i < N; i++) {
  71.         for (k = 0; k < N; k++) {
  72.             cout << "Введите А[" << (i + 1) << "][" << (k + 1) << "]" << endl;
  73.             Matr[i][k] = Check(MIN_INT, MAX_INT);
  74.         }
  75.     }
  76.  
  77.  
  78.     for (i = 0; i < N; i++) { // Проверка на симметричность
  79.         for (k = 0; k < N; k++) {
  80.             m = СheckSymmetry(Matr[i][k], Matr[k][i], m);
  81.         }
  82.     }
  83.     cout << "Введенная матрица:"; // Вывод матрицы
  84.     for (i = 0; i < N; i++) {
  85.         cout << endl;
  86.         for (k = 0; k < N; k++) {
  87.             cout << Matr[i][k] << " ";
  88.         }
  89.     }
  90.     if (m == 0) // Вывод сообщения о симметричности
  91.         cout << endl << "Введенная матрица симметрична" << endl;
  92.     else
  93.         cout << endl << "Введенная матрица несимметрична" << endl;
  94.     return 0;
  95. }
  96.  
  97. int test()
  98. {
  99.     main();
  100.     return 0;
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement