Perltask / 2009

И оставлял страх/надежду всяк сюда входящий.


    Общие требования.
    1. Документация, декомпозиция, help.
    2. Тестирование.
    3. Пакетные режимы.
    4. Не использовать готовые модули, решающие существенную часть задачи.
    ----------------------------------------------------------------------

1. Биллинг [14]
	Вход: лог файл web-сервера и файл, описывающий стоимость того или иного
	ресурса (формат данного файла разработать самостоятельно).
	Выход: счета для каждого из пользователей с возможностью детализации.

   Новожилова Софья, КН-201      (14.04.09)  11 (21.01.10)
   Галишников Роман, КН-201      (22.04.09)  14 (22.05.09)
   Замятин Денис, КБ-201         (24.05.09)  14 (11.12.09)
   Калинин Игорь, КБ-201         (26.05.09)  14 (16.01.10)
   Дедова Елена, КБ-201          (04.06.09)  14 (20.07.09)
   Заяц Сергей, КБ-201           (08.09.09)  14 (01.10.09)
   Струкчинский Всеволод, КН-202 (11.10.09)  12 (11.12.09)
   Власов Андрей, КН-202         (13.01.10)   6 (24.01.10)
   Рашкован Елена, КБ-201        (14.01.10)  14 (18.01.10)


2. Обработка текстов программ [15, ...]
	Вход: программа на некотором императивном языке программирования и файл,
	описывающий данный язык (способ описания разработать самостоятельно).
	Написать:
	- форматтер кода (с поддержкой нескольких стилей расстановки скобок)
	- транслятор в гипертекст [20]

   форматтер
     Клевакин Павел, КН-203      (29.06.09)  10 (07.07.09)
     Щербакова Екатерина, КН-202 (10.12.09)   8 (23.01.10)
     Буславьев Алексей, КН-202   (11.12.09)   8 (26.01.10)
     Слепухина Евдокия, КН-202   (03.01.10)   8 (25.01.10)
     Замятин Денис, КБ-201       (11.01.10)   2 (18.01.10)
     Иванов Николай, КН-203      (25.01.10)   5 (28.01.10)

   транслятор
     Жагорина Ксения, КН-202     (01.12.09)  19 (13.01.10)
     Ефремов Алексей, КН-202     (29.03.10)  20 (30.03.10)


3. Пары слов [11]
	Вход: текст на русском языке и файл, содержащий список "не слов".
	Программа должна построить список наиболее частых пар слов,
	употребляемых в одной фразе (предложении), при этом слова могут быть
	расположены в любом порядке в предложении. Из рассматриваемых слов
	необходимо исключить все слова,	указанные в списке "не слов".

   Дедова Елена, КБ-201       (21.04.09)  11 (23.05.09)
   Власов Александр, КБ-201   (25.04.09)  11 (25.05.09)
   Слепухина Евдокия, КН-202  (28.04.09)  10 (24.05.09)
   Козлова Анна, КН-201       (29.04.09)  10 (25.05.09)
   Антонова Анастасия, КН-201 (26.05.09)  11 (29.11.09)
   Горнушкин Андрей, КН-202   (12.09.09)  11 (24.01.10)
   Калинин Игорь, КБ-201      (12.09.09)  11 (22.12.09)
   Плинер Юрий, КН-202        (29.09.09)   9 (03.10.09)
   Локис Василий, КН-202      (10.01.10)   5 (26.01.10)


4. Взлом шифра [18]
	Вход: текст, зашифрованный произвольным подстановочным шифром.
	Выход: оригинальное сообщение (возможна неполная дешифрация... с потерей баллов:).

   Хрущев Михаил, КН-202         (12.04.09)  18 (10.11.09)
   Антонова Анастасия, КН-201    (19.05.09)  10 (25.05.09)
   Коржавин Максим, КН-201       (21.05.09)  10 (25.05.09)
   Ершова Дарья, КН-202          (27.05.09)  14 (28.05.09)
   Садыков Ленар, КН-202         (09.07.09)  10 (26.01.10)
   Локис Василий, КН-202         (30.11.09)  15 (26.01.10)
   Огородников Александр, КН-202 (30.11.09)   1 (28.12.09)
   Букин Станислав, КН-202       (01.12.09)   4 (28.12.09)
   Корзунин Сергей, КН-201       (08.01.10)   6 (21.01.10)


