Program help;
Uses Crt;
Const n = 10; (* Размер массива *)
Var a : Array[1..n] of Integer; (* Массив с числами *)
i : Integer;
Begin
Randomize;
ClrScr;
Writeln('Массив: ');
For i := 1 to n do
Begin
a[i] := random(601) - 300; (* Заполняем рандомными числами *)
Writeln('a[', i, '] = ', a[i]); (* Выводим на экран *)
if (a[i] mod 3 = 0) and (a[i] mod 5 <> 0) then
a[i] := 0; (* Обнуляем числа кратные 3 и не кратные 5 *)
End;
Writeln('Массив после изменения: ');
For i := 1 to n do
Writeln('a[', i, '] = ', a[i]); (* Выводим на экран *)
End.
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-99,99).ConvertAll(x->real(x/10));
a.Println;
var imax:=a.Select(x->Abs(x)).ToArray.IndexMax;
var ip:=a.FindIndex(x->x>0)+1;
Writeln('Номер максимального по модулю элемента: ',imax+1);
Writeln('Сумма элементов после первого положительного: ',a[ip:].Sum:0:1)
end.
Пример
n= 13
-5.9 2.8 -8.2 4.8 1.2 -7.3 6.7 4 -5.8 6.4 2.4 -9.3 -8.6
Номер максимального по модулю элемента: 12
Сумма элементов после первого положительного: -13.7