Вопрос задан 12.10.2024 в 09:02. Предмет Информатика. Спрашивает Дубинина Настя.

Напишите программу, которая вводит с клавиатуры номер месяца и день, и определяет, сколько дней осталось до Нового года. При вводе неверных данных должно быть выведено сообщение об ошибке. Считается, что год невисокосный.

Входные данные
Входная строка содержит два целых числа: номер месяца и номер дня в этом месяце.

Выходные данные
Программа должна вывести количество дней, оставшихся до Нового года. Если введены неверные данные, нужно вывести число -1.

Примеры
входные данные
1 2
выходные данные
363
входные данные
12 30
выходные данные
1

Перейти к ответам

Ответы на вопрос

Отвечает Islam Aisana.

Вот пример программы на 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)

Пояснение:

  1. Проверка корректности данных: В программе используется функция check_input(), которая проверяет, находится ли месяц в диапазоне от 1 до 12, а также проверяет, чтобы день не превышал количество дней в указанном месяце. Если данные некорректны, программа возвращает -1.

  2. Подсчет дней до Нового года: Для подсчета дней до Нового года используется сумма дней всех предыдущих месяцев и текущего дня. Затем это количество вычитается из общего числа дней в году (365 для невисокосного года).

  3. Выходные данные: Если данные некорректны, выводится -1, в противном случае выводится количество дней до Нового года.

Пример:

Для входных данных:

1 2

Программа посчитает, что прошло 2 дня с начала года, значит до конца года остаётся 365 - 2 = 363 дня.

Для данных:

12 30

До Нового года остаётся всего 1 день.

Программа корректно обработает любые входные данные, в том числе и некорректные, выводя -1, если введены неверные значения.

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос