Домашняя работа по курсу

Как сдавать домашнюю работу

  1. Зарегистрироваться на факультетском Ejudge

    • По этой же ссылке заполнить графу «Имя» (там должны быть имя и группа, кому оценку ставить)
    • <!> ВНИМАНИЕ! Зарегистрированные пользователи заходят тут

  2. Выбрать 230-й «турнир» (UNИX Python 2022)
    • Возможно, придётся пойти по ссылке «Confirm registration» («Подтвердить регистрацию»)
    • Возможно, придётся пойти по ссылке «Participate» («Участвовать»)
  3. Выбрать соответствующую задачку
  4. Загрузить решение
    • Прежде, чем загружать решение, убедитесь, что оно правильное. Не надо вместо этого делать много различных вариантов решения в надежде, что какой-то один всё-таки пройдёт тесты.
    • Если возникают вопросы — спрашивайте, для этого есть и интерфейс eJudge, и группа в Telegram
  5. Дождаться конца проверки (как правило, несколько секунд) и обновить страницу браузера

О формулировках задач

Как оформлять решение

В Д/З могут встречаться несколько типов заданий.

Задача типа «написать программу»

По умолчанию, т. е. если иное не указано отдельно:

⇒ Для ввода можно пользоваться input() (чаще даже eval(input())) без строки-подсказки, а для вывода — print(). Ещё раз: никаких переговоров с роботом — только ввод входных данных и вывод выходных, иначе программа не пройдёт тест!

Задача типа «написать функцию»

Алгоритм сдачи такого задания:

Пример решения задачи «написать функцию»

Написать функцию gt12(), которая принимает два заведомо сравнимых параметра и возвращает 1, если первый параметр больше второго, и 2 в противном случае:

Пример решения задачи «написать класс»

Написать класс C, который ничего не делает:

Задача типа «написать модуль»

Пример задачи: Написать модуль, в котором будет присутствовать целочисленный объект Count, изначально равный 0, и функция incr(level), увеличивающая Count на число level

Модуль-решение:

   1 Count = 0
   2 
   3 def incr(level):
   4     global Count
   5     Count += level

Тест:

   1 print(mod.Count)
   2 mod.incr(100)
   3 print(mod.Count)
   4 # Список неспециальных объектов модуля
   5 print(*sorted(s for s in dir(mod) if not s.startswith("_")))

Вывод:

0
100
Count incr

Тестирующая программа