Const m=10; n=8; var a:array[1..m,1..n] of integer; i,j:integer; p:double;
begin Randomize; Writeln('Исходный массив'); for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=Random(101)-50; Write(a[i,j]:4); end; Writeln end; p:=1; for j:=1 to n do if a[3,j]>0 then p:=p*a[3,j]; Writeln('Искомое произведение: ',p) end.
procedure oddDec(var a,b:integer); //подпрограмме переданы аргументы a и b //процедура для вычитания в нечётном элементе begin; a:=a-b; end;
procedure NotoddInc(var a,b:integer); //подпрограмме переданы аргументы a и b //процедура для сложения в чётном элементе begin; a:=a+b; end;
begin randomize; readln(a); //ввод a readln(b); //ввод b writeln('Array:'); for i:=1 to 10 do //весь массив begin; ar[i]:=random(-20,80); //случайные числа от -20 до 80 включительно write(ar[i]:4); //вывод if odd(i) then oddDec(ar[i],b) else NotoddInc(ar[i],a); {если нечётное, то первая процедура, иначе вторая. Обращаю внимания на то, что элементы меняются сразу после вывода} end; writeln; writeln('Final array:'); //вывод получившегося массива for i:=1 to 10 do write(ar[i]:4); end.
Пример ввода: 20 10 Пример вывода: Array: 10 16 0 60 23 4 22 -20 4 55 Final array: 0 36 -10 80 13 24 12 0 -6 75
m=10;
n=8;
var
a:array[1..m,1..n] of integer;
i,j:integer;
p:double;
begin
Randomize;
Writeln('Исходный массив');
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=Random(101)-50;
Write(a[i,j]:4);
end;
Writeln
end;
p:=1;
for j:=1 to n do
if a[3,j]>0 then p:=p*a[3,j];
Writeln('Искомое произведение: ',p)
end.
Тестовое решение:
Исходный массив
35 30 35 -25 -50 8 -20 47
-34 -26 -7 34 -9 -31 10 -46
-17 -21 27 8 27 41 35 -48
30 -44 25 48 30 -20 10 -6
-3 -10 45 -33 3 -38 -11 -8
47 -25 -27 -7 2 -20 -4 -48
-38 32 -29 -41 31 16 46 44
45 33 -4 45 34 -18 -33 37
15 49 -14 -49 -25 -8 1 -30
41 -15 11 1 17 -8 0 -1
Искомое произведение: 8368920