Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2012
fpirovani fpirovani is offline
Miembro
 
Registrado: feb 2008
Ubicación: Entre Rios, Argentina
Posts: 24
Poder: 0
fpirovani Va por buen camino
Funcion Random no respeta rango

Hola a todos!
Les cuento que soy medio novato en esto de la programacion.
Me surgio un problema y la verdad no se que estoy haciendo mal.
Necesito obtener un numero aleatoreo entre 0 y 9. para ello uso el siguiente codigo

Código Delphi [-]
 Randomize;
 Variable := random(9);

Pero resulta que me devuelve todos numeros mayores que 10, siendo que el limite es 9.
Tampoco se porque motivo los numeros que me devuelve nunca llegan al 50.

¿Estoy haciendo algo mal? ¿a alguien le paso?

Desde ya muchas gracias.
Saludos!
Responder Con Cita
  #2  
Antiguo 21-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bueno, todo tiene su explicación , aunque estaría bien ver tu código, para poder ayudarte según lo que estás haciendo
Responder Con Cita
  #3  
Antiguo 22-05-2012
fpirovani fpirovani is offline
Miembro
 
Registrado: feb 2008
Ubicación: Entre Rios, Argentina
Posts: 24
Poder: 0
fpirovani Va por buen camino
perdon por la tardanza en responder, es que tuve un problema con mi cuenta y no podia acceder.

no se en que va, pero cree un formulario nuevo para probar y con el mismo codigo anda. la verdad que no entiendo en que le erre.

el codigo es muy simple.

Código Delphi [-]
procedure TForm1.BotonGenerarNumeroClick(Sender: TObject); 
begin  
  Randomize;  
  MostrarNumero.Caption := IntToStr(random(9)); /// muestro en un label el numero generado 
end;

Última edición por Casimiro Notevi fecha: 22-05-2012 a las 16:33:16.
Responder Con Cita
  #4  
Antiguo 22-05-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No entiendo bien lo que dices, random(9) debe devolverte valores entre 0 y 8. Y hablas de números que no pasan de 50 ¿?

Mira esta página de ayuda.
Responder Con Cita
  #5  
Antiguo 22-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por fpirovani Ver Mensaje
perdon por la tardanza en responder, es que tuve un problema con mi cuenta y no podia acceder.

no se en que va, pero cree un formulario nuevo para probar y con el mismo codigo anda. la verdad que no entiendo en que le erre.

el codigo es muy simple.

Código Delphi [-]
procedure TForm1.BotonGenerarNumeroClick(Sender: TObject); 
begin  
  Randomize;  
  MostrarNumero.Caption := IntToStr(random(9)); /// muestro en un label el numero generado 
end;
Hola fpirovani.

Del modo que utilizas Random en tu código te va a generar valores enteros comprendidos entre cero y ocho, es decir que 0 <= Random(n) < n.

Otra forma de utilizarlo es multiplicar el valor máximo deseado por el resultado de la función Random sin argumentos. En este caso se da que 0 <= Random < 1, el resultado obtenido es de punto flotante por lo que tendrías que usar la función Round para utilizar luego IntToStr:
Código Delphi [-]
  Label1.Caption:= IntToStr(Round(Random* 9));

Mirando tu código, no veo la posibilidad que estés obteniendo un valor inferior a cero o superior a ocho...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 22-05-2012 a las 21:44:18. Razón: correción ortográfica
Responder Con Cita
Respuesta



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
Delphi no respeta breakpoints. Chega Varios 3 19-10-2010 21:52:04
funcion RANDOM ... funciona bien ?!!!!! ingel Varios 5 07-04-2010 15:22:08
Rave no respeta el no de pag a imprimir Mary Carmen G. Impresión 2 18-08-2008 23:13:24
Función Random ??? BlueSteel Varios 26 04-07-2008 20:42:13
El delphi no me respeta comparaciones exetate Varios 5 27-09-2005 01:14:12


La franja horaria es GMT +2. Ahora son las 22:49:02.


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