Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Project3;
- {$APPTYPE CONSOLE}
- {$R *.res}
- uses
- System.SysUtils;
- type
- Matrix = array of array of Integer;
- function Check (const MIN, MAX: Integer; Num: Integer): Integer;
- var
- IsCorrect: Boolean;
- begin
- repeat
- try
- ReadLn(Num);
- if ((Num < MIN) or (Num > MAX)) then
- begin
- Writeln ('Ошибка! Введите число от ', MIN , ' до ', MAX);
- IsCorrect := False;
- end
- else
- IsCorrect := True;
- except
- begin
- WriteLn ('Ошибка! Введите число от ', MIN , ' до ', MAX);
- IsCorrect := False;
- end;
- end
- until IsCorrect;
- Check := Num;
- end;
- function СheckSymmetry (var N, Num1, Num2: Integer): Integer;
- var
- k, i, m : Integer;
- begin
- k := 0;
- i := 0;
- m := 0;
- if Num1 <> Num2 then
- m :=1;
- end;
- procedure Main;
- var
- Matr : Matrix;
- N, k, i, m : Integer;
- const
- MIN_N = 2;
- MIN_INT = Low(Integer);
- MAX_INT = High(Integer);
- begin
- Writeln ('Задача: Дана квадратная матрица А порядка N. Проверить, является ли данная матрица симметричной.', #10, #13, 'Введите N (порядок квадратной матрицы)');
- N := Check (MIN_N, MAX_INT, N);
- Setlength (Matr, N, N);
- WriteLn ('Введите элементы матрицы');
- for i := 0 to (N - 1) do
- for k := 0 to (N - 1) do
- begin
- Writeln('Введите А[', (i + 1), '][', (k + 1), ']');
- Matr[i][k] := Check (MIN_INT, MAX_INT, Matr[i][k]);
- end;
- i := 0;
- k := 0;
- while i < N do
- begin
- while k < N do
- begin
- m := СheckSymmetry (N, Matr[i][k], Matr [k][i]);
- Inc(k);
- end;
- Inc(i);
- end;
- Writeln ('Введенная матрица:');
- for i := 0 to (N - 1) do
- begin
- Writeln ('');
- for k := 0 to (N - 1) do
- begin
- Write(Matr[i][k], ' ');
- end;
- end;
- Writeln ('');
- if m = 0 then
- Writeln ('Введенная матрица симметрична')
- else
- Writeln ('Введенная матрица несимметрична');
- ReadLn;
- end;
- begin
- Main;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement