Const
mm = 20;
var
a: array[1..mm, 1..mm] of integer;
i, j, m, s: integer;
begin
Write('Введите число строк (столбцов) матрицы: ');
Readln(m);
Randomize;
Writeln(#13#10, 'Исходная матрица');
for i := 1 to m do
begin
for j := 1 to m do
begin
a[i, j] := Random(99) + 1; { числа 1..99 }
Write(a[i, j]:3)
end;
Writeln
end;
Writeln('*** Главная диагональ ***');
for i := 1 to m do Write(a[i, i]:3);
Writeln;
Writeln('*** Побочная диагональ ***');
for i := 1 to m do Write(a[i, m - i + 1]:3);
Writeln;
Write('Сумма четных элементов по периметру равна ');
s := 0;
for j := 1 to m do
if a[1, j] mod 2 = 0 then s := s + a[1, j];
for j := 1 to m do
if a[m, j] mod 2 = 0 then s := s + a[m, j];
for i := 2 to m-1 do
if a[i, 1] mod 2 = 0 then s := s + a[i, 1];
for i := 2 to m-1 do
if a[i, m] mod 2 = 0 then s := s + a[i, m];
Writeln(s)
end.
Тестовое решение:
Введите число строк (столбцов) матрицы: 10
Исходная матрица
12 81 22 55 45 97 37 95 33 84
4 40 77 85 20 15 40 41 64 16
17 72 42 32 85 94 7 39 65 46
22 23 58 69 53 40 65 49 70 20
90 62 26 60 53 13 19 2 21 31
50 55 8 29 26 39 40 89 70 51
91 98 31 86 62 80 81 9 32 79
49 90 71 44 26 55 46 81 79 73
75 5 18 34 96 67 16 29 43 15
1 76 78 19 28 91 31 39 98 73
*** Главная диагональ ***
12 40 42 69 53 39 81 81 43 73
*** Побочная диагональ ***
84 64 39 65 13 26 86 71 5 1
Сумма четных элементов по периметру равна 646