akaGM
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору var barPoints: integer; // = num points per bar numBars: integer; restBarPoints: integer; procedure makeStepwiseProfile; { in: barPoints, X, Y numBars = f(barPoints) out: Z } var i, nP, nB, dP: integer; sum: double; begin //--- if (barPoints <= 1) then barPoints := 2; numBars := pred(numPoints) div pred(barPoints); restBarPoints := pred(numPoints) mod pred(barPoints); if (restBarPoints > 0) then inc(numBars); //--- nP := 1; nB := 1; dP := pred(barPoints); while (nP <= numPoints - dP) do begin sum := 0.0; for i := nP to (nP + dP) do sum := sum + Y[i]; sum := sum / barPoints; for i := nP to (nP + dP) do Z[i] := sum; inc(nP, dP); inc(nB); end; // do the rest if (restBarPoints > 0) then begin nP := numPoints - restBarPoints; sum := 0.0; for i := nP to numPoints do sum := sum + Y[i]; sum := sum / succ(restBarPoints); //??? for i := nP to numPoints do Z[i] := sum; end; end; {} | Всего записей: 24120 | Зарегистр. 06-12-2002 | Отправлено: 15:23 21-07-2012 | Исправлено: akaGM, 15:28 21-07-2012 |
|