Добрый вечер. Подскажите пожалйста, как перевести алгоритм:

Пока что пришел к решению в виде записи:
При условии что изначально: L0i = {0} Si = {10,11,12,13} maxJ Количество итераций
| Код | ... type TL0i = record arrElem: array of Integer; arrOutPut: array Of Integer; end;
TSi = record arrElem: array of Integer; end; var L0i: array of TL0i; Si: array of TSi; maxJ: Integer;
begin
... // Устаначливаем 0 значения SetLength(Si, Length(Si) + 1) ; SetLength(L0i, Length(L0i) + 1); SetLength(L0i[i].arrElem, Length(L0i[i].arrElem) + 1); SetLength(L0i[i].arrOutPut, Length(L0i[i].arrOutPut) + 1); maxJ:= 4; Si[0].arrElem:= 0; L0i[0].arrElem[0]:= 0; L0i[0].arrOutPut[0]:= 0; ...
// Заполнили множество Si for ii:= 1 to StringGrid1.ColCount do begin SetLength(Si, Length(Si) + 1) ; Si[ii].arrElem:= IntToStr(StringGrid1.Cells[ii, 1]); end;
...
// Собственно расчет L0i for I := 1 to maxJ do begin // Подсчет колиячества итераций для заполнения L0i и L1i IterCount:= Round(IntPower(2.0, I));
// Увеличиваем вместимость шагов итерации на 1. // Вместимость итераций от 1 до maxJ SetLength(L0i, Length(L0i) + 1);
// Цикл вычеслений значений L0i for J := 1 to IterCount do begin // Увеличиваем вместимость массива вычесленых значений на 1. // Вместимость массива в зависимости от шага итерации изменяется // от 1 до 2^n SetLength(L0i[i].arrElem, Length(L0i[i].arrElem) + 1); SetLength(L0i[i].arrOutPut, Length(L0i[i].arrOutPut) + 1);
L0i[i].arrElemt[j]:= L0i[i].arrElem[j - 1] + (StrToInt(StringGrid1.Cells[i, 2]) * Si[i].arrElem; L0i[i].arrOutPut[j]:= L0i[i].arrElemt[j]; end; end;
|
Помогите пожалуйста до ума довести(( № день бьюсь над извращеной идеей препода |