Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/02/2013, 02:30
Fw190
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: Duda en Pascal

Sobre tu primera pregunta, se debe a un redondeo en la representación binaria del número, en este caso hacia arriba. Recuerda que la precisión de la máquina para cálculos en coma flotante es limitada y en algún lado hay que redondear, ya sea cortando lo que sobra (truncado) o redondeando por arriba (como en este caso).

Sobre tu segunda pregunta, por lo poco que recuerdo (dejé de utilizar Pascal cuando MS-DOS iba por su versión 3.3), readln aceptaba caracteres hasta que recibía un retorno de carro, quedando el programa en espera hasta ese momento, no recuerdo cómo funcionaba exactamente read.

Sobre tu última pregunta:

Un tipo enumerado (aunque internamente se almacene como un entero) consiste en una representación simbólica de unos cuantos valores, y solamente puedes utilizar esos valores. Por ejemplo, creas un tipo enumerado para los días de la semana. Internamente, el compilador va a hacer LUNES=1, MARTES=2, etc. Al compilar, donde encuentre LUNES lo va a sustituir por 1, MARTES por 2, etc. Algo así como si en el editor, una vez escrito el programa, le dices "Busca LUNES y lo sustituyes por 1", etc.

En cambio, si haces un subrango, en tiempo de compilación no se puede saber qué valor va a tomar esa variable, por lo que podrás meterle cualquier valor que esté dentro del rango admisible para ese tipo de variable. El compilador tampoco puede añadir código para comprobar que esa variable esté dentro del rango marcado (tendria que añadirlo cada vez que apareciera esa variable, y el ejecutable final tendría un tamaño monstruoso y sería lento hasta decir basta). Por ello, creo que lo de los subrangos es más por cuestión de claridad (indicando el margen de valores que se espera que pueda tener una variable).