арррДобавлено (25-Апр-07, 11:25)
---------------------------------------------
Для каждого i-го ферзя выполняются следующие действия :
Проходим в цикле по всем горизонталям.
Проверяем для каждой горизонтали gor, можно ли поставить i-го ферзя на данную горизонталь. Проверка идет с учетом уже поставленных ферзей. Задание 2. Запишите какие ферзи учитываются в проверке для постановки i-го ферзя?
Если i-ый ферзь может быть поставлен на горизонталь gor, делаем запись в массиве результатов: rezult[?]:=?Задание 3. Замените знаки вопросов на имена переменных.
Переход к расстановке следующего ферзя. Задание 4. Запишите, какой ферзь будет расставляться после i-го?
Const n=4;
Var
Rezult: array [1..n] of integer;
Procedure Print; {вывод массива с результатом}
Function Correct (g,v: integer): boolean; {функция проверки}
Var i:integer;
Begin
Correct:=true; {можно ставить ферзя}
For i:=1 to ……. Do
If (…….) then Correct:=false; {нельзя ставить ферзя}
End;
Procedure Q(i); {рекурсивная процедура расстановки ферзя}
Var gor: integer;
Begin
For gor:=1 to n do
if Correct(…,…) then
begin
Rezult[…]:=…;
Q(….);
end;
End;
Begin {тело программы}
Q(….);
End.