Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: capsulasinformaticas en 3 Febrero 2013, 20:54 pm



Título: ¿Alguien sabe bien Pascal?
Publicado por: capsulasinformaticas en 3 Febrero 2013, 20:54 pm
Hola, como veran soy nuevo en el foro, y estaba aprendiendo a programar en pascal, que me lo recomendario mucho como para aprender la teoria (ya se que esta en desuso).

Me preguntaba si alguien podria resolver las dudas que tengo, estas son:

1- Al usar la variable single y darle un numero este no siempre es exactamente el valor que le doy, por ejemplo si le doy el valor de 3.14 y lo escribo con wirte me da 3.140000105 E +00. Me agrega un 0.00000105 de mas.
2- Al usar read en vez de readln para detener el programa este sigue de largo, ¿por que?.
3- Al crear una variable del  tipo subrango, por ejemplo, desde el valor 0 al 100, aun asi le puedo dar valores de 101, 102, 150... etc... ¿por que?.

Se que es un lenguaje que casi nadie conozca, pero en una de esas si alguien sabe las respeustas se lo agradezco.


Título: Re: ¿Alguien sabe bien Pascal?
Publicado por: dennis094 en 26 Febrero 2013, 16:09 pm
Bien, para lo de la pregunta del single, supongo que sera un integer, pero por defecto Pascal te lo escribe de manera cientifica ( numero, exponencial a la x ) y para evitar esto debes decirle cuantas cifras decimales quieres usar.
Para esto, despues de declarar el numero ecribe " num:0:2 " con esto el numero "num" tendra 2 cifras decimales, y escribira simplemente 3.14, si quieres que escriba 3.1415, seria "num :0:4".

A lo del readn, al no encontrar un salto de linea (ln) el programa intenta seguir leyendo algo, pero no hay nada mas, por eso usa SIEMPRE readln.

A lo del subrango no se responderte, no entiendo bien la pregunta.

Espero ayudarte ;)


Título: Re: ¿Alguien sabe bien Pascal?
Publicado por: MCKSys Argentina en 26 Febrero 2013, 20:23 pm
Bueno, dennis094 ya te ha respondido a casi todo excepto a lo ultimo: Puedes asignarle valores a los items 101, 102, etc. porque Pascal no estan comprobando la direccion de memoria donde escribes. No recuerdo bien ahora, pero revisa las opciones del IDE, creo que habia algo para activar estas comprobaciones.

Saludos!

EDIT: Si miras aqui verás algo parecido a tu problema y la explicación que le dieron en ese momento: http://www.delphigroups.info/2/c7/696.html (http://www.delphigroups.info/2/c7/696.html)