Курсовая работа: Перебор с возвратом

end;

function D_hod(i,j:integer);

{проверка допустимости хода в позицию (i,j)}

begin

D_hod:=Vr[j]andUp[i+j]andDown[i-j];

end;

Основная процедура поиска одного варианта расстановки ферзей имеет вид:

procedure Solve(i:integer;var q:boolean);

var j:integer;

begin

j:=0;

repeat

inc(j);q:=false;{циклповертикали}

if D_hod(i,j) then begin Hod(i,j);

if i<8 then begin Solve(i+1,q);

if not q then O_hod(i,j);

end else q:=true;{решениенайдено}

end;

until q or (j=8);

end;

Возможные модификации.

Поиск всех решений. Длядоски 8*8 ответ 92.

Procedure Solve(i:integer);

var j:integer;

begin

if i<=N then begin

for j:=1 to N do if D_hod(i,j) then begin

Hod(i,j);

Solve(i+1);

К-во Просмотров: 444
Бесплатно скачать Курсовая работа: Перебор с возвратом