procedure rdr(var f: text; var x: real);
function ten(e: posint): real;
message('**tried to read past eos/eof');
while (f^ = ' ') and (not eof(f)) do
if not (ch in ['0'..'9']) then
message('**digit expected');
a := 10*a + ord(ch)-z else
until not (ch in ['0'..'9']);
while ch in ['0'..'9'] do
while ch in ['0'..'9'] do
message(' digit expected');
message('**number too large');
y := ((a+1) div 2) * 2.0 else