Ir para conteúdo
Fórum Script Brasil
  • 0

Numeros Randomicos


Guest Program-amador

Pergunta

Guest Program-amador

tem como evitar que a sequência gerada de Nº randomicos comece com 0(Zero).

estou usando a seginte procedure:

procedure TForm1.Button1Click(Sender: TObject);

var temp:string;

cont:integer;

begin

for cont:=1 to 8 do begin

temp:=temp+IntToStr(Random(9));

end;

Edit1.Text:=temp;

end;

Obrigado!

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

é só você jogar em um laço de repeticao ate q o numero seja diferente de zero.

usa o repeat ... until ( <condicao> ), e só concatena, ou soma os valores quando sair desse laço porque assim você garante q não comeca com zero..

e +uma coisa , inicializa essa tua variavel temp, porque você tah trabalhando com ela sem tah inicializada e isso pode te atrapalhar no futuro..

vlw.

Link para o comentário
Compartilhar em outros sites

  • 0

Mesmo esquema da resposta anterior, mas agora não deixando que o primeiro número seja igual a 0

procedure TForm1.Button1Click(Sender: TObject);
var temp:string;
    cont:integer;
begin
  temp:='';
  for cont:=1 to 8 do begin
    temp:=temp+IntToStr(random(9));
    while temp[1]='0' do temp:=IntToStr(random(9));
  end;
  Edit1.Text:=temp;
end;

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Maurício -

Cara, qualquer algoritmo de geração de números aleatórios não é tão aleatório assim, e isso vale para qualquer lintuagem. O que acontece é que o computador consegue gerar números aleatórios, mas nós sabemos como programas funcionam, eles são algo estático, portanto os números gerados sempre terão a mesma sequencia, e não tem muito como fugir disso.

Desta forma, para que um algoritmo consiga gerar números aleatórios de verdade é necessário dar ao algoritmo uma semente, que seja um número aleatório para ele tomar por base para a geração dos próximos números. A coisa complica se você for pensar em um algoritmo para gerar um número aleatório para o gerador de números aleatórios, mas é mais ou menos isso mesmo!

Por isso, as outras soluções postadas aqui não resolveriam muito o seu problema, pois a sequencia de números continuaria sendo sempre a mesma!

Para resolver o problema, cada linguagem faz de um jeito, mas normalmente a solução é pegar informações da CPU, como por exemplo o tempo em milisegundos ou algo semelhante, o que é uma boa semente, mas não deve ser usada para gerar números aleatórios, pois em um laço, os milisegundos seriam um número mais ou menos sequencial e crescente.

Sendo assim, em Delphi basta você chamar a rotina Randomize, em algum ponto do seu aplicativo para que uma semente aleatória seja pega da CPU, a partir daí pode chamar a rotina Random que os números realmente vão ser aleatórios a cada execução do programa!

Link para o comentário
Compartilhar em outros sites

  • 0

Boas Pessoal...

Pegando neste tópico...

Estou a fazer um pequeno programa para gerar numeros aleatorios de 1 a 50.

Utilizando essa rotina já consegui colocar no edit1 um numero aleatorio de 1 a 50, o que gostava de saber é como e que faço para colocar na edit2,edit3,edit4,edit5, numeros aleatorios sem repetir por exemplo o numero da edit1 com o numero da edit2???

alguém pode dar uma ajuda???

Cumps

Monky

Editado por Monky
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...