Here you can find conditions and solutions to problems for the third semester.
- Semester №1
- Semester №2
- Semester №3 ⬅️ You are here
- Semester №4
- Смоделировать работу локальной сети:
a) в сети есть несколько компьютеров, связанных друг с другом (каким образом - можно задавать, например, матрицей смежности);
b) на каждом компе стоит ОС (Windows, Linux, etc...);
c) в сети гуляют вирусы, так что для каждой машины есть ненулевая вероятность заразиться (вероятность зависит от типа ОС), заражаются компьютеры, непосредственно соединённые с заражёнными;
d) заражения (и проверки, заразился компьютер или нет) происходят дискретно - по ходам.
Требуется периодически выводить состояние сети. Нужны тесты, проверяющие правильность процесса заражения. [Solution]
-
Нарисовать диаграмму классов для игры "реверси", с несколькими видами "ботов", которые могли бы играть вместо человека. Диаграмма должна быть довольно подробным проектом системы. Реализовывать этот проект не нужно. [Solution]
-
Нарисовать диаграмму состояний для класса
MicrowaveOven
, реализующего ПО СВЧ-печи. [Solution]
- Есть автостоянка с ограниченным количеством мест, на стоянку могут заезжать машины и со стоянки могут уезжать машины. Надо реализовать класс, который бы сообщал машине при въезде, есть ли свободные места, и регистрировал уезжающие машины. На парковку есть несколько въездов, на каждом из которых планируется поставить такой автомат и сделать так, чтобы автоматы синхронизировались друг с другом. Реализация должна быть lock-free. [Solution]
- Реализовать Android-приложение "Калькулятор". Пользователь должен вводить выражение, которое состоит из вещественных чисел, операций "+-*/" и скобочек. По нажатию на равно должно показываться значение выражения. [Solution]
Доклад (Паттерн "Фабричный метод")
- Разработайте простое web-приложение с использованием ktor. Выберите тему на свой вкус, например, показ случайной цитаты с баша. Приложение должно быть простым, не более 5 роутингов. После его реализации, упакуйте исходный код в контейнер. При этом, при запуске контейнера, должно запускаться само приложение.
Прикрепите Dockerfile к pull request. В качестве 1 слоя контейнера используйте alpine. Для определения "точки запуска" рекомендуется установитьENTRYPOINT [/bin/bash]
иCMD [<args>]
, гдеargs
— команды для запуска вашего сервера. Более подробно можно почитать, например, тут.
[Solution]