Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.47 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.     const string TASK = "Задача: Дана квадратная матрица А порядка N. Проверить, является ли данная матрица симметричной.";
  57.     const string INPUT_N = "Введите N (порядок квадратной матрицы)";
  58.     const string INPUT_ELEMENT = "Введите элементы матрицы";
  59.     const string INPUT_TRUE = "Введенная матрица симметрична";
  60.     const string INPUT_FALSE = "Введенная матрица несимметрична";
  61.     int N = 0;
  62.     int k = 0;
  63.     int i;
  64.     int m = 0;
  65.  
  66.     cout << TASK << endl << INPUT_N << endl;
  67.     N = Check(MIN_N, MAX_INT);
  68.     int** Matr = new int* [N];
  69.  
  70.     for (int i = 0; i < N; i++) {
  71.         Matr[i] = new int[N];
  72.     }
  73.     for (i = 0; i < N; i++) {
  74.         for (k = 0; k < N; k++) {
  75.             cout << "Введите А[" << (i + 1) << "][" << (k + 1) << "]" << endl;
  76.             Matr[i][k] = Check(MIN_INT, MAX_INT);
  77.         }
  78.     }
  79.  
  80.  
  81.     for (i = 0; i < N; i++) { // Проверка на симметричность
  82.         for (k = 0; k < N; k++) {
  83.             m = СheckSymmetry(Matr[i][k], Matr[k][i], m);
  84.         }
  85.     }
  86.     cout << "Введенная матрица:"; // Вывод матрицы
  87.     for (i = 0; i < N; i++) {
  88.         cout << endl;
  89.         for (k = 0; k < N; k++) {
  90.             cout << Matr[i][k] << " ";
  91.         }
  92.     }
  93.     if (m == 0) // Вывод сообщения о симметричности
  94.         cout << endl << INPUT_TRUE << endl;
  95.     else
  96.         cout << endl << INPUT_FALSE << endl;
  97.     return 0;
  98. }
  99.  
  100. int test()
  101. {
  102.     main();
  103.     return 0;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement