Программирование

Список проектов и задачи экзамена

2000-2001 учебный год

Лектор В. В. Борисенко

Все проекты подготовлены на языке Java, с использование Java Developer Kit версии 1.1 фирмы Sun Microsystems. Проекты невозможно использовать в устаревшей версии JDK 1.0, а также в разнообразных визуальных средах, не поддерживающих JDK 1.1.

Большинство экзаменационных задач состоит во внесении добавлений в существующие проекты.

Список проектов

  1. Аплет "Московское время" (MoscowTime).
  2. Стековый калькулятор вещественных чисел (SCalc).
  3. Выпуклая оболочка точек на плоскости (R2Convex).
  4. Реализация множества с использование бинарного поиска (BinSet).
  5. Применение пирамидальной сортировки для упорядочения множества слов в тексте по их частотам (часть проекта "BinSet").
  6. Л2-Список (часть проекта "TextEdit").
  7. Текстовый редактор (TextEdit).
  8. Реализация множества с помощью хеширования (HashSet).
  9. Число слов, строчек, символов в файле: реализация с использованием JLex -- Java-аналога утилиты LEX (CalcWords).
  10. Интерпретатор формул: реализация с использованием CUP -- Java-аналога утилиты YACC (CUPCalc).

Задачи для экзамена

  1. Стековый калькулятор: добавить вычисление НОД двух чисел (с помощью алгоритма Евклида), возведение в целую степень и возведение в целую степень по модулю m (с помощью алгоритма быстрого возведения в степень).
  2. Выпуклая оболочка: добавить метод "Центр тяжести вершин: Точка".
  3. Выпуклая оболочка: добавить метод "Точка (вх: t) лежит внутри: Да/нет".
  4. Выпуклая оболочка: добавить метод "Угол, под которым выпуклая оболочка видна из точки (вх: t): Вещественное число".
  5. Реализовать исполнитель "Записная книжка" со следующими операциями: Реализация должна использовать class Hashtable или class BinSet. Сохранять информацию в файле не нужно.
  6. Тектовый редактор: реализовать команду "найти парную скобку", которая должна выполняться по нажатию Ctrl+A. При этом, если курсор стоит на скобке, он должен перемещаться на парную скобку. Скобка может быть круглой, квадратной или фигурной, открывающей или закрывающей. Если команда не может быть выполнена, курсор должен оставаться на месте.
  7. Текстовый редактор: реализовать команды
    Команда "добавить строку в буфер" должна очищать буфер, если после предыдущего добавления была хотя бы раз выполнена команда "вставить строки из буфера".
  8. Текстовый редактор: добавить команду "открыть файл". Файл открывается в том же окне. Если текст в окне менялся, то перед открытием нового файла редактор должен спросить у пользователя, нужно ли сохранить текущий текст; кроме того, если имя файла для текущего текста не было задано (текст "noname"), то редактор должен попросить выбрать директорию и имя файла для сохранения текста. Открытие файла и сохранение должны использовать стандартный файловый диалог.
  9. Текстовый редактор: добавить команду "открыть файл". Новый файл должен открываться в новом окне. Работы редактора должна завершаться при закрытии последнего окна.
  10. JLex: напечатать все вещественные константы, соответствующие стандарту языка C (или Java), содержащиеся в заданном файле.
  11. Интерпретатор формул: добавить операцию возведения в степень "^", выполняемую справа налево и имеющую приоритет, более высокий, чем умножение; добавить также квадратные и фигурные скобки.
  12. Интерпретатор формул: напечатать обратную польскую запись арифметической формулы. (Решение должно использовать CUP -- Java-аналог YACC.)
  13. Интерпретатор формул: запись полиномиальной функции включает переменную "x", целые константы, знаки операций "+", "-", "*" (нет деления) и круглые скобки. Напечатать ее запись без скобок, т.е. в виде многочлена. (Решение должно использовать CUP -- Java-аналог YACC.)
  14. Интерпретатор формул: дана алгебраическая функция, запись которой включает переменную "x", вещественные константы, знаки четырех арифметических операций и круглые скобки. Вычислить значение ее производной в заданной точке. (Решение должно использовать CUP -- Java-аналог YACC.)