Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы перебора в задачах поиска Попович.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
82.82 Кб
Скачать

Задача №4

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

Словесный алгоритм:

  1. Объявляем константы в разделе констант

  2. Объявляем переменные в разделе переменных

  3. Объявляем процедуру для печати найденного пути в лабиринте

  4. Организовываем цикл

  5. Прописываем действия программы для нахождения пути из лабиринта начиная с центра

  6. Используем процедуру вывода на печать найденного пути

Листинг:

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

const

N=11; {размер лабиринта NxN клеток}

type Field=array [1..N,1..N] of Char;

var LAB:Field; X,Y: Integer;

procedure PRINTLAB (LAB: Field);

{печать найденного пути в лабиринте}

var X,Y: Integer;

begin

for X:=1 to N do

begin

for Y:=1 to N do

write (LAB [x,y]);

writeln

end;

Writeln

end; {конец печати}

procedure go (LAB:Field; x,y: Integer);

begin

if LAB [x,y]=' ' {если клетка свободна}

then

begin

LAB [x,y]:='+'; {делается шаг}

if (x=1) or (x=n) or (y=1) or (y=n) {край}

then

PRINTLAB(LAB) {печатается найденный путь}

else

begin {поиск следующего шага}

go (LAB,x+1,y);

go (LAB,x,y+1);

go (LAB,x-1,y);

go (LAB,x,y-1)

end;

LAB [x,y]:=' '{возвращение назад}

end

end; {процедуры go}

begin {основной программы}

{ввод лабиринта}

for x:=1 to N do

begin

for y:=1 to N do

read (LAB [x,y]);

readln

end;

go (LAB,N div 2+1,N div 2+1) {начинаем с середины}

end.

Тестовый контроль

Вопросы

Варианты ответов

Правильный ответ

В чём состоит общий смысл задач поиска?

Провести общую проверку всех данных сведений

Из данной информации выбрать сведения соответствующие условиям поиска

+

Создать отчёт о произведённом анализе информации

Определение условия поиска

С помощью чего производится полный перебор одномерного массива?

Условного оператора

Оператора выбора

Циклической структуры

+

Ручного подбора

За счёт чего можно ускорить выполнение программы поиска?

Исключение повторений

+

Дополнительные процедуры вывода

Созданием процедуры повторения

Увеличением циклов в программе

От чего зависит сложность полного перебора?

От количества условий в задаче

От объёма информации, в которой ведётся поиск

От количества возможных решений задач

+

От иных факторов

К чему может привести большое количество решений?

К сбою в работе программы

К неверному итогу программы

К ограниченному количеству правильных решений

К длительному времени поиска

+