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

144 группа

Тимофей Брыксин

Студент TODO №1 №2 №3 №4
103 1 2 1 2 3 1 2 1 2
Африканов Александр 9
Барановский Дмитрий 9
Винник Екатерина 7
Голдов Иван 9
Дегтярев Иван 7
Киреев Илья 9
Крылова Евгения 9
Лямин Владимир 9
Степырев Даниил 8
Тетин Илья 9
Черников Артем 9
Черников Антон 9

Задачи

Домашняя работа 4. 16.03.19
Контейнеры и генерики (презентация)
Контейнеры и генерики (конспект)
  1. Переделать один из реализованных в прошлой домашней работе список в виде generic'а. На основе него реализовать класс UniqueList, который не содержит повторяющихся значений. Реализовать классы исключений, которые генерируются при попытке добавления в такой список уже существующего или при попытке удаления несуществующего элемента.

  2. Реализовать AVL дерево, реализующее интерфейс Collection.

Домашняя работа 3. 16.03.19
SOLID (презентация)
SOLID (конспект)
Исключения и обработка ошибок (презентация)
Исключения и обработка ошибок (конспект)
  1. Реализовать класс для работы с хеш-таблицей (на списках). Общение с пользователем должно происходит в интерактивном режиме: добавить значение в хеш-таблицу, удалить значение из хеш-таблицы, поиск значения в хеш-таблице, показать статистику по хеш-таблице (общее число ячеек, load factor, число конфликтов, максимальная длина списка в конфликтных ячейках и т.п.), заполнить хеш-таблицу содержимым файла, выбрать хеш-функцию для подсчета хеша (из заранее заданных в коде). Смена хэш-функции должна происходить во время работы программы, в класс используемая хеш-функция должна передаваться из клиентского кода.

  2. Разработать и реализовать иерархию классов, описывающих дерево разбора арифметического выражения. Используя их, реализовать класс, вычисляющий значение выражения по дереву. Классы, представляющие операнды и операторы, должны сами уметь себя вычислять и печатать. Дерево разбора хранится в файле в виде (<операция> <операнд1> <операнд2>), где <операнд1> и <операнд2> сами могут быть деревьями, либо числами. Например, выражение (1 + 1) * 2 представляется в виде (* (+ 1 1) 2). Должны поддерживаться операции {+, -, , /} и целые числа в качестве аргументов. Требуется построить дерево в явном виде, распечатать его (не обязательно так же, как во входном файле) и посчитать значение выражения обходом дерева. Можно считать, что входной файл корректен. Пример — по входному файлу ( (+ 1 1) 2) может печататься ( * ( + 1 1 ) 2 ) и выводиться 4.

Домашняя работа 2. 25.02.19
Наследование и полиморфизм, презентация
Наследование и полиморфизм, конспект
Юнит-тестирование и системы сборки, презентация
Юнит-тестирование и системы сборки, конспект
  1. Создать интерфейс сортировщика, принимающего массив элементов и выполняющего над ним сортировку. На его основе создать несколько классов, реализующих произвольные (разные) алгоритмы сортировки.

  2. Разработать интерфейс, представляющий структуру данных "стек". На его основе реализовать стек двумя разными способами. С его помощью реализовать стековый калькулятор для подсчета арифметических выражений.

  3. Дан массив размерностью N x N, N - нечетное число. Вывести элементы массива при обходе его по спирали, начиная с центра. Для решения задачи разработать интерфейс Выводилка с методом вывести(), реализовать на его основе два класса, осуществляющих либо вывод на консоль либо в файл. Написать программу, которая по желанию пользователя выбирает реализацию Выводилки и выводит массив.

Домашняя работа 1. 18.02.19
Основы Java (презентация)
  1. Создать класс, реализующий функциональность стека.

  2. Создать класс, реализующий функциональность односвязного линейного списка.

© 2014-2019 HwProj