hola marcos,
aunque tu explicación es astuta, es incorrecta. el read (c) encontró en la
entrada el texto "2.1...". lo que hizo fue leer lo que pudo interpretar como entero, el "2"; y el ".1..." quedó a la espera que lo leyera alguien. nadie lo fue a leer, y esa entrada se perdió al terminar el programa.
puedes ejecutar el siguiente programa, y revisar la situación.
program pppp;
var
a,b,c: integer;
x,y,z: real;
c1, c2: char;
begin
read(a,x,y); read(b,z,c); read (c1, c2);
writeln (a:3,b:3,c:3);
writeln (x:6:2,y:6:2,z:6:2);
writeln ('(', c1, ') (', c2, ')')
end.
saludos
luis