Задачи для практики на весенний семестр 2006 года
-
Программа для просмотра FB2-книг
Написать программу для чтения электронных книг формата FB2.
-
Полиномы от нескольких переменных
Написать библиотеку для работы с полиномами от нескольких переменных. Библиотека должна включать возможности чтения/записи полиномов и стандартных арифметических операций с ними. Библиотека должна позволять работать с различными упорядочениями полиномов (их можно менять в процессе работы). Реализовать с помощью этой библиотеки алгоритм для поиска базиса Гребнера набора полиномов.
Подробнее про упорядочения и базис Гребнера (а также о том, зачем это может быть нужно) можно прочесть в книгах
- Прасолов. Полиномы.
- Кокс, Литтл, О'Ши. Идеалы, многообразия и алгоритмы.
-
Библиотека для работы с Postscript-файлами
Написать библиотеку для чтения/записи Postscript-файлов. Библиотека должна позволять прочитать PS-файл, хранить его в некоем внутреннем представлении («аналог DOM» для Postscript), просматривать и редактировать это представление, записывать результат в файл.
-
Обобщенная игра
Есть большое количество игр на различных досках с различными наборами фишек. (Примеры -- крестики-нолики, реверси, разные вариации ataxx.) Написать программу, позволяющую легко создавать новую такую игру, то есть определять форму и размеры доски, набор фишек, правила игры. Предусмотреть интерфейс для создания «автоматического игрока» — алгоритм для игры в эту игру, который мог бы использоваться компьютером.
-
File Manager
Написать File Manager (для начала — File Viewer), который
- имел бы сменный интерфейс, т.е. в зависимости от желания пользователя мог бы выглядеть как Norton Commander или как Explorer;
- определял бы тип файла не по расширению, а по содержимому.
-
Детская задача
Написать программу для ввода, сохранения и решения "числовых ребусов". Ребусы бывают существенно различными, нужно придумать способ, позволяющий задавать разные виды.
SIX * TWO = TWELVE
СОРОК * 5 = ДВЕСТИ
ОДИН +ОДИН ----- МНОГО
АБ + 8 = 3В - - - ГД + В = ГВ = = = ГБ + 3 = АД
*****|** *** |--- --- |*8* *** ** --- *** *** --- 0
1995 x *** ----- ***** *ГОД ------ СВИНЬИ
-
Узлы и зацепления
Узел — это замкнутая линия в пространстве без самопересечений. Зацепление — несколько таких линий. Написать программу для удобного ввода и красивого изображения узлов и зацеплений.
-
Индексирование XML – 1
Написать реализацию индексной структуры IndexFabric, основанной на PATRICIA Trie. Эту структуру можно применять в СУБД, хранящих данные в XML формате для ускорения выполнения некоторых операций поиска.
-
Индексирование XML – 2
Написать реализацию индексной структуры XISS, основанной на традиционных B-деревьях. Эту структуру можно применять в СУБД, хранящих данные в XML формате для ускорения выполнения некоторых операций поиска.
-
Индексирование XML – 3
И еще раз та же задача с еще одной индексной структурой.
Сайт, на котором рассказано, зачем это нужно. (Да-да, тот же самый.)
-
Блок-схемы
Написать программу для работы с блок-схемами. Программа должна позволять рисовать новую блок-схему, сохранять блок-схему в файле. Кроме этого, хочется иметь возможность выполнять заданный блок-схемой алгоритм при разных наборах начальных данных.