function FirstNegative(a: V; n: integer): integer; var i: integer; begin i := 0; Result := 0; repeat i := i + 1; if a[i] < 0 then Result := i until (Result > 0) or (i > lim) end;
procedure InpMass(var a: V; var n: integer; mName: string); // Организует ввод массива var i, p: integer; begin writeln('Вводите элементы массива ' + mName + '; 7777 - конец ввода'); i := 0; repeat read(p); i := i + 1; if p <> 7777 then a[i] := p; until (p = 7777) or (i > lim); n := i - 1 end;
var a, b: V; m, n, p, q: integer;
begin InpMass(a, m, 'A'); InpMass(b, n, 'B'); p := FirstNegative(a, m); q := FirstNegative(b, n); if p <= q then writeln('Номер первого отрицательного элемента в массива А: ', p) else writeln('Номер первого отрицательного элемента в массива B: ', q) end.
Тестовое решение:
Вводите элементы массива A; 7777 - конец ввода 37 14 -25 32 30 -29 38 27 7777 Вводите элементы массива B; 7777 - конец ввода 33 -36 23 -17 -3 -16 -33 33 -48 -39 30 7777 Номер первого отрицательного элемента в массива B: 2
begin readln(n); for i: byte := 1 to n do begin readln(buf); if (buf > 0) then if (p2 = 0) then p2 := buf else p2 := p2 * buf else if (p1 = 0) then p1 := buf else p1 := p1 * buf; end;
writeln('P1 = ', p1, #13, 'P2 = ', p2);
if (abs(p1) > abs(p2)) then writeln('|', p1, '| > |', p2, '|') else if (abs(p1) < abs(p2)) then writeln('|', p1, '| < |', p2, '|') else writeln('|', p1, '| = |', p2, '|') end.
lim = 11;
type
V = array[1..lim] of integer;
function FirstNegative(a: V; n: integer): integer;
var
i: integer;
begin
i := 0;
Result := 0;
repeat
i := i + 1;
if a[i] < 0 then Result := i
until (Result > 0) or (i > lim)
end;
procedure InpMass(var a: V; var n: integer; mName: string);
// Организует ввод массива
var
i, p: integer;
begin
writeln('Вводите элементы массива ' + mName + '; 7777 - конец ввода');
i := 0;
repeat
read(p);
i := i + 1;
if p <> 7777 then a[i] := p;
until (p = 7777) or (i > lim);
n := i - 1
end;
var
a, b: V;
m, n, p, q: integer;
begin
InpMass(a, m, 'A');
InpMass(b, n, 'B');
p := FirstNegative(a, m);
q := FirstNegative(b, n);
if p <= q then writeln('Номер первого отрицательного элемента в массива А: ', p)
else writeln('Номер первого отрицательного элемента в массива B: ', q)
end.
Тестовое решение:
Вводите элементы массива A; 7777 - конец ввода
37 14 -25 32 30 -29 38 27 7777
Вводите элементы массива B; 7777 - конец ввода
33 -36 23 -17 -3 -16 -33 33 -48 -39 30 7777
Номер первого отрицательного элемента в массива B: 2
p1, p2, buf: real;
n: byte;
begin
readln(n);
for i: byte := 1 to n do
begin
readln(buf);
if (buf > 0) then
if (p2 = 0) then
p2 := buf
else
p2 := p2 * buf
else
if (p1 = 0) then
p1 := buf
else
p1 := p1 * buf;
end;
writeln('P1 = ', p1, #13, 'P2 = ', p2);
if (abs(p1) > abs(p2)) then
writeln('|', p1, '| > |', p2, '|')
else
if (abs(p1) < abs(p2)) then
writeln('|', p1, '| < |', p2, '|')
else
writeln('|', p1, '| = |', p2, '|')
end.