
error en funcion
Publicado por eduardo (139 intervenciones) el 16/07/2007 02:54:35
hola :
tengo esta funcion ,la cual pide un numero y dice si es primo o no .
SET STEP ON
SET DEFAULT TO d:\prueba
DO FORM pidenum TO var1
IF primo(var1)
WAIT WINDOW 'es primo'
ELSE
WAIT WINDOW 'no es primo'
ENDIF
FUNCTION primo
PARAMETERS nume
LOCAL i,tope,poruno,porsi,noprimo
tope=nume
poruno=.F.
porsi=.F.
noprimo=.F.
FOR i=1 to tope
if(MOD(tope,i)=0)
DO CASE
CASE i=1
poruno=.T.
CASE i=tope
porsi=.T.
CASE (i>1 AND i<tope)
noprimo=.T.
endcase
ENDIF
ENDFOR
IF (poruno AND porsi AND !noprimo)
RETURN .T.
ELSE
RETURN .F.
endif
el tema es que me da un error de ejecucion,no de compilacion en la linea del for con la variable tope ,hace referencia a que no es una expresion numerica .probe de poner val (tope) y tampoco tuve resultados.
gracias p or al ayuda
tengo esta funcion ,la cual pide un numero y dice si es primo o no .
SET STEP ON
SET DEFAULT TO d:\prueba
DO FORM pidenum TO var1
IF primo(var1)
WAIT WINDOW 'es primo'
ELSE
WAIT WINDOW 'no es primo'
ENDIF
FUNCTION primo
PARAMETERS nume
LOCAL i,tope,poruno,porsi,noprimo
tope=nume
poruno=.F.
porsi=.F.
noprimo=.F.
FOR i=1 to tope
if(MOD(tope,i)=0)
DO CASE
CASE i=1
poruno=.T.
CASE i=tope
porsi=.T.
CASE (i>1 AND i<tope)
noprimo=.T.
endcase
ENDIF
ENDFOR
IF (poruno AND porsi AND !noprimo)
RETURN .T.
ELSE
RETURN .F.
endif
el tema es que me da un error de ejecucion,no de compilacion en la linea del for con la variable tope ,hace referencia a que no es una expresion numerica .probe de poner val (tope) y tampoco tuve resultados.
gracias p or al ayuda
Valora esta pregunta


0