
Напишите программу, которая вводит с клавиатуры номер месяца и день, и определяет, сколько дней осталось до Нового года. При вводе неверных данных должно быть выведено сообщение об ошибке. Считается, что год невисокосный.
Входные данные
Входная строка содержит два целых числа: номер месяца и номер дня в этом месяце.
Выходные данные
Программа должна вывести количество дней, оставшихся до Нового года. Если введены неверные данные, нужно вывести число -1.
Примеры
входные данные
1 2
выходные данные
363
входные данные
12 30
выходные данные
1
Ответы на вопрос

Вот пример программы на Python, которая решает задачу:
python# Функция для проверки корректности ввода
def check_input(month, day):
# Словарь с количеством дней в каждом месяце для невисокосного года
days_in_month = {
1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30,
7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31
}
# Проверяем, что месяц в диапазоне от 1 до 12
if month < 1 or month > 12:
return False
# Проверяем, что день в корректном диапазоне для указанного месяца
if day < 1 or day > days_in_month.get(month, 0):
return False
return True# Функция для вычисления количества оставшихся дней до Нового года
def days_until_new_year(month, day):
# Словарь с количеством дней в каждом месяце
days_in_month = {
1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30,
7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31
}
# Проверка корректности ввода
if not check_input(month, day):
return -1
# Всего дней в году в невисокосном году
total_days = 365
# Вычисляем количество прошедших дней с начала года до текущего дня
days_passed = sum(days_in_month[m] for m in range(1, month)) + day
# Количество дней, оставшихся до Нового года
return total_days - days_passed
# Ввод данных
month, day = map(int, input().split())
# Вывод результата
result = days_until_new_year(month, day)
print(result)
Пояснение:
Проверка корректности данных: В программе используется функция
check_input()
, которая проверяет, находится ли месяц в диапазоне от 1 до 12, а также проверяет, чтобы день не превышал количество дней в указанном месяце. Если данные некорректны, программа возвращает-1
.Подсчет дней до Нового года: Для подсчета дней до Нового года используется сумма дней всех предыдущих месяцев и текущего дня. Затем это количество вычитается из общего числа дней в году (365 для невисокосного года).
Выходные данные: Если данные некорректны, выводится
-1
, в противном случае выводится количество дней до Нового года.
Пример:
Для входных данных:
1 2
Программа посчитает, что прошло 2 дня с начала года, значит до конца года остаётся 365 - 2 = 363 дня.
Для данных:
12 30
До Нового года остаётся всего 1 день.
Программа корректно обработает любые входные данные, в том числе и некорректные, выводя -1
, если введены неверные значения.
Похожие вопросы









Топ вопросов за вчера в категории Информатика









Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili