i:=1 to 8 do begin
i:=1 to 8 do begin {Цикл по значению длины комнаты}
max:=St2(i)-1;
fillchar(B,sizeof(B),0);
B[0,0]:=1;
for j:=1 to 20 do begin {Цикл по значению ширины комнаты}
for k:=0 to max do {Сечение с номером k}
for l:=0 to max do{Сечение с номером l}
if Can(k,l,i) then B[k,j]:=B[k,j]+B[l,j-1];{Совместимость сечений «зарыта» в функции Can(k,l,i)}
A[i,j]:=B[0,j];
end;
end;
end;
Остался открытым вопрос о совместимости сечений. В этом случае необходимо различать понятия совместимость сечений в целом и совместимость в отдельном разряде. При анализе последнего входными данными являются значения разрядов сечений и информация о предыстории процесса (до текущего разряда) - целое или нецелое количество плиток уложено (значение переменной b). Выходными данными - признак - целое, нецелое количество плиток, требуемых для перевода сечения l в сечение k, или решение о том, что анализ продолжать не следует - сечения несовместимы. В данном случае этапу написания логики предшествует
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа