Другие языки программирования и технологии

Те, кто разбирается в программе Паскаль, помогите пожалуйста!

Составить программу поиска max четного элемента
Что я не правильно сделала?!
program poisk_max;
var a: array [1..20] of integer;
i,max: integer;
begin
writeln ('Исходный массив:');
For i:= 1 to 20 do
a[i]:= random
write (a[i]',');
end.
max:=100;
for i:= 1 to 20 do
If a[i] > max then
max = a[i]
write (max);
end.
var a: array [1..20] of integer;
i, maxi: integer;
begin
writeln ('Исходный массив:');
For i:= 1 to 20 do
begin
a[i]:= random (100);
write (a[i]:4);
end;
maxi:=-1;
For i:= 1 to 20 do
if not odd (a[i]) then
begin
maxi:=a[i];
break;
end;
if maxi = -1 then
begin
writeln ('Четные отсутствуют ');
readln;
halt;
end;
write (#10, 'Первое четное = ', maxi); {строку можно удалить}
For i:= 1 to 20 do
if (not odd (a[i])) and (a[i] > maxi) then maxi:=a[i];
writeln;
write ('максимальное четное = ', maxi);
end.
Геннадий Ефимов
Геннадий Ефимов
20 124
Лучший ответ
У вас в коде:
1) „program poisk_max;“ — лишнее
2) После random нет точки с запятой
3) Функция random возвращает действительное значение, а не целое
4) Следующая строка write уже не относится к циклу, следовательно не известно какое значение у переменной i
5) Следующая строка „end“ + точка! Всё дальнейший код к программе не относится!

А вообще, всё гораздо проще:
Аць Два
Аць Два
50 476
исправь эту строку
If (a[i] > max) and (not odd(a[i])) then
var a: array [1..20] of integer;
i,max: integer;
begin
writeln ('Исходный массив:');
For i:= 1 to 20 do
begin
a[i]:= random(100)-50;
write (a[i],' ');
end;
max:=-100;
for i:= 1 to 20 do
If (a[i] > max) and (not odd(a[i])) then
max := a[i];
writeln;
write (max);
end.
******** Сергей
2 811
Алексей Малышев надо If (a[i] > max) and (not odd(a[i])) then