Поделитесь своими знаниями, ответьте на вопрос:
Всем ! люди добрые решением. первую отправил на проверку ! сейчас вторая. в матрице a(m x m) найти сумму элементов четных столбцов. если эта сумма положительна, то все элементы нечетных строк возвести в квадрат. в противном случае ко всем элементам побочной диагонали прибавить число 2.
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.