亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? singlelinklist.~pas

?? 最小二乘相關介紹,最小二乘相關介紹,及其原程序!仔細整理收獲不少!
?? ~PAS
字號:
//單鏈表單元文件
unit SingleLinkList;

interface

uses
	Windows, Messages, SysUtils, Classes, Forms, Dialogs;

type
  int = integer;

  //單鏈表數據類。
  TSDLinkListRec = class
  public
    Next: TSDLinkListRec;
    constructor Create;
  end;

  //單鏈表管理類。
  TSDLinkListMGR = class
  private
    FCount: integer;
  public
    Head: TSDLinkListRec;
    constructor Create;
    destructor  Destroy;override;
    function  IndexOf(Index: integer): TSDLinkListRec;
    function  GetIndex(SL: TSDLinkListRec): int;
    procedure Clear;virtual;
    procedure Append(SL: TSDLinkListRec);virtual;
    procedure Insert(Index, SL: TSDLinkListRec);virtual;
    procedure Delete(SL: TSDLinkListRec);virtual;
    procedure MovePrev(SL: TSDLinkListRec);
    procedure MoveNext(SL: TSDLinkListRec);
    property  Count: int read FCount;
  end;

  TDBArray = array of Double;
  TFitDataRec = class(TSDLinkListRec)
	private
    FItemName: 	String;
    FPower:     BYTE;
    FCoef:			TDBArray;
    FError:			Double;
    FFitTime:		TDateTime;
    FMemo:			TStrings;

    FDataNums:	WORD;
    FTestIn:    TDBArray;
    FTestOut:		TDBArray;
    FFitOut:		TDBArray;
    FRelError:	TDBArray;

    procedure SetItemName(Value: String);
    procedure SetCoef(Index: Integer; Value: Double);
    procedure SetPower(Value: BYTE);
    procedure SetDataNams(Value: WORD);

    procedure SetTestIn(Index: Integer; Value: Double);
    procedure SetTestOut(Index: Integer; Value: Double);
    procedure SetFitOut(Index: Integer; Value: Double);
    procedure SetRelError(Index: Integer; Value: Double);

    function GetCoef(Index: Integer): Double;

    function GetTestIn(Index: Integer): Double;
    function GetTestOut(Index: Integer): Double;
    function GetFitOut(Index: Integer): Double;
    function GetRelError(Index: Integer): Double;
  published
  	property ItemName: 	String read FItemName write SetItemName;
    property Power:     BYTE read FPower write FPower;
    property Error:			Double read FError write FError;
    property FitTime:		TDateTime read FFitTime write FFitTime;
    property Memo: TStrings read FMemo write FMemo;

    property DataNums:	WORD read FDataNums write FDataNums;
  public
  	property Coef[Index: Integer]: Double read GetCoef write SetCoef;
    property TestIn[Index: Integer]:    Double read GetTestIn write SetTestIn;
    property TestOut[Index: Integer]:		Double read GetTestOut write SetTestOut;
    property FitOut[Index: Integer]:		Double read GetFitOut write SetFitOut;
    property RelError[Index: Integer]:	Double read GetRelError write SetRelError;

    procedure ReadFromFile(var F: Text);
    procedure WriteToFile(var F: Text);
    
  	constructor Create;
  end;

  TFitDataMGR = class(TSDLinkListMGR)
    DefaultFitInfo: TFitDataRec;
    Modifyed: Boolean;

    function  FindItemByName(ItemName: String): TFitDataRec;
    
    procedure ReadFromFile(FileName: string);
    procedure WriteToFile(FileName: string);
    constructor Create;
    destructor  Destroy;override;
  end;

implementation

{
	以下是一個單鏈表的完整實現。包括兩個類:之一是單鏈表中的存儲數據的類。之二是對此單鏈表進行管理的類。
  在管理類中實現了以下操作:
    1、APPEND操作:向鏈表中添加節點。
    2、INSERT操作:向鏈表中插入節點。(插入的節點在INDEX節點后面。)
    (注意:以上操作支持多節點。)
    3、DELETE操作:刪除鏈表中的一個節點。
    4、MOVEPREV操作:將一個節點移動到其前一個節點前。
    5、MOVENEXT操作:將一個節點移動到其后一個節點后。
    6、INDEX操作:通過索引方式查找節點。
}
//--TSDLinkListRec單鏈表記錄類

