PDA

Ver la Versión Completa : Hacer que me saque 50 números de forma aleatoria


james_dean
16-05-2005, 21:20:58
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:


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