5. Перевод документации в другой формат [14, ...]
	Вход: документ в одном из следующих форматов:
	- man
	- pod
	Выход: документ в одном из следующих форматов:
	- HTML [12]
	- RTF
	- PDF [20]
	- XML

   man2html
     Иванов Андрей, КБ-201       (17.01.10)  10 (18.01.10)

   man2rtf
     Галишников Роман, КН-201    (20.11.09)  14 (06.12.09)

   man2pdf
   man2xml
   pod2html
     Козлова Анна, КН-201        (23.11.09)  12 (21.01.10)
     Гейн Андрей, КН-201         (25.11.09)  10 (30.11.09)
     Слепухина Евдокия, КН-202   (13.01.10)   9 (25.01.10)
     Браун Александр, КБ-201     (25.01.10)  10 (25.01.10)
     Клевакин Павел, КН-203      (17.04.10)

   pod2rtf
   pod2pdf
   pod2xml
     Парфененков Борис, КН-201   (20.01.10)   4 (21.01.10)
     Бусыгин Александр, КН-203   (31.01.10)  14 (16.02.10)
     Иванов Николай, КН-203      (13.03.10)
     Пригорнев Александр, КН-202 (26.03.10)


6. Генератор отчетов [14]
	Вход: формат отчета (язык описания разработать самостоятельно),
	данные для подстановки.
	Выход: набор заполненных отчетов.

   Слепухина Евдокия, КН-202     (25.05.09)  14 (12.01.10)
   Доронина Надежда, КБ-201      (10.10.09)  14 (27.10.09)
   Струкчинский Всеволод, КН-202 (12.11.09)  12 (13.12.09)
   Щербакова Екатерина, КН-202   (29.11.09)  13 (21.12.09)
   Сагадиева Лилия, КН-203       (12.12.09)  10 (16.02.10)
   Помазуев Максим, КН-201       (22.12.09)   8 (22.01.10)
   Иванов Николай, КН-203        (15.01.10)   7 (24.01.10)
   Вяткин Евгений, КН-203        (17.02.10)  10 (11.03.10)
   Ефремов Алексей, КН-202       (30.03.10)  14 (30.03.10)


7. Небо [20]
	Вход: база данных с описанием небесной сферы, координаты наблюдателя, угол обзора.
	Программа должна позволять вращать наблюдателя, менять угол наклона его головы и
	выводить на экран то, что он видит.
	Примечание: данная программа предполагает визуализацию при помощи модуля Tk.
	Примечание 2: база данных - ftp://shannon.usu.edu.ru/perl/data/stars.zip

   Букин Станислав, КН-202 (12.05.09)  20 (15.05.09)
   Климов Павел, КБ-201    (26.05.09)  20 (29.05.09)
   Хрущев Михаил, КН-202   (22.11.09)  20 (13.12.09)
   Нелаев Михаил, КН-202   (28.11.09)  16 (07.12.09)
   Иванов Андрей, КБ-201   (10.12.09)  20 (17.01.10)
   Браун Александр, КБ-201 (11.01.10)  16 (18.01.10)
   Солонинин Антон, КН-203 (13.01.10)  20 (29.01.10)
   Черепанов Иван, КН-202  (15.01.10)   9 (26.01.10)


8. Лесенка [9]
	Вход: исходное слово (например МУХА), целевое слово (например СЛОН) и словарь.
	Выход: цепочка однобуквенных преобразований, позволяющая получить из
	исходного слова целевое, при этом каждый промежуточный шаг должен также
	являться словом (т.е. присутствовать в словаре).
	Примечание: словарь - ftp://shannon.usu.edu.ru/perl/data/runouns.zip

   Парфененков Борис, КН-201     (13.04.09)  9 (25.05.09)
   Гейн Андрей, КН-201           (13.04.09)  6 (13.05.09)
   Корзунин Сергей, КН-201       (19.04.09)  9 (21.01.10)
   Савинков Илья, КН-201         (04.05.09)  9 (25.05.09)
   Калинин Игорь, КБ-201         (14.05.09)  9 (25.05.09)
   Антонова Анастасия, КН-201    (07.08.09)  9 (05.10.09)
   Сергеев Николай, КБ-201       (16.12.09)  9 (22.12.09)
   Огородников Александр, КН-202 (29.12.09)  9 (24.01.10)
   Горнушкин Андрей, КН-202      (13.01.10)  9 (24.01.10)


