Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Hacer que me saque 50 números de forma aleatoria (https://www.clubdelphi.com/foros/showthread.php?t=21403)

james_dean 16-05-2005 21:20:58

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

roman 16-05-2005 21:53:36

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

james_dean 16-05-2005 22:08:19

Gracias Román;

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

Gracias de antemano

roman 16-05-2005 22:12:48

Arreglo = varaible de tipo array.

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

// Saludos

james_dean 16-05-2005 22:20:15

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


La franja horaria es GMT +2. Ahora son las 04:43:18.

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