Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
1

Расстановка ферзей

24.12.2011, 18:23. Показов 1234. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Переделать подпрограмму расстановки ферзей в итерационную так, чтобы стек рекурсии моделировался с помощью массива.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
const
    n=8;
 
type
    Index=1..N;
    Rasstanovka=array [Index] of 0..N;
 
var
    X:Rasstanovka;
   Count:word;
 
function P(var X:Rasstanovka;k,y:Index):boolean;
var
    i:Index;
begin
    i:=1;
   while (i<k)and(y<>X[i])and(abs(k-i)<>abs(y-X[i])) do inc(i);
   P:=i=k
end;
 
procedure Backtracking(k:Index);
var
    i,y:Index;
begin
    for y:=1 to N do    if P(X,k,y) then
    begin
        X[k]:=y;
        if k=N then
        begin
            for i:=1 to N do write(X[i]);
            writeln;
            inc(Count)
        end;
        Backtracking(k+1);
    end;
end;
 
 begin
   Count:=0;
   writeln('Расстановки ',N,' ферзей:');
   Backtracking(1);
   writeln('Всего ',Count,' расстановок')
 end.
Как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2011, 18:23
Ответы с готовыми решениями:

Расстановка ферзей
Добрый День!!! Помогите Пожалуйста написать программу: Найдите такую расстановку пяти ферзей на...

Положение восьми ферзей на шахматной доске, при котором ни один ферзь не угрожает другому
Напишите программу, использующую рекурсию, определяющую положение восьми ферзей на шахматной доске,...

Расстановка восьми ферзей
uses CRT; {очистка экрана} Const N = 8; {задаем константы} M = 8; Type Queen = record...

8 ферзей
помогите разобраться с чужим кодом: uses CRT; {очистка экрана} Const N = 8; {задаем константы}...

0
24.12.2011, 18:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.12.2011, 18:23
Помогаю со студенческими работами здесь

Задача про ферзей (классика)
Дано натуральное число n, где n≤20 . Имеется шахматная доска n•n. Найдем все возможные способы...

Расстановка скобок
y:=-1*(pi+sqr(abs(sin(x)/.... почему под первой скобкой (Х пишет ошибку &quot;.&quot;

Расстановка в порядке возрастания
Здраствуйте, помогите решить задачу с условными операторами, не выходит никак: Ввести 3 числа....

Расстановка 8 ладей на доске
Добрый вечер. Проблема. В школе задали на паскале написать прогу, которая показывает расстановки 8...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru