NUMEROS ALEATORIOS DEVEM VIR EM UMA MESMA LINHA NO MEMO
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
Clique aqui para fazer login e interagir na Comunidade :)