A[i]:=random(20)-10;
while (i>0)
if i<>0
Объяснение
Ошибка A[i]:=random(21); Твой диапазон [0;20]
Исправление A[i]:=random(20)-10;
Дальше можно находить элемент в массиве по разному, можно просто все элементы проверить, счётчик дойдёт до нуля - программа выведет "Не найден!", если счётчик не равен нулю, значит хотя бы 1 значение х в массиве было найдено.
Ошибка while (i<=N)
Исправление while (i>0)
Ошибка if i<=N
Исправление if i<>0
Условие (i<=N) выполняется всегда, поэтому оно вообще не нужно
program z1;
var a,m:integer;
begin
m:=30000;
repeat
read(a);
if (a <> 0) and (a mod 2 = 0) and (a mod 10 <> 2) and (m > a) then m:=a
until a = 0;
writeln(m)
end.
Объяснение:
m равно максимально возможному чётному числу (согласно условию)
Цикл с пост условием:
ввод числа
проверка числа (верно, когда верны все условия):
не 0 (a <> 0) - не является условием окончания последовательности
число чётное (a mod 2 = 0)
число не оканчивается на 2 (a mod 10 <> 2)
число меньше m (m > a)
если проверка пройдена, то переменной m присваивается значение числа
Проверка условия выхода из цикла (a = 0)
Вывод m