Guest Program-amador Postado Maio 12, 2004 Denunciar Share Postado Maio 12, 2004 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;beginfor cont:=1 to 8 do begin temp:=temp+IntToStr(Random(9));end;Edit1.Text:=temp;end;Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Turbo Postado Maio 12, 2004 Denunciar Share Postado Maio 12, 2004 é 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Maio 12, 2004 Denunciar Share Postado Maio 12, 2004 uses Math;Veja a função RandomRange Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 tetri Postado Maio 12, 2004 Denunciar Share Postado Maio 12, 2004 Mesmo esquema da resposta anterior, mas agora não deixando que o primeiro número seja igual a 0procedure 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; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Bicicleta Postado Maio 12, 2004 Denunciar Share Postado Maio 12, 2004 Se o Randon retorna um número entre 0 e o total passado, porque não fazer assim:numero := Random(8) + 1Seria melhor q usar um laço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Maurício - Postado Maio 12, 2004 Denunciar Share Postado Maio 12, 2004 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Monky Postado Agosto 18, 2008 Denunciar Share Postado Agosto 18, 2008 (editado) 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???CumpsMonky Editado Agosto 18, 2008 por Monky Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Pablo Polícia Postado Agosto 19, 2008 Denunciar Share Postado Agosto 19, 2008 sou iniciante em delphi. alguém pode me explicar o que é um random. Citar Link para o comentário Compartilhar em outros sites More sharing options...
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
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.