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

Важно. Если у проверяющего возникнет обоснованное предположение о совместном решении, тогда все участники получат неудовлетворительную оценку.

Проверяемые знания учащихся

  • Уровень знакомства с языком Ruby:
    • Запуск приложения.
    • Описание переменных и методов, их использование.
    • Работа с контейнерами, итераторами, нумераторами.
    • Описание собственных классов.
    • Наследование классов.
    • Использование модулей и примесей.
    • Знание деталей работы стандартных классов: чисел, строк.
    • Знание деталей вызова методов и указания их аргументов.
    • Использование методов чисел и промежутков.
    • Использование методов классов строк и регулярных выражений.
  • Уровень знакомства с экосистемой языка Ruby:
    • Установка, удаление зависимостей с помощью gem.
    • Управление зависимостями с помощью Bundler.
    • Проверка качества исходного кода с помощью Rubocop.

Требования к выполнению задания

  • Приложение должно реализовать все требования, указанные в задании. Однако к защите допускаются приложения, реализующие только часть задач.
  • К защите не допускается исходный код, который не запускается.
  • Исходный код приложения должен быть проверен с помощью приложения Rubocop с настройками по-умолчанию или с конфигурацией, предложенной на соответствующем занятии. Для каждого нарушения, которое находит Rubocop, должно быть объяснение почему оно не было исправлено. Допускаются аргументы с точки зрения архитектуры приложения, другого рода аргументы не принимаются.
  • Все зависимости приложения должны управляться с помощью Bundler, установка зависимостей с помощью gem запрещена. Исключением является джем bundler.
  • Для разрабатываемого приложения должны быть создан отдельный каталог.
    • В корне каталога должны располагаться конфигурационные файлы: Gemfile, Gemfile.lock.
    • В корне каталога приложения должны находится каталоги bin, lib, в которых должен находиться исходный код приложения. В каталоге bin находится исполняемый файл, в каталоге lib находится описание всех собственных классов и модулей.
  • Весь код приложения должен быть разбит на модули и классы, запрещается использовать файлы с простым набором методов, которые не пренадлежат какому-либо модулю.
  • Необходимо выделить отдельные классы, описывающие предметную область.
  • В одном модуле нельзя совмещать логику обработки предметной области и операции ввода-вывода.
  • Приложение должно корректно обрабатывать неправильный ввод от пользователя.
  • Приложение должно обладать понятным интерфейсом: показывать помощь по использованию, для ввода данных приложение должно показывать приглашение.

Задача лабораторной №2

Реализуйте консольное приложение, решающее задачу из задачника.

Студент Номер задачи
Арцимовская Вероника Михайловна 1
Бакулин Владилен Максимович 5
Барышева Наталья Сергеевна 12
Боброва Полина Ильинична 19
Варданян Армен Авагович 4
Власов Евгений Максимович 14
Волков Андрей Михайлович 17
Врачев Михаил Алексеевич 6
Ганжа Лилиана Александровна 2
Голубева Ксения Руслановна 20
Гонобоблев Евгений Дмитриевич 11
Гусев Леонид Васильевич 14
Дорофеев Даниил Григорьевич 9
Дрожженикова Алина Сергеевна 8
Дубровина Анастасия Михайловна 20
Захаров Даниил Михайлович 18
Калабин Данил Николаевич 15
Касаткин Михаил Александрович 13
Коковин Даниил Евгеньевич 3
Корчагина Дарья Михайловна 19
Кострюков Григорий Алексеевич 15
Крутилов Алексей Андреевич 12
Крутов Дмитрий Сергеевич 2
Крышковец Дмитрий Игоревич 6
Кудинкин Илья Андреевич 18
Кузьменко Алексей Павлович 6
Кулаков Даниил Сергеевич 7
Курицына Мария Евгеньевна 7
Лавров Михаил Андреевич 11
Лифанов Валерий Павлович 20
Лобашова Юлия Александровна 8
Максимова Мария Сергеевна 2
Медведева Елизавета Андреевна 13
Морозов Даниил Игоревич 3
Обжигалов Максим Сергеевич 12
Орлов Олег Олегович 17
Орлова Диана Сергеевна 9
Парамонов Егор Сергеевич 3
Петровский Илья Андреевич 11
Рекут Георгий Александрович 8
Русанов Олег Сергеевич 5
Рыбакова Полина Александровна 4
Сироджов Мехрофарид Ибодуллоевич 9
Степаненко Кирилл Александрович 16
Стулова Василина Игоревна 10
Суслов Данила Андреевич 7
Суханов Александр Денисович 1
Сухонин Виктор Васильевич 15
Тихомиров Максим Витальевич 16
Торопов Егор Александрович 16
Уваров Максим Евгеньевич 14
Фокин Арсений Алексеевич 10
Харитонов Егор Андреевич 4
Червинский Артём Алексеевич 13
Четвертков Андрей Михайлович 10
Шевченко Роман Николаевич 5
Шипилова Дарья Романовна 1
Ширкунов Артем Викторович 17
Юркин Роман Юрьевич 18