9. Многочлены [12]
	Вход: 2 многочлена от нескольких переменных, заданных в математической
	форме (т.е. знаки некоторых операций могут отсутствовать).
	Выход: Указание ошибки в записи, если таковая присутствовала, иначе
	сообщение о совпадении или несовпадении введенных многочленов.

   Шадрин Глеб, КН-201          (16.04.09)  12 (13.05.09)
   Щербакова Екатерина, КН-202  (01.05.09)   6 (24.05.09)
   Пригорнев Александр, КН-202  (07.05.09)  10 (28.05.09)
   Курпилянский Евгений, КН-201 (22.05.09)  12 (22.05.09)
   Сагадиева Лилия, КН-203      (23.05.09)  10 (28.05.09)
   Антонова Анастасия, КН-201   (26.05.09)  12 (29.11.09)
   Кропотов Максим, КН-202      (12.09.09)  11 (29.09.09)
   Галишников Роман, КН-201     (13.09.09)  12 (25.10.09)
   Козлова Анна, КН-201         (07.12.09)  10 (21.01.10)


10. Палиндромы [8]
	Вход: текст на русском языке.
	Выход: все палиндромы, построенные из слов данного текста.

    Парфененков Борис, КН-201     (14.05.09)  8 (14.12.09)
    Щербакова Екатерина, КН-202   (21.05.09)  6 (25.05.09)
    Дедова Елена, КБ-201          (30.05.09)  8 (04.06.09)
    Плинер Юрий, КН-202           (20.09.09)  1 (23.09.09)
    Кропотов Максим, КН-202       (15.10.09)  6 (10.11.09)
    Доронина Надежда, КБ-201      (20.10.09)  7 (24.11.09)
    Садыков Ленар, КН-202         (21.10.09)  4 (26.01.10)
    Огородников Александр, КН-202 (07.12.09)  4 (13.12.09)
    Калинин Игорь, КБ-201         (08.12.09)  8 (04.01.10)


11. Кроссворд [15]
	Вход: список слов и геометрия (описание внешнего вида кроссворда).
	Выход: заполненный кроссворд (сообщение об ошибке, если заполнить невозможно).
	Примечание: словарь - ftp://shannon.usu.edu.ru/perl/data/ruwords.zip

    Жагорина Ксения, КН-202  (16.04.09)  11 (21.05.09)
    Дедова Елена, КБ-201     (21.07.09)  15 (31.08.09)
    Власов Андрей, КН-202    (01.10.09)   8 (07.10.09)
    Козлова Анна, КН-201     (19.11.09)   8 (21.01.10)
    Власов Александр, КБ-201 (20.11.09)  15 (21.12.09)
    Краснов Сергей, КБ-201   (24.11.09)  15 (17.01.10)
    Нечеухин Олег, КБ-201    (14.12.09)   2 (16.01.10)
    Горнушкин Андрей, КН-202 (17.12.09)  15 (24.01.10)


12. Отладчик [25]
	Вход: программа на языке Perl.
	Отладчик должен предоставить интерфейс пользователя, который позволяет
	проделывать стандартные операции: просмотр текста программы, установка/снятие
	точек останова (breakpoints), просмотр значения переменных (watch), пошаговое
	выполение программы (trace), просмотр стека вызовов (call stack).

    Курносенко Алексей, КН-201 (21.01.10)  14 (21.01.10)
    Буславьев Алексей, КН-202  (25.01.10)  10 (26.01.10)


13. Игра [17, ...]
	Написать программу, позволяющую играть с компьютером в одну из следующих игр:
	- поддавки
	- реверси
	- 100-клеточные шашки
	- шахматы [21]
	Примечание: от компьютерного оппонента не требуется игра на уровне
	гроссмейстера, минимум - умение компьютером совершать непротиворечащие
	правилам ходы, а также правильно реагировать на игровую ситуацию (шах, мат и т.п.)

    поддавки
      Помазуев Максим, КН-201       (12.05.09)  17 (28.09.09)
      Иванов Алексей, КН-203        (08.12.09)  10 (12.01.10)
      Горнушкин Андрей, КН-202      (23.01.10)   5 (26.01.10)
      Власов Андрей, КН-202         (24.01.10)   4 (23.02.10)
      Иванов Николай, КН-203        (29.01.10)   9 (15.02.10)
      Солонинин Антон, КН-203       (29.01.10)  12 (29.01.10)
      Князев Иван, КН-203           (25.02.10)  17 (12.03.10)
      Клевакин Павел, КН-203        (31.03.10)

    реверси
      Хурамшин Артур, КН-201        (23.04.09)  10 (25.05.09)
      Буславьев Алексей, КН-202     (14.05.09)  12 (21.06.09)
      Курносенко Алексей, КН-201    (26.06.09)  17 (21.01.10)
      Шадрин Глеб, КН-201           (01.12.09)  17 (21.01.10)
      Кропотов Максим, КН-202       (03.12.09)  15 (03.02.10)
      Савинков Илья, КН-201         (25.12.09)  17 (21.01.10)
      Огородников Александр, КН-202 (31.12.09)  12 (24.01.10)
      Курпилянский Евгений, КН-201  (17.01.10)  13 (21.01.10)

    100-клеточные шашки
      Струкчинский Всеволод, КН-202 (07.05.09)  13 (25.05.09)
      Нелаев Михаил, КН-202         (10.05.09)  10 (25.05.09)
      Парфененков Борис, КН-201     (24.11.09)  13 (21.01.10)
      Новожилова Софья, КН-201      (04.12.09)  17 (21.01.10)
      Трубецких Роберт, КН-202      (05.12.09)  10 (13.01.10)
      Черепанов Иван, КН-202        (10.01.10)  14 (26.01.10)
      Нечеухин Олег, КБ-201         (05.03.10)
      Пинежин Игорь, КБ-201         (03.04.10)

    шахматы
      Пригорнев Александр, КН-202   (06.09.09)  17 (03.02.10)
      Климов Павел, КБ-201          (04.10.09)  21 (17.01.10)
      Щелконогов Егор, КБ-201       (09.10.09)  21 (20.10.09)
      Сергеев Николай, КБ-201       (26.10.09)  21 (18.01.10)
      Гейн Андрей, КН-201           (01.11.09)  21 (11.12.09)
      Ершова Дарья, КН-202          (02.11.09)  20 (21.12.09)
      Аношин Кирилл, КБ-201         (03.11.09)  21 (16.01.10)
      Щербина Александр, КН-201     (19.04.10)


14. Лабиринт [10]
	Вход: файл с описанием лабиринта, начальная позиция, позиция выхода из
	лабиринта и число бомб.
	Выход: кратчайший путь от входа до выхода.
	Примечание: бомба способна уничтожить одну стенку (т.е. сделать
	смежными две соседние клетки, разделенные стеной).

    Сергеев Николай, КБ-201 (07.04.09)  10 (27.05.09)
    Гейн Андрей, КН-201     (13.04.09)  10 (13.05.09)
    Ставров Алексей, КБ-201 (15.04.09)  10 (27.05.09)
    Краснов Сергей, КБ-201  (03.05.09)  10 (29.05.09)
    Иванов Андрей, КБ-201   (05.05.09)   3 (08.05.09)
    Корзунин Сергей, КН-201 (08.05.09)  10 (08.05.09)
    Хрущев Михаил, КН-202   (18.05.09)  10 (07.09.09)
    Щелконогов Егор, КБ-201 (06.10.09)  10 (20.10.09)
    Замятин Денис, КБ-201   (07.11.09)   4 (01.12.09)


15. Дефрагментация [19]
	Вход: таблица FAT некоторого жесткого диска.
	Выход: Последовательность переноса кластеров, решающая задачу
	дефрагментирования за минимальное число переносов.
	Примечание: исходная таблица FAT может содержать ошибки (потерянные
	кластеры, пересекающиеся цепочки).

    Титов Алексей, КН-201 (21.01.10)  19 (21.01.10)


