Цитата(Tan @ 2.05.2007 19:22)

Можно объяснить ?
Извиняюсь за вторжение.. не могу удержаться - вопрос уж очень приятный

Это плата за простоту идеологии ввода, используемой в Read и ReadLn (Read имеется в виду для файлов типа text!). В простых случаях все работает, как ожидается, но в некоторых случаях возможны накладки..
Твой первый ReadLn уходит на съедение Enter'а, завершающего ввод y.
Ситуацию легко исправить, если использовать для ввода х и у не Read, а ReadLn. Собственно, это и есть тот способ ввода, который предполагается при работе с текстовыми файлами (упрощенно выражаясь

). Отдельная операция ввода - это всегда ввод строки (в которой может быть несколько чисел). И если эта строка вводилась Read'ом, то завершающий ее Enter обычно просто как бы игнорируется - если не поставить за ним ReadLn, что ты и сделал

. ReadLn же без параметров просто переходит к новой строке, пропуская конец текущей.
Первый ReadLn очистил буфер, второй выполнил задержку.
PS
Н-да, простого объяснения не вышло..
