|
#2
|
||||
|
||||
Давайте систему циклов
Код:
for i:=0 to k do for v := 0 to 1 do for g := 0 to 1 do for l := 0 to 1 do for t := 0 to 1 do for r := 0 to 1 do while C[sum] <> k do begin sum:=a[1]*v+a[2]*g+a[3]*l+a[4]*t+a[5]*r; C[sum] := C[sum] + 1; if sum=k then writeln (...) end; Что происходит? 1) При первом выполнии цикла While (i=v=g=l=r=t=0) sum=0. Благодаря оператору C[sum] := C[sum] + 1; значение в C[sum] становится равным k, другими словами, С[0]=k, sum=0. 2) Происходит выход из While и запускается новая итерация циклов for, при которой r=1, а все остальные счетчики по прежнему 0. При этом в sum по прежнему 0, а c[sum]=k. В следствии этого, цикл While не выполняется, потому что условие его выполнения ложно. То же происходит для всех последующих итераций, что и создает у вас ощущение, что i, v,g,l,r,t всегда 0. Понятнее стало? Я бы посоветовал что-то поправить, но, если честно, вообще не понял зачем вам while Невозможно заточить карандаш тупым топором. Столь же тщетно пытаться сделать это десятком тупых топоров |