Advertisement
Guest User

Untitled

a guest
Nov 12th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.03 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.  
  15. var
  16. isCorrect: Boolean;
  17.  
  18. begin
  19.    repeat
  20.       try
  21.          ReadLn(Num);
  22.          if ((Num < Min) or (Num > Max)) then
  23.          begin
  24.             Writeln ('Ошибка! Введите число от ', Min , ' до ', Max);
  25.             IsCorrect := False;
  26.          end
  27.          else
  28.             IsCorrect := True;
  29.       except
  30.       begin
  31.          Writeln ('Ошибка! Введите число от ', Min , ' до ', Max);
  32.          IsCorrect := False;
  33.       end;
  34.       end
  35.    until IsCorrect;
  36.    Check := Num;
  37. end;
  38.  
  39. function СheckSymmetry (N, Num1, Num2): Integer;
  40. var
  41. k, i, m : Integer;
  42. begin
  43.    for i := 0 to (N-1) do
  44.       for k := 0 to (N-1) do
  45.       begin
  46.          if Num1 <> Num2 then
  47.          m:=1;
  48.       end;
  49. end;
  50.  
  51. procedure Main;
  52.  
  53. var
  54. Matr : Matrix;
  55. N, k, i, m : Integer;
  56.  
  57. const
  58. MinN = 2;
  59. MinInt = Low(Integer);
  60. MaxInt = High(Integer);
  61. TASK = 'Задача: Дана квадратная матрица А порядка N. Проверить, является ли данная матрица симметричной.';
  62. InputN = 'Введите N (порядок квадратной матрицы)';
  63. InputElement = 'Введите элементы матрицы';
  64. InputTrue  = 'Введенная матрица симметрична';
  65. InputFalse  = 'Введенная матрица несимметрична';
  66.  
  67. begin
  68.    Writeln (TASK, InputN);
  69.    N := Check (MinN, MaxInt, N);
  70.    Setlength (Matr, N, N);
  71.    Writeln (InputElement);
  72.    for i := 0 to (N-1) do
  73.       for k := 0 to (N-1) do
  74.       begin
  75.          Writeln('Введите А[',(i+1),'][',(k+1),']');
  76.          Matr[i][k] := Check (MinInt, MaxInt, Matr[i][k]);
  77.       end;
  78.    m := СheckSymmetry(N, Matr[i][k], Matr[k][i]);
  79.    if m=0 then
  80.    Writeln (InputTrue)
  81.    else
  82.    Writeln (InputFalse);
  83.    Readln;
  84. end;
  85.  
  86. begin
  87.    Main;
  88. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement