4] of real;// Залежить від пакета акцій, P: array [0 .. 1000] of real;// Масиви X і P: array [0 .. 1000] of real;// X * P * 100/492: array [0 .. 1000] of integer;// Гістограма: real;// Поточне значення в гістограмі: integer ;/ / поточний індекс в гістограмі: array [0 .. 1000] of real;: real;// Min елементи PX (їх приймаємо за нижню межу): integer;// Індекс хв. елемента для сортування, sumPositive: real ;/ / суми кубів отриц і квадратів - для положітельнихaxNumber: real;// Максимальний параметр (який шукаємо)
bestPortfel: array [0 .. 4] of real;: integer;// Нульової індекс: integer;: array [0 .. 4] of real;, nCol: integer;, k2, k3, k4, k5: integer;// Пакет (помножений на 10): integer;// Крок - 10 - точність: real;: integer;, spower: real;// K, s ступеня, sbestpower: real;// K, s - найкращі ступеня, spowerCurrent: real;: real;, smaxpower: real;: real;: array [0 .. 4] of real;: array [0 .. 4] of real;:=StrToFloat ( SettingsForm.edKpower.Text) +0.1;:=StrToFloat (SettingsForm.edSpower.Text) +0.1;:=sgTable.RowCount - 1;:=5;:=0.0;
/ / виконуємо перший етапi:=0 to nCol - 1 do [0, i]:=1.0; i:=1 to nRow - 1 doj:=0 to nCol - 1 do [i, j]:=StrToFloat (sgTable.Cells [j +1, i +1]) / StrToFloat (sgTable.Cells [j +1, i]);
lbLog.Items.Add («Перший етап пройдено. Обробка другого етапу»);
:=10;// Крок=1/step
kpower:=0.2; i:=0 to 4 do [i]:=StrToFloat (sgTable2.Cells [i +1, sgTable2.RowCount - 1]); kpower < kmaxpower do:=0.2; spower < smaxpower do:=100;
/ / виконується другий етапk1:=0 to step do
for k2:=0 to step-k1 dok3:=0 to step-k1-k2 dok4:=0 to step-k1-k2-k3 do
begin
/ / скидаємо значення гістограми і функції розподілу
for i:=0 to nRow - 1 do [i]:=0; [i]:=0.0;;:=step-k1-k2-k3-k4; [0]:=k1 * 1.0/step ; [1]:=k2 * 1.0/step; [2]:=k3 * 1.0/step; [3]:=k4 * 1.0/step; [4]: ??= k5 * 1.0/step;
/ / обчислюємо дохід:=portfel [0] * lastRowTable2 [0] + [1] * lastRowTable2 [1] + [2] * lastRowTable2 [2] + [3] * lastRowTable2 [3] + [4] * lastRowTable2 [4]; temp> maxDohod then:=temp;
/ / запам'ятовуємо портфельi:=0 to 4 do [i]:=portfel [i];;
/ / обчислюємо частку акцій в залежності від пакету
/ / 2 етап і обчислення масиву Pi:=0 to nRow - 1 do [i]:=0; j:=0 to nCol - 1 do [i, j]:=addTable [i, j] * portfel [j]; [i]:=P [i] + dinTable [i, j];;;
/ / обчислення масиву Xi:=0 to nRow - 2 do [i]:=(P [i +1]-P [i]) / (P [i +1] + P [i]); [ nRow - 1]:=- 1.0;
/ / обчислення масиву PXi:=0 to nRow - 2 do [i]:=X [i] * P [i] * 1000/nRow; [nRow - 1]:=X [nRow - 1] * P [nRow - 1] * 10/nRow;
/ / розподіл за гистограмме
/ / сортування PX [i]
for i:=0 to nRow - 2 do:=i; j:=i +1 to nRow - 1 doPX [j] < PX [iminPX] then:=j;
/ / міняємо місцями:=PX [i]; [i]:=PX [imaxPX]; [imaxPX]:=temp;
end;
/ / знаходження мінімуму і максимуму-> верхньої та нижньої межі
minPX:=PX [0];:=Round (minPX * step * step);:=(PXlower - 1) / step / step;
/ / побудова гістограми:=minPX + 1.0/step/step;:=0;:=0; i:=0 to nRow - 1 do
begin
/ / визначаємо діапазон куди входить PX [i]
if PX [i] < curGistogramValue then (gistogram [curGistogramIndex])
else
/ / збільшуємо curGistogramValue до тих пір поки не дійдемо до цієї точки
while (PX [i]> curGistogramValue) do:=curGistogramValue + 1.0/step/step; (curGistogr...