Я хочу найти все возможности перемещения этих чисел 1,2,3,4,5 с условиями, которые «4,3» невозможны, а 1 и 5 не могут быть в такое же решение. У меня есть этот код, но когда я его компилирую, он ничего мне не показывает.Откат не показывает ничего
var x:array[1..50] of integer;
i,k:integer;
avems,evalid:boolean;
procedure init;
begin
x[k]:=0;
end;
procedure succesor;
begin
if x[k]<5 then avems:=true
else avems:=false;
if avems=true then x[k]:=x[k]+1;
end;
function solutie:boolean;
begin
if k=3 then solutie:=true
else solutie:=false;
end;
procedure valid;
begin
evalid:=true;
for i:=1 to k-1 do
if (x[i]=1) or (x[i]=5) and (x[k]=1) or (x[k]=5) then evalid:=false;
if (k>1) and (x[k-1]=4) and (x[k]=3) then evalid:=false;
end;
procedure tipar;
begin
for i:=1 to 3 do
write(x[i],' ');
writeln;
end;
begin
k:=1;
init;
while k>0 do
begin
repeat
succesor;
until not(avems) or (avems and evalid);
if avems then
if solutie then tipar
else begin
k:=k+1;
init;
end
else k:=k-1;
end;
end.
Просьба указать выходные данные программы при ее запуске и о том, как она отличается от ожидаемой. – Jolta
Результат равен нулю, я ничего не получаю. – PascalGuy
Итак, напишите дополнительную информацию, чтобы вы могли следить за потоком программы или отлаживать ее. Возможно, вы захотите также включить проверку диапазона. –