Advertisement
Guest User

Untitled

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