Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Записать алгоритм в Delphi


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

user posted image

Пока что пришел к решению в виде записи:

При условии что изначально:
              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;


Помогите пожалуйста до ума довести(( № день бьюсь над извращеной идеей препода

Автор: la399fox 1.3.2010, 19:44
Спасибо за ответ огромное smile 

Тему можно удалять куда подальше(

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)