constructor TSDLinkListRec.Create;
begin
  inherited;
  Next := nil;
end;

//--TSDLinkListMGR單鏈表管理類

constructor TSDLinkListMGR.Create;
begin
  inherited;
  Clear;
end;

destructor  TSDLinkListMGR.Destroy;
begin
  Clear;
  inherited;
end;

function  TSDLinkListMGR.IndexOf(Index: integer): TSDLinkListRec;
var
  T: TSDLinkListRec;
  i: integer;
begin
  i := 1;
  Result := nil;
  T := Head;
  while T <> nil do
  begin
    if i = Index then
    begin
      Result := T;
      Break;
    end;
    T := T.Next;
    Inc(i);
  end;
end;

function  TSDLinkListMGR.GetIndex(SL: TSDLinkListRec): int;
var
  P: TSDLinkListRec;
begin
  Result := 0;
  P := Head;
  while P <> nil do
  begin
    Inc(Result);
    if P = SL then
      Exit;
    P := P.Next;
  end;
  Result := 0;
end;

procedure TSDLinkListMGR.Clear;
var
  T: TSDLinkListRec;
begin
  T := Head;
  while T <> nil do
  begin
    Head := T.Next;
    T.Destroy;
    T := Head;
  end;
  Head := nil;
  FCount := 0;  
end; 

procedure TSDLinkListMGR.Append(SL: TSDLinkListRec);
var
  T: TSDLinkListRec;
  C: integer;
begin
  T := SL;
  C := 0;
  while T <> nil do
  begin
    inc(C);
    T := T.Next;            
  end;
  if C = 0 then
    Exit;
  if Head = nil then
    Head := SL
  else
  begin
    T := Head;
    while T.Next <> nil do
      T := T.Next;
    T.Next := SL;
  end;
  inc(FCount, C);
end;

procedure TSDLinkListMGR.Insert(Index, SL: TSDLinkListRec);
var
  T, T1, T2: TSDLinkListRec;
  C: integer;
begin
  C := 0;
  T := SL;
  while T <> nil do
  begin
    inc(C);
    T := T.Next;
  end;
  if C = 0 then
    Exit;
  if Head = nil then
    Head := SL
  else
  begin
    T := Head;
    while T <> nil do
    begin
      if T = Index then
      begin
        T1 := T;
        T.Next := SL;
        T2 := SL;
        while T2.Next <> nil do
          T2 := T2.Next;
        T2.Next := T1;
        Break;
      end;
      T := T.Next;
    end;
  end;
  inc(FCount, C);
end;

procedure TSDLinkListMGR.Delete(SL: TSDLinkListRec);
var
  T: TSDLinkListRec;
begin
  if SL = nil then
    Exit;
  if Head = SL then
  begin
    Head := SL.Next;
    SL.Destroy;
  end
  else
  begin
    T := Head;
    while T <> nil do
    begin
      if T.Next = SL then
      begin
        T.Next := SL.Next;
        SL.Destroy;
        Break;
      end;
      T := T.Next;
    end;
  end;
  dec(FCount);
end;

procedure TSDLinkListMGR.MovePrev(SL: TSDLinkListRec);
var
  P, C: TSDLinkListRec;
begin
  if (SL = nil) or (SL = Head) then
    Exit;
  if Head.Next = SL then
  begin
    C := SL.Next;
    SL.Next := Head;
    Head.Next := C;
    Head := SL;
  end;
  P := Head;
  C := P.Next;
  while (C.Next <> SL) and (C.Next <> nil) do
  begin
    P := C;
    C := C.Next;
  end;
  if C.Next = nil then
    Exit;
  P.Next := SL;
  C.Next := SL.Next;
  SL.Next := C;
end;

procedure TSDLinkListMGR.MoveNext(SL: TSDLinkListRec);
var
  P, C: TSDLinkListRec;
begin
  if SL = nil then
    Exit;
  if Head = nil then
    Exit;
  P := Head;
  C := P.Next;
  while C <> SL do
  begin
    P := C;
    C := C.Next;
  end;
  if C.Next = nil then
    Exit;
  C := SL.Next;
  P.Next := C;
  SL.Next := C.Next;
  C.Next := SL;
