Различия между версиями 4 и 5
Версия 4 от 2011-12-03 16:22:17
Размер: 3024
Редактор: FrBrGeorge
Комментарий:
Версия 5 от 2011-12-03 16:22:49
Размер: 3042
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 16: Строка 16:
   1.#0 Генератор лабиринта (для решения следующих задач можно воспользоваться [[attachment:labpur.py|непонятным, но работающим генератором]] и вывод лабиринта с помощью '''`#`''' и пробелов    1.#0 Генератор лабиринта (для решения следующих задач можно временно воспользоваться [[attachment:labpur.py|непонятным, но работающим генератором]]) и вывод лабиринта с помощью '''`#`''' и пробелов

Повторение предыдущих тем и генераторы тестов

  • Повторение: функции, область видимости локальных и глобальных переменных, рекурсия
  • Функции как объекты, передача функций в качестве параметра, использование стандартных методов классов (например, int.__mul__ или подобных)

  • Программа и модуль на Python, использование __name__

  • {o} Передача данных из командной строки с помощью sys.argv[]

  • {o} Передача данных со стандартного ввода с помощью > и |

Домашнее задание

Лабиринт

  1. Лабиринт задаётся списком списков (двумерным массивом) M x N, в котором ненулевой элемент обозначает стену, а нулевой — свободное место. Переходить с одного свободного места на другое можно только на одну клетку по горизонтали или вертикали. Написать несколько функций:
    1. Генератор лабиринта (для решения следующих задач можно временно воспользоваться непонятным, но работающим генератором) и вывод лабиринта с помощью # и пробелов

      • ... «просто» лабиринта
      • ... «красивого» лабиринта:
        ***************
        * #           *
        * ##### ##### *
        *   #   #   # *
        *## # ### ### *
        *   # #       *
        * ### # ######*
        * #   #   #   *
        * ### ### # ##*
        *     # # #   *
        *###### # ### *
        * #     #     *
        * # # ####### *
        *   #         *
        ***************
      • ...проходимого или непроходимого лабиринта (управляется параметром)
    2. Выяснить, можно ли добраться из клетки [0][0] в клетку [N-1][M-1]

    3. ...попутно вычислив длину минимального пути
    4. Вывести любой (не обязательно минимальный) маршрут из [0][0] в [N-1][M-1]

    5. Вывести минимальный маршрут
    6. ...на карте лабиринта

Условные обозначения

  • {o} — тема по Linux

  • <!> ­— необязательная тема

  • {i} — теоретическое задание

  • {*} — тема для самостоятельного изучения


CategoryClass CategoryVmsh

LecturesVMSH/2011-11-30 (последним исправлял пользователь FrBrGeorge 2011-12-03 16:39:01)