各位大虾,请帮我看以下,不知道什么调用随机函数,谢谢!!
就是在1~33个数字里面任意选取6个数字和在1~16里面任意选取1个数字组成一个7位数!! 
有一个随机函数实现,

解决方案 »

  1.   

    1. 就是在1~33个数字里面任意选取6个数字
    procedure TForm1.Button1Click(Sender: TObject);
    var
    a,b,c,d,e,f:real;
    i:integer;
    ss:string;
    beginrandomize;
    for i:=1 to 33 do begin
    a:=random(33);
    b:=random(33);
    c:=random(33);
    d:=random(33);
    e:=random(33);
    f:=random(33);
    end;
    ss:=floattostr(a)+floattostr(b)+floattostr(c)+floattostr(d)+floattostr(e)+floattostr(f);
    showmessage(ss);end;end.
    2.有一个字符假设 SS:=ddddddddd  
    我想取前面的四位什么样取出来,谢谢! 在DELPHI什么样取字符,用哪个函数?
      

  2.   

    第二个问题可以用LeftStr(SS, 4)或者Copy(SS, 1, 4)来实现第一个问题没有看明白,1~33或者1~16之间的数又不仅仅是各位数,怎么组成7位数?
    不过你如果想取1~33之间的数可以用Random(33)+1,如果不包括33就用Random(32)+1,结果是整数。
      

  3.   

    在1~33个数字里面任意选取6个数字,根本就不需要for i:=1 to 33 do这一句.
      

  4.   

    从1到33里面随机取6个不重复的数字:procedure TForm1.Button1Click(Sender: TObject);
    var
      Sl: TStringList;
      S: String;
      I: Integer;
    begin
      Randomize;
      Sl := TStringList.Create;
      for I := 0 to 5 do
      begin
        while true do
        begin
          S := IntToStr(Random(33) + 1);
          if Sl.IndexOf(S) < 0 then
          begin
            Sl.Add(S);
            Break;
          end;
        end;
      end;
      S := '';
      for I := 0 to Sl.Count - 1 do
        S := S + '|' + Sl.Strings[I];
      FreeAndNil(Sl);
      ShowMessage(S);
    end;