Примеры новые

This commit is contained in:
Mikhalkovich Stanislav 2025-06-15 16:21:09 +03:00
parent a8f25d2963
commit d6f30e8e70
2 changed files with 52 additions and 0 deletions

View file

@ -0,0 +1,30 @@
function IsSafe(board: array of integer; row, col: integer): boolean;
begin
Result := True; // Предполагаем, что позиция безопасна
for var i := 0 to row - 1 do
if (board[i] = col) or // Проверка вертикали
(board[i] - i = col - row) or // Проверка диагонали /
(board[i] + i = col + row) then // Проверка диагонали \
begin
Result := False; // Найден конфликт
exit;
end;
end;
procedure SolveNQueens(board: array of integer; row: integer);
begin
if row = 8 then // Все ферзи расставлены успешно
board.Println
else
for var col := 0 to 7 do
if IsSafe(board, row, col) then
begin
board[row] := col; // Поставить ферзя на ряд row
SolveNQueens(board, row + 1); // Рекурсивный вызов для следующго ряда
end;
end;
begin
var board := [0] * 8;
SolveNQueens(board, 0); // Начинаем с первой строки (0)
end.

View file

@ -0,0 +1,22 @@
uses Turtle;
procedure DrawTree(length: real; depth: integer);
begin
if depth > 0 then
begin
forw(length);
turn(-35);
DrawTree(length*0.65, depth-1);
turn(70);
DrawTree(length*0.65, depth-1);
turn(-35);
forw(-length);
end;
end;
begin
toPoint(0, -8);
down;
DrawTree(6, 11);
end.