Pascal/Turbo Pascal - Runtime

 
Vista:

Runtime

Publicado por Delta (5 intervenciones) el 06/06/2007 05:50:15
Buenas resulta que estoy haciendo un programa, el mismo se compila perfectamente pero a la hora de correrlo me genera un error 200'

He leido que es un problema del pascal al ejecutarse en pc nuevas, tambien vi que existe la forma de corregir este problema, bajando un archivo y sustituyendolo por el que tenia la pc.

He hecho todo esto y aun se continua generando este error, agradeceria que me explicaran detalladamente como se corrigiria.

A continuacion anexo mi programa, no vaya a ser q sea un error de programacion
--------------------------------------
program aprox;
uses crt;

const
e= 2.718;
f= 0.0009;

var

a,b,c:real;
cont: integer;

Begin

cont:=1;

Repeat

b:= (0.5*cont)+(1/cont);
cont:= cont + 1;
c:= b-a;

until ((c>0) and (c<=f))

end.

--------------------------------
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Solución a tu problema

Publicado por Pascual (94 intervenciones) el 09/06/2007 15:10:12
Es cierto que en ordenadores a partir del Pentium II o a partir del AMD K6 se da el error que dices de la división por cero al usar la unidad Crt, como tú bien has dicho se soluciona con un parche, pero el problema que tú tienes no tiene nada que ver con esto.

Tu programa entra en un bucle infinito con el bucle repeat que has puesto ya que c nunca llega a ser menor o igual a f. Esto hace que cont aumente más y más hasta que llega al límite del integer 32767, en siguiente iteración cont pasa a valer -32768, en la siguiente -32767, luego -32766 y así sucesívamente hasta que vale 0, es aquí donde se produce la división por cero en:

b:= (0.5*cont)+(1/cont);

Por tanto tu programa genera un error en tiempo de ejecución en esa línea de código en el instante que te he dicho.

Tu algoritmo está mal implementado seguramente porque así a simple vista no veo la razón de por qué pones esto:

c:= b-a;

Según esto haces que c sea b-a pero es que a siempre vale 0.

Saludos y sigue practicando. Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Solución a tu problema

Publicado por Delta (5 intervenciones) el 09/06/2007 17:13:19
Muchas gracias amigo, ya chequee y tienes razon en lo q me dices.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

De nada

Publicado por Pascual (94 intervenciones) el 09/06/2007 18:51:58
De nada, me alegro de que te sirviera.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar