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

244-2016 группа

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

Студент TODO №1 №2 №3 №4 №5 Тест 1 №6 №7 №8 Тест 2
18 1 2 1 2 1 2 1 2 1 2 1
Алаев Денис
Ашмарова Виктория
Власова Анна
Коновалов Петр 7
Люлина Елена
Ножкин Илья
Пузырев Дмитрий 5
Терехов Арсений 6
Терехов Михаил
Фадеев Виктор

Задачи

Тест 2. 19.05.17
Домашняя работа 8. 05.05.17
Stream API (1)
Stream API (2)
Работа с потоками
Темы для докладов
  1. Реализовать с помощью Java Stream API:
    - Методы в FirstPartTasks и SecondPartTasks
    - Тесты в SecondPartTasksTest
    Тесты в FirstPartTasksTest и SecondPartTasksTest должны успешно завершаться

  2. Реализовать многопоточный вариант быстрой сортировки, для решения использовать пул потоков или Fork/Join. Замерить время выполнения и сравнить с однопоточным вариантом.

Домашняя работа 7. 17.04.17
Презентация про Reflection
Презентация про Java 8
  1. По заданному классу, используя механизм рефлексии Java, вывести в консоль текстовое описание этого класса, максимально приближенное к его исходному коду.

  2. Разработать приложение, позволяющие пользователю играть с самим собой в крестики-нолики. На экранной форме должно быть 9 кнопок, расположенных в три столбца и три строки. При первоначальном нажатии на любую из кнопок на ней появляется знак «Х». При дальнейшем нажатии на другую кнопку, на ней появляется знак «O». Повторное нажатие на кнопку не должно менять ее знака.

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

  2. Создать generic-класс, реализующий стандартный интерфейс Java Set и представляющий собой АТД "Множество". Можно использовать стандартные коллекции Java кроме тех, которые сами реализуют интерфейс Set.

Тест 1. 07.04.17
Домашняя работа 5. 25.03.17
  1. Релизовать программу-калькулятор со следующим графическим интерфейсом:

    картинка.

    При изменении значения аргумента или операции результат пересчитывается автоматически.

  2. Реализовать продвинутый кнопочный калькулятор по аналогии со стандартными калькулятором Windows или KCalc. Как минимум должны присутствовать 10 кнопок цифр и 4 кнопки операции.

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

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

Домашняя работа 3. 13.03.17
Принципы SOLID (конспект)
Принципы SOLID (презентация)
Исключения (конспект)
Исключения (презентация)
  1. Создать интерфейс сортировщика, принимающего массив элементов и выполняющего над ним сортировку. На его основе создать несколько классов, реализующих произвольные (разные) алгоритмы сортировки. К данному коду должны быть созданы автоматические тесты с помощью библиотеки JUnit.

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

Домашняя работа 2. 04.03.17
Наследование и полиморфизм (конспект)
Наследование и полиморфизм (презентация)
Тестирование (конспект)
Тестирование (презентация)
  1. Разработать интерфейс, представляющий структуру данных "стек". На его основе реализовать стек двумя разными способами. Реализовать стековый калькулятор для подсчета арифметических выражений.

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

Домашняя работа 1. 18.02.17
Конспект
Стайлгайд
  1. Создать класс, реализующий функциональность стека.

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

© 2014-2018 HwProj