16. Сортировки [15]
	Реализовать несколько алгоритмов сортировки массивов (квадратичные, Шелла,
	Хоара, пирамидальная, слиянием) и сравнить их (числа сравнений и перестановок,
	устойчивость, время работы) между собой и со встроенной функцией sort.

    Плинер Юрий, КН-202           (27.03.09)  15 (17.05.09)
    Букин Станислав, КН-202       (28.03.09)  15 (15.04.09)
    Садыков Ленар, КН-202         (02.04.09)  11 (24.05.09)
    Щелконогов Егор, КБ-201       (01.05.09)  15 (27.05.09)
    Иванов Андрей, КБ-201         (12.05.09)  15 (27.05.09)
    Огородников Александр, КН-202 (25.05.09)  10 (25.05.09)
    Локис Василий, КН-202         (25.05.09)  10 (25.05.09)
    Черепанов Иван, КН-202        (08.09.09)  10 (07.12.09)
    Баранникова Дарья, КБ-201     (14.01.10)  15 (16.01.10)


17. Жизнь [15]
	Написать программу, позволяющую задать начальную позицию, прокрутить время вперед,
	проверить на отсутствие предыдущей позиции (сад Семирамиды).
	Примечание: данная программа предполагает визуализацию при помощи модуля Tk.

    Плинер Юрий, КН-202          (30.03.09)  12 (16.04.09)
    Полоцкий Илья, КН-201        (04.05.09)  15 (21.01.10)
    Солонинин Антон, КН-203      (13.05.09)  15 (29.01.10)
    Корзунин Сергей, КН-201      (13.05.09)  15 (13.05.09)
    Савинков Илья, КН-201        (24.05.09)  15 (21.01.10)
    Нелаев Михаил, КН-202        (05.11.09)  12 (24.01.10)
    Курпилянский Евгений, КН-201 (20.11.09)  15 (21.01.10)
    Садыков Ленар, КН-202        (21.11.09)   7 (07.12.09)
    Сагадиева Лилия, КН-203      (12.12.09)  15 (02.04.10)


18. Раскраска карты [16]
	Вход: описание стран на карте множеством отрезков (страна - многоугольник).
	Выход: минимальное число цветов, необходимое для раскраски данной карты
	(т.е. 2 соседних страны не могут быть одного цвета), и соответствующая раскраска.
	Примечание: данная программа предполагает визуализацию при помощи модуля Tk.

    Вяткин Евгений, КН-203        (21.05.09)  10 (28.05.09)
    Букин Станислав, КН-202       (26.09.09)  12 (08.10.09)
    Ставров Алексей, КБ-201       (14.11.09)  16 (16.01.10)
    Щелконогов Егор, КБ-201       (20.11.09)  16 (01.12.09)
    Плинер Юрий, КН-202           (22.11.09)  15 (24.01.10)
    Помазуев Максим, КН-201       (30.11.09)  15 (21.12.09)
    Огородников Александр, КН-202 (14.12.09)  10 (13.01.10)
    Иванов Алексей, КН-203        (12.01.10)  14 (29.01.10)


