Заполните массив случайными числами в интервале [0,1000] и выведите номера двух соседних элементов, произведение которых наибольшее паскаль. выполнить с рандома
Const K = 7; Var A:array[1..K] of integer; i,n:integer; Begin For i:= 1 to K do Begin A[i]:=random(1001); Write(A[i],' '); End; WriteLn; n:=1; For i:= 2 to K-1 do if A[i]*A[i+1]>A[n]*A[n+1] then n:=i; WriteLn(n,' и ',n+1) End.
// PascalABC.NET 3.2, сборка 1389 от 01.03.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),0,1000); a.Println; var i:=a.Pairwise.Select(x->x[0]*x[1]).ToArray.IndexMax; Writeln('Элементы ',i+1,' и ',i+2,' дают произведение ',a[i]*a[i+1]) end.
Пример n= 15 115 263 63 193 374 685 174 755 728 654 979 274 93 994 411 Элементы 10 и 11 дают произведение 640266
K = 7;
Var
A:array[1..K] of integer;
i,n:integer;
Begin
For i:= 1 to K do
Begin
A[i]:=random(1001);
Write(A[i],' ');
End;
WriteLn;
n:=1;
For i:= 2 to K-1 do
if A[i]*A[i+1]>A[n]*A[n+1] then n:=i;
WriteLn(n,' и ',n+1)
End.
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),0,1000); a.Println;
var i:=a.Pairwise.Select(x->x[0]*x[1]).ToArray.IndexMax;
Writeln('Элементы ',i+1,' и ',i+2,' дают произведение ',a[i]*a[i+1])
end.
Пример
n= 15
115 263 63 193 374 685 174 755 728 654 979 274 93 994 411
Элементы 10 и 11 дают произведение 640266