error en Ascan ?
Publicado por Pablo (24 intervenciones) el 25/01/2007 21:12:43
Hola Amigos
Tengo este codigo con el cual deseo obtener numeros aleatorios que no se repitan, pero cuando lo ejecuto me repite un numero 2 veces. Pueden revisar mi codigo y decirne como lo puedo afinar.
SET EXACT ON
CLEAR
cantp=20
ocurrencias=0
posicion=0
resp=.T.
DIMENSION npreguntas(cantp)
DO WHILE resp=.t.
DO buscarp
IF posicion>=cantp
resp=.F.
ENDIF
ENDDO
ASORT(npreguntas)
FOR i=1 TO cantp
? npreguntas(i)
NEXT i
PROCEDURE buscarp
FOR i=1 TO cantp*10
IF posicion=cantp
EXIT
ENDIF
a= RAND()
IF ASCAN(npreguntas,a,1)=0
posicion=posicion+1
npreguntas(posicion)=a
ENDIF
NEXT i
ENDPROC
Saludos
Pablo
Tengo este codigo con el cual deseo obtener numeros aleatorios que no se repitan, pero cuando lo ejecuto me repite un numero 2 veces. Pueden revisar mi codigo y decirne como lo puedo afinar.
SET EXACT ON
CLEAR
cantp=20
ocurrencias=0
posicion=0
resp=.T.
DIMENSION npreguntas(cantp)
DO WHILE resp=.t.
DO buscarp
IF posicion>=cantp
resp=.F.
ENDIF
ENDDO
ASORT(npreguntas)
FOR i=1 TO cantp
? npreguntas(i)
NEXT i
PROCEDURE buscarp
FOR i=1 TO cantp*10
IF posicion=cantp
EXIT
ENDIF
a= RAND()
IF ASCAN(npreguntas,a,1)=0
posicion=posicion+1
npreguntas(posicion)=a
ENDIF
NEXT i
ENDPROC
Saludos
Pablo
Valora esta pregunta


0