19. Сетевые сервисы [12, ...]
	Написать одну из следующих программ:
	- клиент для получения почты (по протоколу POP3)
	- клиент для отправки почты (по протоколу SMTP)
	- FTP-клиент
	- NTP-клиент [7]
	- DNS-клиент [14]
	- BitTorrent-клиент [25]

    POP3
      Бусыгин Александр, КН-203     (08.05.09)   1 (23.05.09)
      Плинер Юрий, КН-202           (24.05.09)  10 (11.09.09)
      Титов Алексей, КН-201         (24.05.09)  10 (25.05.09)
      Баранникова Дарья, КБ-201     (28.05.09)  12 (29.05.09)
      Шадрин Глеб, КН-201           (13.09.09)  12 (29.11.09)
      Дедова Елена, КБ-201          (21.09.09)  12 (01.12.09)
      Щербакова Екатерина, КН-202   (27.09.09)   9 (30.11.09)
      Садыков Ленар, КН-202         (08.12.09)   8 (23.01.10)

    SMTP
      Струкчинский Всеволод, КН-202 (27.09.09)  11 (29.09.09)
      Жагорина Ксения, КН-202       (09.10.09)  11 (21.12.09)
      Доронина Надежда, КБ-201      (09.11.09)  12 (16.01.10)
      Хрущев Михаил, КН-202         (09.11.09)  12 (02.12.09)
      Кропотов Максим, КН-202       (03.12.09)  12 (25.01.10)
      Полоцкий Илья, КН-201         (21.12.09)  10 (21.01.10)
      Нелаев Михаил, КН-202         (07.01.10)   7 (24.01.10)
      Вяткин Евгений, КН-203        (15.02.10)  10 (19.02.10)

    FTP
      Огородников Александр, КН-202 (30.11.09)  11 (24.01.10)
      Ставров Алексей, КБ-201       (01.12.09)  12 (11.12.09)
      Иванов Алексей, КН-203        (06.12.09)  10 (12.01.10)
      Локис Василий, КН-202         (07.12.09)  10 (25.12.09)
      Иванов Андрей, КБ-201         (12.01.10)  12 (17.01.10)
      Иванов Николай, КН-203        (13.03.10)  12 (16.04.10)
      Клевакин Павел, КН-203        (02.04.10)  12 (16.04.10)
      Пинежин Игорь, КБ-201         (04.04.10)

    NTP
      Замятин Денис, КБ-201         (24.05.09)   6 (29.05.09)
      Аношин Кирилл, КБ-201         (17.01.10)   7 (18.01.10)
      Солонинин Антон, КН-203       (28.01.10)   5 (28.01.10)
      Нечеухин Олег, КБ-201         (17.04.10)

    DNS
      Буславьев Алексей, КН-202     (23.01.10)  10 (26.01.10)

    BitTorrent
      Рашкован Елена, КБ-201        (18.01.10)  10 (16.04.10)


20. Чат [15]
	Написать программу-чат для произвольного числа пользователей (децентрализованную).

    Завгороднев Евгений, КН-203 (19.05.09)  10 (28.05.09)
    Курносенко Алексей, КН-201  (06.01.10)   9 (21.01.10)
    Щербина Александр, КН-201   (19.04.10)


21. Разбор графических файлов [14]
	Вход: файл(ы) в одном из следующих форматов:
	- BMP (Windows) [15]
	- GIF (в т.ч. с анимацией)
	- JPEG [17]
	- PNG
	Выход: подробное описание внутренней структуры файла и изображение.
	Примечание: данная программа предполагает визуализацию при помощи модуля Tk.

    BMP
      Новожилова Софья, КН-201      (28.10.09)  12 (21.12.09)
      Струкчинский Всеволод, КН-202 (20.11.09)  15 (23.11.09)
      Краснов Сергей, КБ-201        (24.11.09)  15 (17.01.10)
      Баранникова Дарья, КБ-201     (27.11.09)  13 (11.12.09)
      Полоцкий Илья, КН-201         (10.12.09)  15 (21.01.10)
      Аношин Кирилл, КБ-201         (21.12.09)  13 (18.01.10)
      Доронина Надежда, КБ-201      (15.01.10)   7 (25.01.10)
      Ставров Алексей, КБ-201       (15.01.10)   5 (18.01.10)

    GIF
      Черепанов Иван, КН-202        (06.01.10)   7 (10.01.10)
      Замятин Денис, КБ-201         (11.01.10)  14 (17.01.10)
      Парфененков Борис, КН-201     (17.01.10)   6 (21.01.10)
      Клевакин Павел, КН-203        (31.03.10)  14 (02.04.10)
      Князев Иван, КН-203           (02.04.10)

    JPEG
    PNG
      Рашкован Елена, КБ-201        (14.01.10)   5 (18.01.10)
      Браун Александр, КБ-201       (16.01.10)  14 (17.01.10)
      Яшенков Станислав, КБ-201     (17.01.10)  14 (18.01.10)
      Власов Андрей, КН-202         (24.01.10)   6 (23.02.10)
      Пригорнев Александр, КН-202   (26.03.10)   7 (28.03.10)


    --------------------------------------------------------------------------
    Задач: 40
    Средний балл: 15.125
    Максимальное число принимаемых решений одной задачи: 8
    Максимальное число заявок на задачи из одного номера от одного человека: 1
    Время жизни заявки: 1 месяц
    Допуск к зачёту: 10 баллов
    Допуск к экзамену: 40 баллов
    Без второго вопроса на экзамене: 60 баллов