end;


// TFitDataRec
procedure TFitDataRec.SetItemName(Value: String);
begin
  if Value <> '' then
  	FItemName := Value;
end;

procedure TFitDataRec.SetPower(Value: BYTE);
begin
  if Value >= 1 then
  	SetLength(FCoef,Value+1)
  else
    Application.MessageBox('擬合方程的次數必須大于或等于1!','警告',MB_OK+MB_ICONWARNING);
end;

procedure TFitDataRec.SetDataNams(Value: WORD);
begin
  if Value >= 2 then
  begin
  	SetLength(FTestIn,Value);
    SetLength(FTestOut,Value);
    SetLength(FFitOut,Value);
    SetLength(FRelError,Value);
  end else
    Application.MessageBox('用于擬合的測量數據對個數必須大于或等于2!','警告',MB_OK+MB_ICONWARNING);
end;

procedure TFitDataRec.SetCoef(Index: Integer; Value: Double);
begin
	if (Index > -1) and (Index < (FPower+1)) then
  	FCoef[Index] := Value
  else
  	Application.MessageBox('索引越界!','錯誤',MB_OK+MB_ICONERROR);
end;

procedure TFitDataRec.SetTestIn(Index: Integer; Value: Double);
begin
  if (Index > -1) and (Index < FDataNums) then
  	FTestIn[Index] := Value
  else
  	Application.MessageBox('索引越界!','錯誤',MB_OK+MB_ICONERROR);
end;

procedure TFitDataRec.SetTestOut(Index: Integer; Value: Double);
begin
  if (Index > -1) and (Index < FDataNums) then
  	FTestOut[Index] := Value
  else
  	Application.MessageBox('索引越界!','錯誤',MB_OK+MB_ICONERROR);
end;

procedure TFitDataRec.SetFitOut(Index: Integer; Value: Double);
begin
  if (Index > -1) and (Index < FDataNums) then
  	FFitOut[Index] := Value
  else
  	Application.MessageBox('索引越界!','錯誤',MB_OK+MB_ICONERROR);
end;

procedure TFitDataRec.SetRelError(Index: Integer; Value: Double);
begin
  if (Index > -1) and (Index < FDataNums) then
  	FRelError[Index] := Value
  else
  	Application.MessageBox('索引越界!','錯誤',MB_OK+MB_ICONERROR);
end;

function TFitDataRec.GetCoef(Index: Integer): Double;
begin
  if (Index > -1) and (Index < (FPower+1)) then
  	Result := FCoef[Index]
  else
  	Application.MessageBox('索引越界!','錯誤',MB_OK+MB_ICONERROR);
end;

function TFitDataRec.GetTestIn(Index: Integer): Double;
begin
  if (Index > -1) and (Index < FDataNums) then
  	Result := FTestIn[Index]
  else
  	Application.MessageBox('索引越界!','錯誤',MB_OK+MB_ICONERROR);
end;

function TFitDataRec.GetTestOut(Index: Integer): Double;
begin
  if (Index > -1) and (Index < FDataNums) then
  	Result := FTestOut[Index]
  else
  	Application.MessageBox('索引越界!','錯誤',MB_OK+MB_ICONERROR);
end;

function TFitDataRec.GetFitOut(Index: Integer): Double;
begin
  if (Index > -1) and (Index < FDataNums) then
  	Result := FFitOut[Index]
  else
  	Application.MessageBox('索引越界!','錯誤',MB_OK+MB_ICONERROR);
end;

function TFitDataRec.GetRelError(Index: Integer): Double;
begin
  if (Index > -1) and (Index < FDataNums) then
  	Result := FRelError[Index]
  else
  	Application.MessageBox('索引越界!','錯誤',MB_OK+MB_ICONERROR);
end;

constructor TFitDataRec.Create;
begin
  inherited;
  Next := nil;
  FPower := 1;
  FDataNums := 0;
	SetLength(FCoef,2);
  SetLength(FTestIn,2);
  SetLength(FTestOut,2);
  SetLength(FFitOut,2);
  SetLength(FRelError,2);
end;

procedure TFitDataRec.ReadFromFile(var F: Text);
begin

end;

procedure TFitDataRec.WriteToFile(var F: Text);
begin

end;








//--TFitDataMGR

function TFitDataMGR.FindItemByName(ItemName: String): TFitDataRec;
var
  T: TFitDataRec;
begin
  Result := nil;
  T := Head;
  while T <> nil do
  begin
    if T.ItemName = ItemName then
    begin
      Result := T;
      Break;
    end;
    T := T.Next;
  end;
end;

procedure TFitDataMGR.ReadFromFile(FileName: string);
begin

end;

procedure TFitDataMGR.WriteToFile(FileName: string);
begin

end;

constructor TFitDataMGR.Create;
begin

end;

destructor  TFitDataMGR.Destroy;
begin
  inherited;
end;


{
// 在加入用戶時,可以這樣做:

var
  User: TUserRec;
begin
  User := TUserRec.Create;
  User.UserName := '1234';
  User.FullName := 'abcd';
  ......
  Users.Append(User);
end;

// 在刪除用戶時,可以這樣做:
var
  User: TUserRec;
begin
  User := TUserRec(Users.IndexOf('1234'));
  Users.Delete(User);
end;

// 在遍歷用戶時,可以這樣做:
var
  User: TUserRec;
begin
  User := TUserRec(Users.Head);
  while User <> nil do
  begin
    ......
    User := TUserRec(User.Next);
  end;
end;
 }

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲妇女屁股眼交7| 免费成人美女在线观看| 3d成人h动漫网站入口| 国产91精品一区二区麻豆亚洲| 亚洲综合视频在线观看| 国产婷婷色一区二区三区四区| 欧美精品乱码久久久久久按摩| 成人激情视频网站| 精品一区二区三区欧美| 午夜精品久久久久久久久久久 | 亚洲3atv精品一区二区三区| 国产欧美日韩另类一区| 精品日韩成人av| 91精品婷婷国产综合久久性色| 色婷婷综合久色| 国产成人精品亚洲午夜麻豆| 捆绑调教一区二区三区| 亚洲成人资源在线| 亚洲日本中文字幕区| 亚洲国产激情av| 久久蜜桃av一区精品变态类天堂 | 亚洲黄网站在线观看| 欧美激情一区三区| 久久先锋影音av鲁色资源网| 777奇米成人网| 欧美男生操女生| 欧美日韩成人一区| 欧美午夜免费电影| 欧美性受xxxx黑人xyx| 色综合一个色综合亚洲| 国产91高潮流白浆在线麻豆| 国产综合色视频| 国内精品久久久久影院一蜜桃| 久久精品国产一区二区| 久久精品国产久精国产爱| 日本怡春院一区二区| 五月天中文字幕一区二区| 亚洲不卡一区二区三区| 亚洲第一狼人社区| 午夜视频在线观看一区| 日韩 欧美一区二区三区| 人人精品人人爱| 久久成人羞羞网站| 国产自产高清不卡| 国产精品亚洲第一区在线暖暖韩国| 国产自产v一区二区三区c| 国产福利一区二区三区在线视频| 高清av一区二区| av午夜精品一区二区三区| av亚洲精华国产精华精华| 色综合久久久久网| 欧美区视频在线观看| 91精品国产91久久久久久最新毛片| 欧美丰满少妇xxxbbb| 精品国产伦一区二区三区观看体验| 日韩欧美国产精品| 国产日韩精品一区| 亚洲同性同志一二三专区| 亚洲成人激情av| 久草中文综合在线| 成人v精品蜜桃久久一区| 一道本成人在线| 欧美一级在线观看| 久久久久久久久久久久久久久99 | 欧美一级欧美三级在线观看| 日韩欧美二区三区| 国产喂奶挤奶一区二区三区| 亚洲乱码日产精品bd| 午夜精品在线看| 国产精品系列在线播放| 色婷婷一区二区| 欧美一区二区三区公司| 欧美国产日韩亚洲一区| 亚洲成人一区在线| 国产乱码精品一区二区三区av| 成人av在线一区二区三区| 欧美特级限制片免费在线观看| 欧美电影免费观看完整版| 国产精品久久久久久久久久久免费看 | 久久久久成人黄色影片| 亚洲男人天堂av网| 久久国产精品无码网站| 91女厕偷拍女厕偷拍高清| 91精品国产综合久久久久| 国产精品视频免费| 天堂蜜桃一区二区三区 | 欧美日韩免费电影| 亚洲国产成人一区二区三区| 亚洲国产成人tv| 国产98色在线|日韩| 欧美日韩不卡一区| 中文字幕精品一区二区精品绿巨人| 亚洲高清免费在线| 国产不卡视频在线观看| 欧美片在线播放| 中文字幕综合网| 国产精品1区2区| 日韩欧美一级特黄在线播放| 亚洲欧美另类久久久精品2019| 国产最新精品精品你懂的| 69堂精品视频| 一区二区视频在线看| 国产成人在线观看| 日韩视频一区二区三区| 亚洲一区二区三区四区五区黄| 国产一区二区三区免费观看| 欧美精品久久天天躁| 一区二区高清在线| 99精品视频在线观看免费| 国产欧美视频在线观看| 精品一区二区在线视频| 777欧美精品| 亚洲电影欧美电影有声小说| 色婷婷激情久久| 国产精品欧美极品| 懂色av噜噜一区二区三区av| 日韩精品自拍偷拍| 日本午夜精品一区二区三区电影| 欧美午夜精品久久久久久超碰 | 欧美日韩美女一区二区| 一区二区三国产精华液| 色狠狠av一区二区三区| 国产精品传媒入口麻豆| 国产91富婆露脸刺激对白 | 青青草一区二区三区| 欧美日韩综合色| 亚洲精品水蜜桃| 99re这里只有精品6| 国产精品理伦片| heyzo一本久久综合| 国产精品欧美极品| av在线这里只有精品| 中文字幕在线不卡一区二区三区 | 欧美性猛交xxxx乱大交退制版| 亚洲乱码中文字幕| 欧美性猛交xxxxxxxx| 亚洲电影一区二区三区| 欧美人与性动xxxx| 日韩中文字幕91| 亚洲午夜av在线| 欧美视频一区二| 天堂一区二区在线| 欧美大片顶级少妇| 国产精品亚洲一区二区三区在线 | 久久国产人妖系列| 久久先锋影音av鲁色资源网| 国产成人三级在线观看| 国产精品久久久久婷婷| 97成人超碰视| 亚洲一区二区不卡免费| 69精品人人人人| 久久国产乱子精品免费女| 国产偷国产偷精品高清尤物| 99久久伊人网影院| 亚洲一区二区三区国产| 日韩精品中文字幕一区二区三区| 麻豆精品精品国产自在97香蕉 | 国产精品色噜噜| 色综合天天在线| 五月天亚洲婷婷| 国产丝袜美腿一区二区三区| 一本在线高清不卡dvd| 日韩av在线播放中文字幕| 久久久99久久精品欧美| 99免费精品在线| 视频一区二区中文字幕| 26uuu国产在线精品一区二区| 丁香天五香天堂综合| 亚洲国产成人porn| 久久奇米777| 欧美午夜精品理论片a级按摩| 久久不见久久见中文字幕免费| 国产精品乱码人人做人人爱| 欧美午夜一区二区三区| 精品伊人久久久久7777人| 亚洲欧美成人一区二区三区| 777xxx欧美| 91麻豆福利精品推荐| 青青草伊人久久| 亚洲免费高清视频在线| 久久综合色天天久久综合图片| 色偷偷88欧美精品久久久| 韩国一区二区三区| 亚洲国产综合视频在线观看| 久久五月婷婷丁香社区| 欧美三区免费完整视频在线观看| 国产在线精品一区二区夜色| 亚洲综合色在线| 日本一区二区不卡视频| 日韩一级欧美一级| 色综合天天综合网国产成人综合天| 经典三级视频一区| 亚洲制服丝袜av| 国产视频一区不卡| 91精品国产一区二区三区蜜臀| 97国产一区二区| 成人免费视频一区| 久久超碰97中文字幕| 日韩福利电影在线| 亚洲精品亚洲人成人网|