Потому что соединение не идеально, оно прерывается, некоторые данные по пути теряются. Допустим, я хочу передать файл по интернету. Если файл небольшой, то велика вероятность, что он не пострадает. В противном случае можно потратить много времени на передачу части файла, после чего данные передадутся с ошибкой, которую мы обнаружим только после передачи всего файла. Передавая информацию пакетами же можно этого избежать, так как любая потеря данных будет сразу видна по плохому пакету. После этого можно эту ошибку сразу и обработать и, допустим запросить повтор предыдущего пакета или попытаться починить пакет, прибывший с ошибкой.
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