Fórum Gerador de número aleatórios #190893

27/10/2003

0

Bom dia a todos

Preciso criar um gerador de número aleatorios.
Esse gerador deve gerar 15 números aleatórios e distintos entre 1 e 90.
Eu criei uma rotina,só que quando executada várias vezes ocorre um travamento estranho. O código que criei se encontra abaixo...
Por favor, me ajudem, pois preciso disso para o meu projeto final da faculdade...
Quem puder verificar onde está o erro ou indicar um procedimento novo, eu agradeceria muito!

Desde já agradeço!

Código feito por mim e que trava inesperadamente:

procedure TForm1.Button1Click(Sender: TObject);
var
I,K,j,y:integer;
begin
for y:=1 to 15 do
begin
cart1[y]:=0;
end;
cont:=cont+1;
label2.caption:=Inttostr(cont);
Randomize;
igual1:=0;
for I := 1 to 15 do
begin
repeat
J:=I-1;
cart1[I]:=randomrange(0,90);
if(cart1[I]=0)then
begin
igual1:=1;
end
else
begin
if (I > 1)then
begin
for K:=j downto 1 do
begin
if(cart1[I]=cart1[K]) then
begin
igual1:=1;
break;
end
else
begin
igual1:=0;
end;
end;
end;
end;
until(igual1=0);
end;


Reginaldof

Reginaldof

Responder

Posts

27/10/2003

Lourival.reis

use a função Random, utilize o help, tem até exemplos no help, nao precisa disso tudo que vc fez e colocar a faixa e apenas testar no array ou banco que vc guarda os numeros se por um acaso ela já nao existe...espero que tenha ajudao...


Responder

Gostei + 0

27/10/2003

Beppe

Código feito por mim e que trava inesperadamente:

Inesperadamente só pra ti. Sobre o erro eu não sei, mas o[b:486610341d]s[/b:486610341d] erro[b:486610341d]s[/b:486610341d] são incontáveis para citar.

Tu poderia ter pensado em algo como:
procedure TForm1.Button1Click(Sender: TObject);
const
  TotalNumeros = 15;
  Dominio = 90;
var
  Numeros: array[1..TotalNumeros] of Integer;
  Sorteados: set of 1..Dominio;
  I, J: Integer;
begin
  Sorteados := [];
  for I := Low(Numeros) to High(Numeros) do
  begin
    repeat
      Numeros[I] := Random(Dominio) + 1;
    until not (Numeros[I] in Sorteados);
    Include(Sorteados, Numeros[I]);
  end;
end;


Ataliba


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar