В условии задачи не указано, что требуется делать, если количество введенных чисел превышает 1000 и что делать, если введенное число больше 30000. Но если что, можно использовать этот вариант:var x, max, count: integer;begin count := 0; x := -MAXINT; max := x; while(x <> 0) do begin count := count + 1; if count > 1000 then break; readln(x); if x > 30000 then continue; if (x > max) and (x < 1000) and (x <> 0) then max := x; end; writeln(max);end.