Дан одномерный массив чисел. если произведение элементов с чётными номерами больше произведения элементов с нечётными номерами, то найти номер максимального элемента, иначе – номер минимального элемента.
Program n1; const n=15; var a: array[1..n] of integer; pc,pn,nmin,nmax,max,min,i: integer; begin randomize; pc:=1; pn:=1; write('массив: '); for i:=1 to n do begin a[i]:=random(100); write(a[i],' '); end; writeln; for i:=1 to n do if i mod 2=0 then pc:=pc*a[i] else pn:=pn*a[i]; if pc>pn then begin max:=a[1]; for i:=2 to n do if a[i]>max then begin max:=a[i]; nmax:=i; end; writeln('номер максимального элемента: ',nmax); end else begin min:=a[i]; for i:=2 to n do if a[i]<min then begin min:=a[i]; nmin:=i; end; write('номер минимального элемента: ',nmin); end; end.
// PascalABC.NET 3.3, сборка 1607 от 31.12.2017 // Внимание! Если программа не работает, обновите версию!
type R=sequence of integer;
begin var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println; var P:R->BigInteger:=t->t.Aggregate(BigInteger(1),(p,q)->p*q); if P(a.Where(t->t.IsEven))>P(a.Where(t->t.IsOdd)) then Writeln('Номер максимального элемента: ',a.IndexMax+1) else Writeln('Номер минимального элемента: ',a.IndexMin+1) end.
const n=15;
var a: array[1..n] of integer;
pc,pn,nmin,nmax,max,min,i: integer;
begin
randomize;
pc:=1;
pn:=1;
write('массив: ');
for i:=1 to n do begin
a[i]:=random(100);
write(a[i],' ');
end;
writeln;
for i:=1 to n do if i mod 2=0 then pc:=pc*a[i] else pn:=pn*a[i];
if pc>pn then begin
max:=a[1];
for i:=2 to n do if a[i]>max then begin
max:=a[i];
nmax:=i;
end;
writeln('номер максимального элемента: ',nmax);
end else
begin
min:=a[i];
for i:=2 to n do if a[i]<min then begin
min:=a[i];
nmin:=i;
end;
write('номер минимального элемента: ',nmin);
end;
end.
// Внимание! Если программа не работает, обновите версию!
type
R=sequence of integer;
begin
var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
var P:R->BigInteger:=t->t.Aggregate(BigInteger(1),(p,q)->p*q);
if P(a.Where(t->t.IsEven))>P(a.Where(t->t.IsOdd))
then Writeln('Номер максимального элемента: ',a.IndexMax+1)
else Writeln('Номер минимального элемента: ',a.IndexMin+1)
end.
Примеры
n= 17
31 98 7 42 -70 -98 -34 43 -48 -40 -28 -35 15 26 25 1 -66
Номер минимального элемента: 6
n= 15
95 88 -82 96 87 -68 17 40 -66 1 60 -25 -78 -55 -55
Номер максимального элемента: 4