Delphi - Más arreglos

 
Vista:

Más arreglos

Publicado por Cristián (115 intervenciones) el 21/05/2003 07:39:43
Hola!! todavia tengo dificultades con los arrelgos,esto es lo que pasa:
Quiero generar numeros aleatorios entre 1 y 10 y quiero meterlos en un arreglo, pero quiero verificar que los numeros que se generen no se hayan repetido ya en el arreglo. Lo digo porque lo pondre en un ciclo donde se repetira n veces, y asi como se puede dar que se generen los mismo numeros, pues no volverlos a agregar. Espero me ayuden, esto me urge. Gracias :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Más arreglos

Publicado por Diego Romero (636 intervenciones) el 21/05/2003 08:02:37
Pues se me ocurre que puedes crear un arreglo de boolean tal como
Numeros: array[1..10] of boolean;
inicializar todas las posiciones a falso y luego cada vez que tomes un número aleatorio entre 1 y 10 poner a verdadero si correspondiente, de esa forma la próxima vez que se genere un número verificar que su posición no sea verdadera si lo es volver a generar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Más arreglos

Publicado por Ernesto De Spirito (706 intervenciones) el 21/05/2003 08:05:04
Es simple: generas un número y compruebas si está entre los números que ya has puesto en e arreglo. En caso afirmativo generas otro y así hasta que encuentres un número que no esté repetido. Cuando tienes un número que no está repetido, lo guardas en el arreglo y ya está:

for i := 1 to N do begin // N es el tamaño del arreglo
Repeat
r := Random(10)+1; // número del 1 al 10
EnElArreglo := False;
for j := 1 to i - 1 do
if a[j] = r then begin
EnElArreglo := True;
break;
end;
until not EnElArreglo;
a[i] := r;
end;

Espero que te sirva.

Ernesto De Spirito
http://www.latiumsoftware.com/es/index.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar