program mn;
uses crt;
const m=7;n=9;
var mas:array[1..m,1..n] of Integer ;
m1, m2:array[1..n] of Integer ;
i, j, k:Integer;
begin
Randomize;
write('Исходный массив:') ;
for i:=1 to m do begin
writeln;
for j:=1 to n do begin
mas[i, j]:=random(100);
write(mas[i, j]:3) end end ;
j:=0;
repeat
for i:=1 to n do begin
m1[i]:=mas[1+j,i];
m2[i]:=mas[m-j,i];
mas[1+j,i]:=m2[i];
mas[m-j,i]:=m1[i]; end;
j:=j+1
until j>m div 2;
writeln;
write('Преобразованный массив:') ;
for i:=1 to m do begin
writeln;
for j:=1 to n do
write(mas[i, j] :3) end;
readln;
end.
Объяснение:
В разделе const задаем нужный размер исходного массива.
Из сложностей может возникнуть только генерация случайного значения. Функция random(x) возвращает случайное число от 0 до x-1. Когда функция возвращает 0 (минимальное значение), нам нужно, чтобы оно превратилось в 20. Будем отнимать 20 от значения функции random(x):
a[i] := random(x) - 20;
Самое большое число, которое мы хотим получить - 60. Так как мы отнимаем 20, самое большое число, которое должна вернуть функция random(x) равно 80. Значит, x равен 81:
a[i] := random(81) - 20;
Кстати, произведение может получаться слишком большим, а тип данных integer может хранить числа не больше 32767. Поэтому мы должны хранить произведение как longint. Оно позволяет хранить числа до
Код
var
a: array[1..1000] of integer;
i, n: integer;
ans: longint;
begin
read(n);
ans:=1;
for i:=1 to n do
begin
a[i]:=random(81)-20;
if a[i] > 20 then ans:=ans*a[i];
end;
writeln(ans);
end.