Дан одномерный массив чисел. если произведение элементов с чётными номерами больше произведения элементов с нечётными номерами, то найти номер максимального элемента, иначе – номер минимального элемента.
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.