From b6678402f31cfcb6c3fb57b07a070ceb7063d762 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=BE=D0=BB=D0=BE=D0=B4=D0=B8=D0=BD=20=D0=93=D0=B5?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D0=BD?= Date: Fri, 21 Aug 2026 16:18:37 +0400 Subject: [PATCH] docs: add project assignment --- TASK.ru.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 TASK.ru.md diff --git a/TASK.ru.md b/TASK.ru.md new file mode 100644 index 0000000..7e69b80 --- /dev/null +++ b/TASK.ru.md @@ -0,0 +1,47 @@ +# Задание + +## Требуемые условия завершения + +### Основное задание + +Написать приложение, которое будет реализовывать алгоритм сортировки выбранных классов. Приложение должно быть выложено на гитхаб/гитлаб, количество веток с кодом должно соответствовать количеству участников (минимум), все ветки в итоге должны быть смерджены в master/main ветку. Вся архитектура и код стайл должны соответствовать конвенциям языка Java. Программа должна выполняться в цикле. Выход из цикла возможен только путем соответствующего выбора пользователя. Пользователь должен иметь возможность выбирать варианты заполнения исходного массива данных (из файла, рандом, вручную) и его длину. + +В программе должен использовать паттерн стратегия. Сортировать необходимо кастомные классы - класс должен иметь реализованный паттерн Builder. Для вводимых данных (в тч из файла) должна производиться валидация данных. + +Сортировка должна быть базово реализована по всем 3 полям. + +### Примеры классов + +1. Автобус (Номер, Модель, Пробег) +2. Пользователь (Имя, Пароль, Почта), +3. Студент (Номер группы, Средний балл, Номер зачетной книжки) +4. Автомобиль (Мощность, Модель, Год производства) +5. Бочка (Объем, Хранимый материал, Материал из которого изготовлена) + +Классы могут быть любыми, в том числе те, что перечислены здесь. Выбрать необходимо 1 класс. + +### Дополнительное задание 1 + +Дополнительно к основным сортировкам реализовать эти же алгоритмы сортировки таким образом, что объекты классов будут сортироваться по какому-либо числовому полю: объекты с четными значениями этого поля должны быть отсортированы в натуральном порядке, а с нечетными – оставаться на исходных позициях. + +### Дополнительное задание 2 + +Реализовать функционал для записи отсортированных коллекций/ найденных значений в файл в режиме добавления данных. + +### Дополнительное задание 3 + +Заполнение коллекций должно осуществляться посредством стримов. + +**3*** Коллекции для заполнения должны быть кастомными. + +### Дополнительное задание 4 + +Реализовать многопоточный метод, подсчитывающий количество вхождений элемента N в коллекцию и выводящий результат в консоль. + +### Общее требование + +Все классы должны базово реализовывать сортировку по всем 3 полям. Для кастомной сортировки разрешено использовать компаратор. Запрещено применять готовые реализации сортировки, поиска и паттернов. + +В программе также должны быть реализованы тесты к написанному коду. Классические тестовые библиотеки использовать не обязательно (но можно), так как мы их не изучали, достаточно просто тестов в отдельных классах, реализованных руками. + +Результат прикрепить в виде ссылки на Github/Gitlab.