Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-04-2010
ingel ingel is offline
Miembro
 
Registrado: Jun 2003
Posts: 218
Poder: 16
ingel Va por buen camino
funcion RANDOM ... funciona bien ?!!!!!

Hola a todos .. perdon si suena a pavada .. pero estoy observando un comportamiento raro con dicha funcion.. justamente NO random ...

tengo vector de 2 DOS elementos , la cuestion es que siempre me seleccionaba
el primero (a la sexta vez ya comence a sospechar que no era muy normal..)
el bucle era el siguiente y siempre salia seleccionado el numero 1..

while (i1= 0) do begin
i1:= Random(length(vec)+1);//entre 0 y 3 porque tengo 2 op
end;

le agregue la condicion que siguiera si se seleccionaba el 1
y llego a seleccionar el 2 a la TERCERA VEZ que lo intenta .. y siempre
en la tercera vez !!!

while (i1= 0) or (i1= 1 ) do begin
i1:= Random(length(vec)+1);
end;


Luego ya en estado de desesperacion agregue otro numero para ver que
resultado me daba

while (i1= 0) or (i1= 1 ) do begin
i1:= Random(length(vec)+1);
i2:=Random(100);
inc(ii);
end;

y las 10 veces que lo probe , antes de decidirme a pedir auxilio aqui ..
me da ..

0 y 59 al primer intento de random
2 y 72 al segundo intento de random y sale del while...
y SIEMPRE ME DA LOS MISMOS VALORES !... en el mismo ORDEN !

alquien tiene idea que estoy haciendo mal o que puede pasar ...
GRACIAS !!!
Responder Con Cita
  #2  
Antiguo 06-04-2010
[coso] coso is offline
Miembro Premium
 
Registrado: May 2008
Ubicación: Girona
Posts: 1.677
Poder: 0
coso Va por buen camino
Hola,
random te da numeros pseudoaleatorios (es imposible en un ordenador actual dar numeros aleatorios completos). Tienes que usar la funcion randomize antes de usar el random, la cual pone la 'semilla' de numeros en funcion de la hora del reloj. Un saludo.
Responder Con Cita
  #3  
Antiguo 06-04-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.656
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, ingel, recuerda poner el código fuente entre etiquetas [code ] tu código [/code ] para que sea más cómodo leerlo.

Por cierto, en tu programa, al principio, pon la instrucción randomize.

Edito, ya te lo había informado coso.
Responder Con Cita
  #4  
Antiguo 07-04-2010
ingel ingel is offline
Miembro
 
Registrado: Jun 2003
Posts: 218
Poder: 16
ingel Va por buen camino
Ya lo habia puesto..

Graicas a ambos por su respuesta ... les cuento que ya tenia puesto el Randomize en el FormShow del Form... salvo que haya que ponerlo en otro lugar o de otra forma ...

CAsimiro ... te juro que cada vez que escribo codigo pienso en poner las etiquetas,, pero jamas las recuerdo , ... soy pariente de Dori .. la de buscando a Nemo .. pero prometo anotarmelo en el teclado ...
aca va una prueba de paso ... les muestro el ramdomize....
gracias !!


Código:
procedure TFDesigPeritos.FormShow(Sender: TObject);
begin
Randomize;
fVeces.setfocus;
end;
Responder Con Cita
  #5  
Antiguo 07-04-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.656
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No hace falta que lo recuerdes, cuando estás escribiendo un mensaje tienes el icono justo arriba , selecciones tu código y pulsas en el icono '#', ese es el de code, tienes el de php, delphi, sql, etc...

Cita:
Empezado por ingel Ver Mensaje
CAsimiro ... te juro que cada vez que escribo codigo pienso en poner las etiquetas,, pero jamas las recuerdo , ... soy pariente de Dori .. la de buscando a Nemo .. pero prometo anotarmelo en el teclado ...
Responder Con Cita
  #6  
Antiguo 07-04-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: Jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 17
Caro Va por buen camino
Cita:
Empezado por ingel Ver Mensaje
Graicas a ambos por su respuesta ... les cuento que ya tenia puesto el Randomize en el FormShow del Form... salvo que haya que ponerlo en otro lugar o de otra forma ...
Hola ingel, debería funcionarte aún poniendolo en el OnShow, prueba poniendolo todo junto y para evitar el While puedes sumarle 1, así siempre te dara un valor mayor a 0.

Código Delphi [-]
  Randomize;
  i1:= Random(length(vec)+1)+1;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DB2 9.7 en Linux con dbExpress para Delphi 2007. Funciona bien ? rolandoj Conexión con bases de datos 0 26-01-2010 14:57:02
ayudenme porfis delphi no funciona bien jazmin OOP 6 11-01-2010 06:08:21
No funciona bien el QrImage en el QReport AGAG4 Impresión 11 29-10-2008 17:16:56
Función Random ??? BlueSteel Varios 26 04-07-2008 21:42:13
QRImage no funciona bien eljinete Impresión 4 16-12-2005 02:02:05


La franja horaria es GMT +2. Ahora son las 17:39:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi