hugohhh 0 Denunciar post Postado Junho 25, 2005 Estou montando um programa para gerar numeros aleatorios em um memo, ele pegaria 15 numeros de 1 a 25..... usei o seguinte comando para o programa:function sorteia(const min:integer):string;vartem:set of byte;s:string;n,i:integer;begins:='';tem:=[];for i:=1 to 15 dobeginn:=random(25);while n in tem dobeginn:=random(25);end;tem:=tem+[n];s:=s+' '+inttostr(n+(min));end;result:=copy(s,2,length(s)-1);end;procedure TForm1.Button1Click(Sender: TObject);beginMemo1.Lines.Clear;Memo1.Lines.Add(sorteia(1));end;Com isso eu consigo gerar estes 15 numeros, só que agora o pessoal do serviço qr q o programa, ao escolher alguns numeros, tipo 1, 2 e 6, o restante (3,4,5,7 ao 25) seriam gerados aleatoriamente e colocado no Memo... que comando usaria para gerar estes numeros???Outra coisa que não estou conseguindo é colocar cada numero e, uma linha do Memo, eles aparacem em uma linha só..... Compartilhar este post Link para o post Compartilhar em outros sites
skywards 1 Denunciar post Postado Junho 25, 2005 Olapara q os numeros saiam um em cada linha do memo você pode fazer assimfunction sorteia(const min:integer):string;var tem: set of byte; s: string; n, i: integer;begin s := ''; tem := []; for i := 1 to 15 do begin n := random(25); while n in tem do begin n := random(25); end; tem := tem + [n]; if (i = 15) then s := s + inttostr( n + (min)) else s := s + inttostr( n + (min)) + #13#10; end; result := s;end;procedure TForm1.Button1Click(Sender: TObject);begin Memo1.Lines.Clear; Memo1.Lines.Text := (sorteia(1));end;so nao entendi direito o q você disse em Com isso eu consigo gerar estes 15 numeros, só que agora o pessoal do serviço qr q o programa, ao escolher alguns numeros, tipo 1, 2 e 6, o restante (3,4,5,7 ao 25) seriam gerados aleatoriamente e colocado no Memo... que comando usaria para gerar estes numeros???tenta explicar melhor dando ate um exemplo. Compartilhar este post Link para o post Compartilhar em outros sites
hugohhh 0 Denunciar post Postado Junho 25, 2005 Com o comando que passei, o programa gera 15 numeros aleatorios d 25 numeros, só que preciso tipo escolher tipo 5 numeros dos 25 e, o restante ser gerado aleatoriamente....ao escolher 1 ao 5, do 6 ao 25 o programa geraria so 10 numeros restante.a escolha ficaria por conta do usuario e, creio q não ficaria numa sequencia só como no exemplo.. Compartilhar este post Link para o post Compartilhar em outros sites
hugohhh 0 Denunciar post Postado Junho 25, 2005 O usuario selecionaria os numeros a ser fixo, talvez num CheckBox e, o programa geraria aleatoriamente os restantes dos numerosValeu pelo comando skywards Compartilhar este post Link para o post Compartilhar em outros sites
skywards 1 Denunciar post Postado Junho 25, 2005 Olavocê se assim faz como você tah querendofunction sorteia(const min: integer; escolhidos: String; gera: integer):string;var tem: set of byte; s, numeros: string; n, i, num: integer;begin s := ''; tem := []; numeros := escolhidos; if (gera <> 0) then for i := 1 to 15 - gera do begin if (i < (15 - gera)) then num := StrToInt(copy(numeros, 1, (pos(',', numeros) - 1))) else num := StrToInt(numeros); tem := tem + [num]; if (i < (15 - gera)) then Delete(numeros, 1, (pos(',', numeros))); Result := Result + IntToStr(num) + #13#10; end; for i := 1 to gera do begin n := random(25); while (n + (min)) in tem do begin n := random(25); end; tem := tem + [n + min]; if (i = gera) then s := s + inttostr((n) + (min)) else s := s + inttostr((n) + (min)) + #13#10; end; result := Result + s;end;procedure TForm1.Button1Click(Sender: TObject);begin Memo1.Lines.Clear; Memo1.Lines.Text := sorteia(1, '1,2,3,4,5', 10);end;espero q ajude. Compartilhar este post Link para o post Compartilhar em outros sites
hugohhh 0 Denunciar post Postado Junho 26, 2005 Ajudou muito skywards..... Obrigado pela ajuda.... Compartilhar este post Link para o post Compartilhar em outros sites