1. Max - это системная функция/ Не стоит называть таким именем свою.
2. Последнее условие в процедуре не совсем понятно. И для нахождения максимального значения оптимальнее это делать в одном цикле. В PascalABC так вообще можно написать m:=a.max; и ВСЁ. Но если хотите как на Pascal - Я исправил.
3. Функция ищет максимальное значение в массиве.
Pascal
var
maxa:integer;
procedure Getmax(c:integer; var m:integer);
var
i:integer;
a: array [1..100] of integer;
begin
for i:=1 to c do begin
a[i]:= random (20);
write(a[i],' ');
if m<a[i] then
m:=a[i];
end;
writeln;
end;
begin
Getmax(100,maxa);
writeln('Max=', maxa);
end.
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('n=');
Writeln('Сумма четных: ',Range(2,n,2).Sum);
Writeln('Произведение нечетных: ',
Range(1,n,2).Aggregate(BigInteger(1),(p,q)->p*q))
end.
Примеры
n= 10
Сумма четных: 30
Произведение нечетных: 945
n= 100
Сумма четных: 2550
Произведение нечетных: 2725392139750729502980713245400918633290796330545803413734328823443106201171875
n= 220
Сумма четных: 12210
Произведение нечетных: 1107777077219218863731176870556049213277080310011307546922058816496685355705579762805879646585202270946781726057710274499420058851200005273702334889222745707797723907366146060509882690145022444427013397216796875