![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
Orden de Salida
Hola estoy intentando hacer una aplicación que me de un orden de salidad de unos participantes, hice algo como lo que pongo a continuación.
procedure TForm1.Button1Click(Sender: TObject); begin randomize; edit1.Text := inttostr(random(StrToInt(Edit2.Text)) + 1 ); end; en un edit meto el número de participantes y dandole con un button, en el otro edit me va dando un número aleatorio que seria el numero de salida de cada participante, el problema es que me repite los números, bueno en relaidad lo que busco es una forma de hacerlo, que al darle a un button despues de metido el numero de participantes me salga pj en un memo el número de participante en un orden aliatorio pj del 1 al 5. 2 3 1 5 4 Bueno no se si me explique correctamente pero si alguien tiene algo con que orientarme o algun link donde mirar se lo agradeceria Gracias. saludos Kwan.
__________________
No llores por no ver el Sol que las lagrimas te impediran ver las Estrellas. Última edición por kwan fecha: 08-12-2003 a las 15:11:31. |
|
#2
|
||||
|
||||
|
Podrias ir rellenado una matriz, o validando en el mismo edit, que el numero no exista. La funcion random devuelve un numero aleatorio, pero por ser aleatorio no garantiza que no se repita el numero, sino solo que el numero este comprendido entre 0 y la semilla.
__________________
Héctor Geraldino Software Engineer |
|
#3
|
|||
|
|||
|
Gracias Hector encontre algo en esta web www.q3.nu/trucomania/truco.cgi?493&esp .
de nuevo Gracias por contestar. Saludos. Kwan.
__________________
No llores por no ver el Sol que las lagrimas te impediran ver las Estrellas. Última edición por kwan fecha: 09-12-2003 a las 00:46:03. |
|
#4
|
|||
|
|||
|
Bueno he probado el codigo del link que puse pero he obsevado que siempre me da el mismo orden de números, con lo que no me vale.
seguire buscando. Chao. Kwan.
__________________
No llores por no ver el Sol que las lagrimas te impediran ver las Estrellas. |
|
#5
|
||||
|
||||
|
Cita:
Código:
type
TNumeros = array of Integer;
function Aleatorio(Cantidad: Integer): TNumeros;
var
Bits: TBits;
Numero: Integer;
Indice: Integer;
begin
Bits := TBits.Create;
Bits.Size := Cantidad;
SetLength(Result, Cantidad);
Randomize;
Indice := 0;
repeat
Numero := Random(Cantidad);
if not Bits[Numero] then
begin
Bits[Numero] := true;
Result[Indice] := Numero + 1;
Inc(Indice);
end;
until Indice = Cantidad;
end;
// Saludos |
|
#6
|
||||
|
||||
|
Vamos, que es una funcion sencilla de implementar. Supongamos tu segundo caso, el de que metes los numeros en un memo, nos construimos una funcion, digamos yaestaenMemo, que nos dira si el numero existe o no, asi que solo tendriamos que hacer:
Código:
var
CantidadNumeros : integer;
...
Randomize;
if not yaestaenMemo(random(StrToInt(Edit2.Text)) + 1) then
Memo1.Lines.Add(edit2.text);
end;
Código:
function yaestaenMemo (valor : integer): boolean;
var
m : integer;
resultado : boolean;
begin
resultado := False;
with form1 do
for m := 0 to memo1.Lines.Count - 1 do
if (strtoint(memo1.Lines[m]) = valor) then
resultado := true;
result := resultado;
end;
__________________
Héctor Geraldino Software Engineer |
|
#7
|
|||
|
|||
|
De nuevo Gracias por vuestras respuestas, pero lo que en verdad estaba buscando era lo que encontre en el link que puse la unica pega era la que se repetia siempre lo mismo, pero con vuestra respuesta he abierto los ojo y le puse el randomize en esta parte del codigo.
procedure TForm1.Button1Click(Sender: TObject); var Ristra : TAlea; n : integer; begin RichEdit1.Lines.Clear; Ristra:=TAlea.Create(10); randomize; for n:=1 to 10 do begin RichEdit1.Lines.Add( IntToStr(Ristra.PillaNumero) ); con lo que ya no se repite siempre la misma combinación, y cambie el memo por un RichEdit, bueno por los font. Una ultima pregunta, como podria hacer que el "create(10)" y "1 to 10" lo pudiera controlar desde un edit, para poner el numero de participantes desde el edit??? Gracias por todo. Saludos Kwan.
__________________
No llores por no ver el Sol que las lagrimas te impediran ver las Estrellas. Última edición por kwan fecha: 09-12-2003 a las 00:37:17. |
|
#8
|
||||
|
||||
|
Cita:
Cita:
// Saludos |
![]() |
|
|
|