Содержание‎ > ‎Школа‎ > ‎Pascal‎ > ‎

Путь в лабиринте

  1. Задание на 3
    1. Написать модуль Queues, реализующий очередь через списки
      1. TQueue -- очередь
      2. procedure init(var q : TQueue);
        1. инициализация перед первым использованием
      3. procedure enqueue(var q : TQueue; const x : TData);
        1. добавить элемент в очередь
      4. function dequeue(var q : TQueue) : TData;
        1. удалить из очереди элемент, добавленный раньше всех
        2. и вернуть его
      5. function isEmpty(const q : TQueue) : Boolean;
        1. true -- если очередь пуста
        2. false -- если не пуста
  2. Задание на 4
    1. Написать функцию поиска в ширину (TField -- двумерный массив чисел: 0 -- свободное место, 1 -- стенка)
      function search(var f : TField; x, y : Integer; fx, fy : Integer) : Boolean;
      1. возвращает true, если существует путь из (x, y) в (fx, fy)
      2. возвращает false, если пути нет
  3. Задание на 5
    1. Написать программу, находящую количество компонент связности на данном поле
      1. компонента связности -- максимальная область, где из каждой клетки в каждую существует путь по клеткам "одного цвета" (с одним числовым значением)
  4. ДЗ
    1. расширить функцию search так, чтобы она возвращала сам путь -- список координат клеток, через которые нужно пройти
  5. Дополнительные задачи