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 16-05-2005
james_dean james_dean is offline
Registrado
 
Registrado: may 2005
Posts: 4
Poder: 0
james_dean Va por buen camino
Hacer que me saque 50 números de forma aleatoria

Hola a tod@s;

Comentar que soy nuevo en el mundo de Delphi,estoy empezando y la verdad es que me atrae mucho lo poco que he visto.

Lo que quiero es una cosa que me imagino que será muy sencilla (no la he podido encontrar).

Tengo que hacer, mediante un array de 90 números,que aleatoriamente me coja 50, me los muestre en pantalla y que me diga el mayor y el menor de esos que ha cogido.

Me estoy volviendo loco porque estoy atascado justo después de declarar las variables.

Muchas gracias por adelantado y un saludo

james_dean
Responder Con Cita
  #2  
Antiguo 16-05-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
La función Random(N) te devuelve un número aleatorio entr 0 y N-1. Usa esta función para obtener aleatoriamente un índice de tu arreglo donde N sería el mayor índice del arreglo.

Los números obtenidos los vas guardando en otro arreglo.

Sobre este otro arreglo usas las funciones MinIntValue y MaxIntValue para determnar el mínimo y el máximo.

Si los elementos del arreglo no son números enteros podrías entonces almacenar los números seleccionados en un objeto TList y usar su método Sort para ordenar los elementos de manera que el primero y último sean el menor y el mayor.

O bien, conforme vas seleccionando aleatoriamente los números llevas cuenta del mínimo y máximo comparándolos con el último obtenido y reemplazándolos de ser necesario:

Código Delphi [-]
Randomize;

for I := 1 to 50 do
begin
  Indice := Random(N);

  Seleccionados[i] := Arreglo[Indice];

  if Arreglo[Indice] < Minimo then
    Minimo := Arreglo[Indice];

  if Arreglo[Indice] > Maximo then
    Maximo := Arreglo[Indice];
end;

Nota la llamada a Randomize antes del ciclo. Randomize es necesario para obtener una secuencia aleatoria distinta. En caso contrario obtendrías siempre la misma selección.

// Saludos
Responder Con Cita
  #3  
Antiguo 16-05-2005
james_dean james_dean is offline
Registrado
 
Registrado: may 2005
Posts: 4
Poder: 0
james_dean Va por buen camino
Gracias Román;

No entiendo a qué te refieres cuando hablas de Arreglo;
Igual me he equivocado al crear las variables...

Gracias de antemano
Responder Con Cita
  #4  
Antiguo 16-05-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Arreglo = varaible de tipo array.

Como verás no fui yo sino tú quien habló de arreglos

// Saludos
Responder Con Cita
  #5  
Antiguo 16-05-2005
james_dean james_dean is offline
Registrado
 
Registrado: may 2005
Posts: 4
Poder: 0
james_dean Va por buen camino
oks.

Entonces cuando dices:
Seleccionados[i] := Arreglo[Indice];

Seleccionados también es un array?Es que no entiendo muy bien la sentencia

Arreglo me imagino que tendrá que ser un array de 50 no?

¿Cómo hago para que me muestre en pantalla los 50 números que ha calculado aleatoriamente?

Muchas gracias de nuevo y siento darte el coñazo

james_dean
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


La franja horaria es GMT +2. Ahora son las 08:52:42.


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