SoloCodigo
Programación General => Pascal => Mensaje iniciado por: spiderccs en Lunes 31 de Mayo de 2004, 02:01
-
BUENAS.... cuando escribo en turbo pascal "USES crt" y en el programa coloco la funcion de borrar pantalla "clrscr" el programa no me corre y me genera un programa llamado "ERROR 200: DIVISION BY ZERO" y si quito la libreria USES y con el el llamado a clrscr... el programa me compila bien pero no me limpia la pantalla..... como puedo solucionar eso?? que esta pasando?
-
Bajate la libreria de funciones que puse en el otro post, tiene una versión de crt crtz corregida, la explicación está en otro post (en realidad no es una división entre 0 sino desbordamiento por la velocidad de las máquinas actuales :) ). :P
-
muchas gracias y eso tiene arreglo?? por favor si no es mucha molestia amigo me indica como.... GRACIAS
-
Este es el post:
"Biblioteca De Funciones"
Para Turbo Pascal v 7
En el archivo .zip está incluida una librería .tpu "crtZ.tpu" junto con los códigos fuentes en ASM.
Para usar el "crtZ.tpu" basta copiarlo a la carpeta units, o a la carpeta donde están tus ".pas". En el uses en lugar de poner crt colocas crtz.
El crtz básicamente es exactamente igual al crt normal, excepto que no tiene el bug de "división entre cero", que en realidad es causado por el algoritmo que calcula el número de ciclos de espera para el "delay". Como las máquinas actuales son mucho más rápidas, el número de ciclos de espera necesarios es tan elevado que supera el límite máximo de un entero de 2 bytes y da error de desbordamiento (que también es causado por una división entre 0, por eso el mensaje).
-
MUCHAS GRACIAS AL FIN PUEDO CORRER LOS PROGRAMAS SIN QUE ME GENERE EL ERROR... esa libreria la creaste tu mismo??
-
Es la misma librería CRT, conseguí el código fuente y sólo reprogramé la función del delay ( usando directamente una función del bios) para que no se necesitara calcular al inicio el número de ciclos de espera.