unit yaohaoqiU;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin;
type
TForm1 = class(TForm)
Button1: TButton;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
Label1: TLabel;
Label2: TLabel;
ListBox1: TListBox;
Button2: TButton;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,r,l:integer;
s:string;
All:array[0..1000] of integer;//这个数组用来装随机数的
Result:array[0..1000] of integer;//这个数组用来装结果的
begin
l:=label3.Height;
if spinEdit1.Value<spinEdit2.Value then
begin
label3.caption:='错了喔..倒了也!';
label3.Width:=353;
end
else
begin
for i:=0 to spinEdit1.Value-1 do
All[i]:=i;
//产生M个随机数
for i:=0 to spinEdit2.Value-1 do
begin
j:=random(spinEdit1.Value);
r:=j mod (spinEdit1.Value-1-i);
Result[i]:=All[r];
All[r]:=All[spinEdit1.Value-1-i];
end;
ListBox1.Clear;
s:=' ';
for i:=0 to spinEdit2.Value-1 do
begin
s:=s+inttostr(Result[i])+' ';
ListBox1.Items.add(inttostr(Result[i]));
end;
label3.caption:=s;
label3.Width:=353;
end;
form1.Height:=(300+(l-110));
form1.InitiateAction;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
运行时:
输入后结果:
改个数后结果: