⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 判断随机数
💻 ~PAS
字号:
unit Unit1;
    
interface
    
uses
  Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,
  StdCtrls;
    
type
  TForm1=class(TForm)
  Button1: TButton;
  ListBox1: TListBox;
  Edit1: TEdit;
  procedure Button1Click(Sender:TObject);
  procedure FormCreate(Sender:TObject);
  procedure FormClose(Sender:TObject;var Action:TCloseAction);
private
{ Private declarations   }
public
{ Public  declarations   }
procedure GetNum(var h:integer);
end;
    
var
  Form1:TForm1;
  Numlist:TStrings;
    
const
  n   =   40;
var
  num:array[0..n-1] of string;//=('1',   '2',   '3',   '4',   '5',   '6',   '7',   '8',   '9',   '10',   '11',   '12',   '13');
    
implementation
    
{$R   *.DFM}
    
procedure TForm1.Button1Click(Sender:   TObject);
var
  i,m:integer;
  rnd:integer;
begin
  m:=strtoint(edit1.text);
  if m>n then
  begin
    showmessage('m>n... will exit');
    exit;
  end;
  numlist.Clear;
  numlist.Add('');     //必不可少
  randomize;
  for i:=1 to m do
  begin
    rnd:=Random(n);
    getnum(rnd);
    numlist.Add(num[rnd]);
  end;
  numlist.Delete(0);
  ListBox1.Items.Assign(numlist);
end;
    
procedure TForm1.GetNum(var h:integer);     //调用递归过程
begin
  if numList.IndexOf(num[h])>0 then   //判断是否重复
  begin
  h:=random(n);           //如果重复,则重新获取随机数
  GetNum(h);
  end;
end;
    
procedure TForm1.FormCreate(Sender:   TObject);
var
  i:integer;
  begin
    for i :=0 to n-1 do
    num[i]:=inttostr(i+1);       //初始化数组
    numList:=TstringList.Create;
end;
    
procedure TForm1.FormClose(Sender:TObject;var Action:TCloseAction);
begin
  numlist.free;
end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -