Ver Mensaje Individual
  #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
Reputación: 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