Práctico 2 Ejercicio 2.

Práctico 2 Ejercicio 2.

de Marcos Miguel Colman Ferrari -
Número de respuestas: 3

Buenas tardes, no consigo entender como en este Ejercicio la parte II) no da error. ¿No se está intentando asignar un valor real (2.1) a una variable de tipo Integer (c)? 
image.png

Gracias!

En respuesta a Marcos Miguel Colman Ferrari

Re: Práctico 2 Ejercicio 2.

de Luis Sierra -
hola marcos,
intentaste ejecutarlo?

hacete un programita chiquito, con esa declaración de variables y los read como en la parte que te preocupa. agregales las líneas siguientes:

readln;
writeln (a:6,b:6,c:6); writeln (x:6:2,y:6:2,z:6:2)

y termina el programa adecuadamente. ejecuta, y fijate qué suceda. explicanos qué te parece, o consultá de nuevo si sigues con dudas.

saludos
luis
En respuesta a Luis Sierra

Re: Práctico 2 Ejercicio 2.

de Marcos Miguel Colman Ferrari -
Hola, hice las modificaciones y ejecuté el programa. No dió error, en cambio, la salida que mostró fue la siguiente:

3 1 2
2.30 -6.50 5.00

Por lo que asumo que c (integer) tomó el valor de 2.1 y lo redujo a Integer? Convirtiéndolo en 2? No sé, es lo que entendí. Me gustaría una aclaración, sin embargo, agradezco la sugerencia!
En respuesta a Marcos Miguel Colman Ferrari

Re: Práctico 2 Ejercicio 2.

de Luis Sierra -
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