如何取得數字集合裡的值 |
答題得分者是:jow
|
hazard
一般會員 發表:30 回覆:24 積分:10 註冊:2006-10-28 發送簡訊給我 |
|
John Wong
初階會員 發表:1 回覆:35 積分:32 註冊:2004-09-18 發送簡訊給我 |
|
Coffee
版主 發表:31 回覆:878 積分:561 註冊:2006-11-15 發送簡訊給我 |
|
hazard
一般會員 發表:30 回覆:24 積分:10 註冊:2006-10-28 發送簡訊給我 |
|
jow
尊榮會員 發表:66 回覆:751 積分:1253 註冊:2002-03-13 發送簡訊給我 |
<textarea class="delphi" rows="10" cols="60" name="code"> unit TestMain; interface uses
Forms, Controls, StdCtrls, Classes; type
TInt = 1..255;
TIntSet = Set of TInt;
TIntArray = array of Integer; TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
public
function CountOf(ASet: TIntSet): Integer;
function Set2Array(ASet: TIntSet): TIntArray;
end; var
Form1: TForm1;
IntA: TIntSet = [100, 200]; implementation {$R *.dfm} uses SysUtils; { TForm1 } function TForm1.CountOf(ASet: TIntSet): Integer;
var
L: TInt;
begin
Result := 0;//Element Count of Set
for L := Low(TInt) to High(TInt) do
begin
if ASet = [] then Break
else if L in ASet then
begin
Inc(Result);
ASet := ASet - [L];
end;
end;
end; function TForm1.Set2Array(ASet: TIntSet): TIntArray;
var
I: Integer;
L: TInt;
begin
SetLength(Result,CountOf(ASet));//Set-Length of Elements of Set
if (ASet <> []) and (Length(Result)>0) then
begin
I := 0;
for L := Low(TInt) to High(TInt) do
if ASet = [] then Break
else if L in ASet then
begin
Result[I] := L;
ASet := ASet - [L];
Inc(I);
end;
end;
end; procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
A: TIntArray;
begin
A := Set2Array(IntA);
try
for I := 0 to Length(A)-1 do
ListBox1.Items.Add(IntToStr(A[I]));
finally
A := nil;
end;
end; </textarea> 太久沒來,這裡好像變熱鬧了...
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |