?? umain.pas
字號:
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;
const
MaxLen =100;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Memo1: TMemo;
Memo2: TMemo;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
FList:array[0..MaxLen] of Integer;
function Search(Key:integer):Integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i,j:integer;
begin
//生成隨機數組
Randomize;
j:=0;
for i := 0 to MaxLen do
begin
j:=j+random(3)+1;
FList[i]:=j;
Memo2.Lines.Add(Format('%d : %d',[i,j]));
end;//End For
Memo2.Lines.Add(Format('%d : %d',[i,j]));
end;
function TForm1.Search(Key:integer):Integer;
var
Curpos,LowPos,HighPos ,count:integer;
begin
Result :=-1;
LowPos := Low(FList) ;
HighPos := High(FList);
count := 0;
while LowPos <= HighPos do
begin
Inc(count);
Curpos := (HighPos + LowPos ) div 2 ;
if FList[Curpos] = key then
begin
Result := Curpos;
Break;
end;
if Key>FList[Curpos] then
LowPos := Curpos + 1
else
HighPos := Curpos -1;
end;//End While
Memo1.Lines.Add('查找次數:'+IntToStr(count)); //調試
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Curpos,Key:integer;
begin
Key := StrToInt(Edit1.Text);
Curpos := Search(key);
if Curpos>=0 then
begin
Memo1.Lines.Add(Format('查找 %d 成功;位置 %d FList[pos] = %d '
,[Key,Curpos,FList[Curpos]]));
end
else
begin
Memo1.Lines.Add(Format('查找 %d 失敗 ',[Key ])) ;
end;
Edit1.SetFocus;
Edit1.SelectAll;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -