亚洲欧美第一页_禁久久精品乱码_粉嫩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: TSDLinkListRec;
begin
  Result := nil;
  T := Head;
  while T <> nil do
  begin
    if TFitDataRec(T).ItemName = ItemName then
    begin
      Result := TFitDataRec(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一区二区三区免费野_久草精品视频
欧美日韩一区二区电影| 亚洲在线观看免费| 亚洲欧美乱综合| 久久成人av少妇免费| 色老汉av一区二区三区| 欧美亚洲一区二区在线观看| 免费成人在线观看| 国产精品三级在线观看| 亚洲无线码一区二区三区| 一二三区精品视频| 亚洲国产精品麻豆| av亚洲精华国产精华精| 国产成人免费在线视频| 懂色av一区二区三区蜜臀| 亚洲视频 欧洲视频| 色婷婷国产精品| 久久久精品免费网站| 天天操天天综合网| 日本韩国精品在线| 中文字幕av一区 二区| 国产一区不卡视频| 欧美大片免费久久精品三p| 亚洲国产毛片aaaaa无费看| 99精品视频在线免费观看| 国产欧美日韩精品一区| 国产精品一区二区不卡| 欧美α欧美αv大片| 久久精工是国产品牌吗| 日韩免费性生活视频播放| 日韩福利电影在线| 日韩一二三区视频| 蜜臀精品久久久久久蜜臀| 欧美一级片在线观看| 日韩国产欧美一区二区三区| 日韩欧美你懂的| 精品一区二区av| 久久久91精品国产一区二区三区| 精品伊人久久久久7777人| 精品乱码亚洲一区二区不卡| 久久 天天综合| 久久精品免视看| www.av亚洲| 亚洲二区视频在线| 91精品国产欧美一区二区| 日韩va亚洲va欧美va久久| 日韩一二三四区| 国产91高潮流白浆在线麻豆 | 日韩视频一区二区三区| 蜜臀av一区二区在线免费观看| 精品国免费一区二区三区| 国产精品一区二区三区网站| 中文字幕在线观看不卡视频| 色欧美片视频在线观看| 性欧美疯狂xxxxbbbb| 精品少妇一区二区| 波多野结衣中文字幕一区二区三区| 综合亚洲深深色噜噜狠狠网站| 欧美三电影在线| 国产一区二区伦理| 亚洲色图20p| 欧美一激情一区二区三区| 成人激情免费电影网址| 亚洲综合丝袜美腿| 久久综合九色综合97_久久久| 成人黄色免费短视频| 婷婷开心激情综合| 国产精品剧情在线亚洲| 91麻豆精品国产91久久久久久久久 | 日本电影亚洲天堂一区| 日本91福利区| 亚洲欧洲制服丝袜| 精品国产精品网麻豆系列| 91猫先生在线| 欧美亚洲综合色| 激情av综合网| 五月婷婷久久丁香| 国产精品久久久久久久久动漫| 欧美天天综合网| 国产成人精品亚洲日本在线桃色| 亚洲自拍偷拍麻豆| 国产精品午夜春色av| 91精品蜜臀在线一区尤物| 99久精品国产| 国产a精品视频| 免费观看91视频大全| 亚洲综合区在线| 国产精品福利在线播放| 亚洲精品一区二区三区影院| 欧美日免费三级在线| 91欧美一区二区| 成人性视频网站| 国产老妇另类xxxxx| 蜜臀久久久久久久| 亚洲午夜一区二区| 亚洲卡通动漫在线| 亚洲少妇中出一区| 中日韩免费视频中文字幕| 2020国产精品自拍| 日韩欧美一级二级三级久久久| 欧美年轻男男videosbes| 色综合天天综合网国产成人综合天| 国产乱国产乱300精品| 精品亚洲免费视频| 日本女优在线视频一区二区| 午夜视频一区在线观看| 一区二区三区四区中文字幕| ...中文天堂在线一区| 国产精品国产三级国产普通话蜜臀| 久久婷婷成人综合色| 精品久久久久久久久久久久久久久久久| 这里只有精品电影| 91精品久久久久久蜜臀| 日韩欧美在线影院| 精品少妇一区二区三区视频免付费 | 中文字幕欧美日韩一区| 久久久久久久免费视频了| 久久综合色之久久综合| 欧美精品一区二区久久婷婷| 欧美成人a视频| 久久一区二区三区国产精品| 精品国产免费人成电影在线观看四季| 日韩一区二区在线看片| 精品99一区二区| 国产精品久久久久久久久图文区| 欧美激情一区不卡| 亚洲免费成人av| 亚洲国产精品久久久久秋霞影院 | 亚洲男同1069视频| 亚洲综合免费观看高清完整版在线| 亚洲高清在线视频| 免费成人在线观看| 处破女av一区二区| 色哟哟亚洲精品| 欧美电影在线免费观看| 欧美成人一区二区三区| 欧美经典一区二区| 亚洲免费三区一区二区| 99精品视频在线播放观看| 欧美自拍丝袜亚洲| 日韩一区二区三区电影| 国产日韩欧美精品在线| 亚洲美女区一区| 日本视频在线一区| 成人黄色一级视频| 欧美日韩国产片| 中文字幕巨乱亚洲| 污片在线观看一区二区| 经典三级一区二区| 99久久婷婷国产综合精品| 欧美精品乱码久久久久久按摩| 精品福利二区三区| 亚洲人成在线观看一区二区| 日韩av一区二区三区| 成人黄色免费短视频| 欧美一级视频精品观看| 亚洲人成在线播放网站岛国| 久久aⅴ国产欧美74aaa| 色av一区二区| 国产日韩av一区| 另类小说综合欧美亚洲| 91在线视频观看| 久久综合资源网| 视频一区中文字幕国产| 99国产精品久久久久久久久久| 日韩欧美专区在线| 亚洲中国最大av网站| 国产成人在线视频网站| 91麻豆精品国产91久久久久久| 亚洲日本电影在线| 成人午夜电影网站| 久久天堂av综合合色蜜桃网| 亚洲成人av一区二区三区| 成人黄色在线看| 久久久精品免费网站| 热久久久久久久| 欧美日韩视频专区在线播放| 1024精品合集| 高清不卡在线观看| 久久影院视频免费| 久久成人免费网站| 日韩欧美视频在线| 日韩综合在线视频| 91成人网在线| 亚洲色大成网站www久久九九| 国产成人aaa| 久久影院视频免费| 国产在线国偷精品免费看| 欧美一区二区在线看| 视频一区二区三区入口| 欧美日韩精品一区二区在线播放 | 欧美在线综合视频| 亚洲激情中文1区| 欧美曰成人黄网| 又紧又大又爽精品一区二区| 色美美综合视频| 一区二区三区中文字幕精品精品| 99精品久久只有精品| 18欧美亚洲精品| 91久久奴性调教| 五月激情综合网|