uses crt;
{размер массива}
const n = 3;
{объявляем переменные}
var
{матрица размера 9x9}
a: array[1..n, 1..n] of integer;
{сумма}
sum: integer;
{индексы для циклов}
i, j: integer;
begin
clrscr;
randomize;
{заполняем массив}
for i := 1 to n do
for j := 1 to n do
a[i,j] := random(10);
{печатаем массив}
writeln;
writeln('Massiv');
for i := 1 to n do
begin
for j := 1 to n do
write(a[i,j]:3);
writeln;
end;
{находим сумму заштрихованной области}
{Правая половина}
sum := 0;
for i := 1 to n div 1+1 do
for j := i to n - i + 1 do
sum := sum + a[i, j];
{Печатаем сумму заштрихованной области}
writeln;
writeln;
writeln('Summa = ', sum);
readln;
end.
program MatrixArea;
const N = 5;
var
matrix: array[1..N, 1..N] of integer;
i, j: integer;
edge: integer;
sum: integer;
min: integer;
begin
randomize;
{заполняем массив}
for i := 1 to N do
for j := 1 to N do
matrix[i][j] := Random(50);
{печатаем массив}
for i := 1 to N do
begin
for j := 1 to N do
Write(matrix[i][j]:3);
WriteLn();
end;
WriteLn();
{печатаем заштрихованную область массива}
{находим минимальный элемент и сумму всех элементов в заштрихованной области}
edge := N;
min := matrix[1][edge];
sum := 0;
for i := 1 to N do
begin
for j := 1 to N do
begin
if (j >= edge) then
begin
sum := sum + matrix[i][j];
if (min > matrix[i][j]) then
min := matrix[i][j];
Write(matrix[i][j]:3);
end
else
Write('..':3);
end;
if (i < N div 2 + 1) then
edge := edge - 1
else
edge := edge + 1;
WriteLn();
end;
WriteLn();
WriteLn('Сумма: ', sum);
WriteLn('Минимальный элемент: ', min);
end.