Const N = 10;
var i, max: integer;
a: array[1..N] of integer;
begin
max := 1;
writeln('Массив до: ');
for i := 1 to N do begin
a[i] := random(10);
write(a[i]:3);
if(a[i] > a[max]) then max := i;
end;
writeln(#10, 'Массив после: ');
for i := 1 to N do begin
if(a[i] > 1) and (a[i] < 4) then a[i] := a[max];
write(a[i]:3);
end;
writeln(#10, 'Максиммальный элемент: ', a[max], #10, 'Его индекс: ', max);
end.
===== PascalABC.NET =====
function GetArr(n: integer) :=
ReadArrInteger('Вводите эдементы массива:', n);
function Summ(a: array of integer): integer;
begin
if a.Any(p -> p < 0) then
Result := a.TakeWhile(p -> p >= 0).Sum
else
Result := a.Sum
end;
// Тест
begin
var M := GetArr(ReadInteger('n ='));
Println(Summ(M))
end.
Этот набор
1 2 4 8 16 32
примеры
63 = 32 + 16 + 8 + 4 + 2 + 1
57 = 32 + 16 + 8 + 1
1 = 1
2 = 2
3 = 2+ 1
19 = 16 + 2 + 1
26 = 16 + 8 + 2