Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. program Project3;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. {$R *.res}
  6.  
  7. uses
  8. System.SysUtils;
  9.  
  10. type
  11. Matrix = array of array of Integer;
  12.  
  13. function Check (const MIN, MAX: Integer; Num: Integer): Integer;
  14. var
  15. IsCorrect: Boolean;
  16. begin
  17. repeat
  18. try
  19. ReadLn(Num);
  20. if ((Num < MIN) or (Num > MAX)) then
  21. begin
  22. Writeln ('Ошибка! Введите число от ', MIN , ' до ', MAX);
  23. IsCorrect := False;
  24. end
  25. else
  26. IsCorrect := True;
  27. except
  28. begin
  29. WriteLn ('Ошибка! Введите число от ', MIN , ' до ', MAX);
  30. IsCorrect := False;
  31. end;
  32. end
  33. until IsCorrect;
  34. Check := Num;
  35. end;
  36.  
  37. function СheckSymmetry (var N, Num1, Num2: Integer): Integer;
  38. var
  39. k, i, m : Integer;
  40. begin
  41. k := 0;
  42. i := 0;
  43. m := 0;
  44. if Num1 <> Num2 then
  45. m :=1;
  46. end;
  47.  
  48. procedure Main;
  49. var
  50. Matr : Matrix;
  51. N, k, i, m : Integer;
  52. const
  53. MIN_N = 2;
  54. MIN_INT = Low(Integer);
  55. MAX_INT = High(Integer);
  56.  
  57. begin
  58. Writeln ('Задача: Дана квадратная матрица А порядка N. Проверить, является ли данная матрица симметричной.', #10, #13, 'Введите N (порядок квадратной матрицы)');
  59. N := Check (MIN_N, MAX_INT, N);
  60. Setlength (Matr, N, N);
  61. WriteLn ('Введите элементы матрицы');
  62. for i := 0 to (N - 1) do
  63. for k := 0 to (N - 1) do
  64. begin
  65. Writeln('Введите А[', (i + 1), '][', (k + 1), ']');
  66. Matr[i][k] := Check (MIN_INT, MAX_INT, Matr[i][k]);
  67. end;
  68. i := 0;
  69. k := 0;
  70. while i < N do
  71. begin
  72. while k < N do
  73. begin
  74. m := СheckSymmetry (N, Matr[i][k], Matr [k][i]);
  75. Inc(k);
  76. end;
  77. Inc(i);
  78. end;
  79. Writeln ('Введенная матрица:');
  80. for i := 0 to (N - 1) do
  81. begin
  82. Writeln ('');
  83. for k := 0 to (N - 1) do
  84. begin
  85. Write(Matr[i][k], ' ');
  86. end;
  87. end;
  88. Writeln ('');
  89. if m = 0 then
  90. Writeln ('Введенная матрица симметрична')
  91. else
  92. Writeln ('Введенная матрица несимметрична');
  93. ReadLn;
  94. end;
  95.  
  96. begin
  97. Main;
  98. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement