Поток может и открыться, но в нем не быть чисел...

Лучше уж после
## Код:
```
In.Int(i);
  WHILE In.Done DO (* Пока считывается успешно *)
    INC(n);   
    In.Int(x)
  END;
```

добавить:
ASSERT(n > 0, 20) - предусловие на то, что вводится хотя бы одно число.