Давайте систему циклов
Код:
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