Вопрос задан 12.01.2025 в 14:28. Предмет Информатика. Спрашивает Пугачёв Витя.

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

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

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

Примеры
входные данные
1 2
выходные данные
363
входные данные
12 30
выходные данные
1
На паскале

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

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

Отвечает Бурлаков Никита.

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

Вот пошаговое объяснение того, как можно реализовать такую программу:

  1. Объявление переменных: Нам потребуются переменные для хранения номера месяца, дня, а также переменной для хранения количества оставшихся дней.

  2. Ввод данных: Используем функцию для ввода номера месяца и дня. Также важно проверить, что номер месяца находится в пределах от 1 до 12, а день — в пределах, соответствующих введенному месяцу.

  3. Проверка корректности введенных данных: Нужно создать условие, которое проверяет, правильные ли данные были введены. Например, если месяц равен 2, день не может превышать 28 (в невисокосном году). Аналогично проверяем дни для остальных месяцев.

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

  5. Вывод результата: Если данные корректны, программа выводит количество дней до Нового года, иначе — -1.

Вот пример кода на Pascal, который выполняет все вышеперечисленные шаги:

pascal
program DaysUntilNewYear;

var month, day, remainingDays: integer; daysInMonth: array[1..12] of integer;

begin // Инициализация массива с количеством дней в каждом месяце daysInMonth[1] := 31; // Январь daysInMonth[2] := 28; // Февраль (невисокосный год) daysInMonth[3] := 31; // Март daysInMonth[4] := 30; // Апрель daysInMonth[5] := 31; // Май daysInMonth[6] := 30; // Июнь daysInMonth[7] := 31; // Июль daysInMonth[8] := 31; // Август daysInMonth[9] := 30; // Сентябрь daysInMonth[10] := 31; // Октябрь daysInMonth[11] := 30; // Ноябрь daysInMonth[12] := 31; // Декабрь

// Ввод месяца и дня readln(month, day);

// Проверка корректности данных if (month < 1) or (month > 12) or (day < 1) or (day > daysInMonth[month]) then begin writeln(-1); // Вывод ошибки exit; // Завершение программы end;

// Подсчет оставшихся дней remainingDays := 0;

// Считаем дни до конца текущего месяца remainingDays := daysInMonth[month] - day;

// Считаем дни в оставшихся месяцах for var m := month + 1 to 12 do begin remainingDays := remainingDays + daysInMonth[m]; end;

// Вывод результата writeln(remainingDays); end.

Объяснение кода:

  • Инициализация массива: Массив daysInMonth инициализируется с количеством дней в каждом месяце.
  • Ввод данных: Программа запрашивает у пользователя ввести номер месяца и день.
  • Проверка корректности: Если введенные значения не соответствуют допустимым, программа выводит -1 и завершает выполнение.
  • Подсчет оставшихся дней: Сначала вычисляется количество дней, оставшихся в текущем месяце, затем добавляются дни всех последующих месяцев.
  • Вывод результата: Программа выводит общее количество оставшихся дней до Нового года.

Таким образом, программа справляется с задачей и корректно обрабатывает возможные ошибки ввода.

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

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

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

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