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

144 группа

Юрий Литвинов

Студент TODO №1 №2 №3 №4
155 1 2 3 4 5 1 2 3 1 2 1 2
Виктория Фомина 7
Вологин Дмитрий 7
Гусев Егор 12
Донина Дарья 7
Дорожкин Сергей 12
Егорова Лада 7
Зиннатулин Тимур 7
Катричко Ульяна 7
Ким Юния 7
Костин Павел 12
Липаев Савелий 7
Мамро Никита 5
Мандельштам Дмитрий 7
Милена Рыбина 7
Мирошникова Мария 6
Паршин Максим 5
Родина Алина 7
Соболевская Надежда 7
Хованов Виктор 7
Щербина Олег 12

Задачи

Домашняя работа 4. 15.03.19
Исключения и обработка ошибок (слайды)
Исключения и обработка ошибок (конспект)
  1. Решить задачу о вычислении выражения по дереву разбора из прошлого семестра. Реализовать иерархию классов, описывающих дерево разбора, используя их, реализовать класс, вычисляющий значение выражения по дереву. Классы, представляющие операнды и операторы, должны сами уметь себя вычислять и печатать.

    Исходное условие:

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

  2. Унаследовавшись от класса список, реализовать класс UniqueList, который не содержит повторяющихся значений. Реализовать классы исключений, которые генерируются при попытке добавления в такой список уже существующего или при попытке удаления несуществующего элемента.

Домашняя работа 3. 01.03.19
Модульное тестирование (слайды)
Модульное тестирование (текст)
Пример проекта с юнит-тестами
Статья про XML Documentation
  1. Написать юнит-тесты к задаче 3 из предыдущего задания

  2. Модифицировать хеш-таблицу из задачи 2 предыдущей работы так, чтобы хеш-функцию можно было менять в зависимости от выбора пользователя, причём хеш-функцию должно быть можно передавать из использующего хеш-таблицу кода в виде объекта некоторого класса, реализующего некоторый интерфейс. Юнит-тесты и коментарии в формате XML Documentation обязательны.

Домашняя работа 2. 22.02.19
Объектно-ориентированное программирование (слайды)
Объектно-ориентированное программирование (текст)
  1. Написать связный список в виде класса. От списка хочется:
    - Добавлять/удалять элемент по произвольной позиции, задаваемой целым числом
    - Узнавать размер, проверять на пустоту
    - Получать или устанавливать значение элемента по позиции, задаваемой целым числом

  2. Написать хеш-таблицу в виде класса с использованием класса-списка из первой задачи. Должно быть можно добавлять значение в хеш-таблицу, удалять и проверять на принадлежность

  3. Реализовать стековый калькулятор (класс, реализующий выполнение операций +, -, *, / над арифметическим выражением в виде строки в постфиксной записи). Стек реализовать двумя способами (например, массивом или списком) в двух разных классах на основе одного интерфейса. Стековый калькулятор должен знать только про интерфейс стека.

Домашняя работа 1. 15.02.19
Введение, C# (слайды)
Введение, C# (текст)
  1. Посчитать факториал

  2. Посчитать числа Фибоначчи

  3. Отсортировать массив какой-либо из сортировок

  4. Дан массив размерностью N x N, N - нечетное число. Вывести элементы массива при обходе его по спирали, начиная с центра

  5. Отсортировать столбцы матрицы по первым элементам

© 2014-2019 HwProj