Fórum NUMEROS ALEATORIOS DEVEM VIR EM UMA MESMA LINHA NO MEMO #613670
30/12/2020
0
Olá pessoal...
Gostaria de saber como faço para retornar todos os 6 numeros aleatorios um ao lado do outro separados por espaço em uma mesma linha no componente memo utilizando a procedure abaixo, pois no momento está retornando um numero por linha.
Gostaria de saber como faço para retornar todos os 6 numeros aleatorios um ao lado do outro separados por espaço em uma mesma linha no componente memo utilizando a procedure abaixo, pois no momento está retornando um numero por linha.
procedure TForm1.BitBtn12Click(Sender: TObject);
var
y, i, Rand: integer;
begin
Randomize;
for I := 1 to 6 do
begin
Rand:=Random(60);
if i>1 then
begin
y:=1;
repeat
if Rand = Vetor1[y] then
rand:= Random(60)+1;
y:= y+1;
until (y = I );
end;
vetor1[I]:= Rand;
A[i].Text:= IntToStr(vetor1[i]) ;
Numeros.Lines.Add(IntToStr(vetor1[I]));
end;
Numeros.Lines
Numeros.Lines.Add('*******');
end;Gabriel Cristaldo
Curtir tópico
+ 0
Responder
Post mais votado
30/12/2020
tente algo assim:
procedure TForm1.BitBtn12Click(Sender: TObject);
var
i, Rand: integer;
strNumeros: string;
// função para verificar se o número já foi sorteado
function ExisteElemento(Elemento: integer): boolean;
var j: integer;
begin
result := False;
for j := Low(vetor1) to High(vetor1)
if vetor1[j] = Elemento then
begin
result := True;
break;
end;
end;
begin
Randomize;
FillChar(vetor1, SizeOf(vetor1), 0); // preenche todo o array com 0 (use um número que não pode ser sorteado)
strNumeros := '';
for i := 1 to 6 do // preenche os 6 elementos do array
begin
repeat
Rand := 1 + Random(60); // sorteia números de 1 a 60
until not ExisteElemento(Rand);
vetor1[i] := Rand;
A[i].Text := IntToStr(vetor1[i]);
strNumeros := strNumeros + A[i].Text;
if i < 6 then
strNumeros := strNumeros + ', ';
end;
Numeros.Lines.Add(strNumeros);
Numeros.Lines.Add('*******');
end;
Emerson Nascimento
Responder
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)