ВАРИАНТ 1
PROGRAM Matrix1;
CONST
N = 15;
VAR
m : ARRAY [1..N, 1..N] OF INTEGER;
i : INTEGER;
j : INTEGER;
BEGIN
(* Способ 1 *)
FOR i := 1 TO N DO
FOR j := 1 TO N DO
m[i,j] := 0;
(* Заполняем единицами строку 1 *)
FOR j := 1 TO N DO
m[1, j] := 1;
(* Заполняем единицами строку N *)
FOR j := 1 TO N DO
m[N, j] := 1;
(* Заполняем единицами столбец 1 *)
FOR i := 1 TO N DO
m[i, 1] := 1;
(* Заполняем единицами столбец N *)
FOR i := 1 TO N DO
m[i, N] := 1;
(* Выводим заполненный массив на экран *)
FOR i := 1 TO N DO
BEGIN
FOR j := 1 TO N DO
Write(m[i,j] :3);
WriteLn;
END;
END.
ВАРИАНТ 2
PROGRAM Matrix2;
CONST
N = 15;
VAR
m : ARRAY [1..N, 1..N] OF INTEGER;
i : INTEGER;
j : INTEGER;
BEGIN
(* Способ 2 *)
(* Заполняем единицами всю матрицу *)
FOR i := 1 TO N DO
FOR j := 1 TO N DO
m[i,j] := 1;
(* Заполняем нулями внутренний квадрат *)
FOR i := 2 TO N - 1 DO
FOR j := 2 TO N - 1 DO
m[i,j] := 0;
(* Выводим заполненный массив на экран *)
FOR i := 1 TO N DO
BEGIN
FOR j := 1 TO N DO
Write(m[i,j] :3);
WriteLn;
END;
END.