Даны масивы A(10) B(15). напечатать массив в котором произведение положительных элиментов больше. паскаль с помощью подпрограммы .Процедуры, ввод с клавиатуры

Даны масивы A(10) B(15). напечатать массив в котором произведение положительных элиментов больше. паскаль с помощью подпрограммы .Процедуры, ввод с клавиатуры
Гость
Ответ(ы) на вопрос:
Гость
type   V = array of integer; function ProdPos(a: V): longint; var   i: integer; begin   Result := 1;   foreach var p: longint in a do     if p > 0 then Result := Result * p end; procedure InitMas(var a: V; title: string); var   i: integer; begin   writeln(title, '(', length(a, 0), '). Вводите элементы.');   for i := 0 to length(a, 0) - 1 do     read(a[i]) end; procedure GetMas(var a: V; dim: integer; title: string); begin   SetLength(a, dim);   InitMas(a, title); end; const   n1 = 10;   n2 = 15; var   A, B: V; begin   GetMas(A, n1, 'Массив А');   GetMas(B, n2, 'массив B');   writeln('Большее произведение положительных ', max(ProdPos(A), ProdPos(B))) end. Тестовый прогон: Массив А(10). Вводите элементы. 1 1 1 1 2 1 2 2 1 5 массив B(15). Вводите элементы. 1 0 2 4 0 1 -3 -4 1 2 3 1 -3 0 2 Большее произведение положительных 96
Гость
procedure Vvod(Var Q:mas; p:integer); var i:integer; begin for i:=1 to p do read(Q[i]); end; program obrab(N:mas; w:integer; var max:real;); var i:integer; begin max:=1; for i:=1 to w do begin if N[i]>0 then max:=max*N[i]; end; end; program sravnenie(U:mas; O:mas; m.r:integer; maxA,maxB:real); var i,j:integer begin if maxA>maxB then begin for i:=1 to m do write(U[i]); end  else begin for i:=1 to r do write(O[i]); end; end; begin writeln('vvedite kol-vo elementov mas1'); readln(n); Vvod(A,n); writeln('vvedite kol-vo elementov mas2'); readln(l); Vvod(B,l); obrab(A,n,max1); obrab(B,l,max2); sravnenie(A,B,n,l,max1,max2); end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы