![]() |
|
#1
|
|||
|
|||
![]() Код:
program Project1; uses SysUtils, Dialogs; type TLevel = class FreqLevel : array of Integer; constructor Create (CountPoint : Integer); destructor Destroy (); end; constructor TLevel.Create(CountPoint : Integer); begin SetLength(FreqLevel, CountPoint); end; destructor TLevel.Destroy (); begin SetLength(FreqLevel, 0); end; type TData = class private CountPass : Integer; CountPoint : Integer; procedure RescailSize (); public Freq : array of Integer; Pass : array of TLevel; procedure AddFreqLevel (index , NumPass, FreqValue, FreqLevelValue: Integer); procedure AddLevel (index , NumPass, FreqLevelValue: Integer); constructor Create (CountPoint, CountPass : integer); destructor Destroy (); end; constructor TData.Create (CountPoint, CountPass : integer); var i : Integer; begin self.CountPass := CountPass; self.CountPoint := CountPoint; SetLength(Freq, CountPoint); SetLength(Pass, CountPass); for i := 0 to CountPass-1 do Pass[i] := TLevel.Create(CountPoint); end; procedure TData.RescailSize (); var i : Integer; newSize : Integer; begin newSize := CountPass * 2; SetLength(Pass, newSize); for i:= CountPass to newSize-1 do Pass[i] := TLevel.Create(CountPoint); CountPass := newSize; end; procedure TData.AddFreqLevel (index , NumPass, FreqValue, FreqLevelValue: Integer); begin Freq[index] := FreqValue; Pass[NumPass].FreqLevel[index] := FreqLevelValue; end; procedure TData.AddLevel (index , NumPass, FreqLevelValue: Integer); begin if self.CountPass <= NumPass then RescailSize (); Pass[NumPass].FreqLevel[index] := FreqLevelValue; end; destructor TData.Destroy (); begin SetLength(Freq, 0); SetLength(Pass, 0); end; var Data : TData; i : Integer; begin Data := TData.Create(100,1); Data.AddFreqLevel(0,0,101,55); Data.AddFreqLevel(1,0,102,77); Data.AddFreqLevel(2,0,103,70); Data.AddLevel(0,1,66); Data.AddLevel(1,1,79); Data.AddLevel(2,1,88); ShowMessage(IntToStr(Data.Freq[2])); ShowMessage(IntToStr(Data.Pass[1].FreqLevel[2])); Data.Free; end. Вопрос: 1. Правильно реализованы классы? 2. Правильно ли я освобождаю память? |