program Task;
const
M = 3;
var
a:array[1..M, 1..M]of integer;
i, j: integer;
sum: integer;
result: real;
begin
{ Заполняем переменные }
sum := 0;
result := 0.0;
writeln('----------------------------------');
{ Заполняем массив случайным набором элементов }
for i:=1 to M do
begin
for j:=1 to M do
begin
a[i,j]:= random (40)-20;
write(a[i,j]:4);
end;
writeln();
end;
{ Считаем количество элементов }
for i:=1 to M do
for j:=1 to M do
sum := sum + a[i,j];
writeln('Sum: ',sum);
{ Если количество элементов > 0 - выполняем возведение в квадрат }
if(sum > 0)then
for i:=1 to((M div 2)+(m mod 2))do
for j:=1 to M do
a[i*2-1,j]:= a[i*2-1,j]*a[i*2-1,j]
{ Иначе - увеличиваем элементы побочной диагонали на 2 }
else
for i:=1 to M do
a[M-i+1,i]:= a[M-i+1,i]+ 2;
for i:=1 to M do
begin
for j:=1 to M do
write(a[i,j]:4);
writeln();
end;
writeln('----------------------------------');
end.
{*
Пример результатов:
----------------------------------
9 5 12
-9 -2 -15
-4 19 -4
Sum: 11
81 25 144
-9 -2 -15
16 361 16
----------------------------------
----------------------------------
7 2 13
-16 -3 17
-10 -16 3
Sum: -3
7 2 15
-16 -1 17
-8 -16 3
----------------------------------
*}
Тоже самое, но менее развёрнуто:
program Task;
const
M = 3;
var
a:array[1..M, 1..M]of integer;
i, j: integer;
sum: integer;
result: real;
begin
sum := 0;
result := 0.0;
for i:=1 to M do
for j:=1 to M do
a[i,j]:= random (40)-20;
for i:=1 to M do
for j:=1 to M do
sum := sum + a[i,j];
if(sum > 0)then
for i:=1 to((M div 2)+(m mod 2))do
for j:=1 to M do
a[i*2-1,j]:= a[i*2-1,j]*a[i*2-1,j]
else
for i:=1 to M do
a[M-i+1,i]:= a[M-i+1,i]+ 2;
end.