Напишите программу, которая вводит с клавиатуры номер месяца и день и определяет, сколько дней осталось до Нового Года - Pascal ABC
Формулировка задачи:
Напишите программу, которая вводит с клавиатуры номер месяца и день и определяет, сколько дней осталось до Нового Года. При вводе неверных данных должно быть выведено сообщение об ошибке.
Решение задачи: «Напишите программу, которая вводит с клавиатуры номер месяца и день и определяет, сколько дней осталось до Нового Года»
textual
Листинг программы
function DaysInMonth(Month, Year : Integer) : Integer;
{-Return the number of days in the specified month of a given year}
begin
case Month of
1, 3, 5, 7, 8, 10, 12 :
DaysInMonth := 31;
4, 6, 9, 11 :
DaysInMonth := 30;
2 : begin
if (Year mod 4 = 0) and
((Year mod 100 <> 0) or (Year mod 400 = 0)) then
{значит год високосный}
DaysInMonth := 29
else
{невисокосный}
DaysInMonth := 28
end
else
DaysInMonth := 0;
end;
end;
Объяснение кода листинга программы
- Создается функция с именем
DaysInMonth, которая принимает два аргумента типаInteger-MonthиYear. Функция должна возвращать количество дней в указанном месяце заданного года. - Внутри функции используется оператор
caseдля определения количества дней в месяце. Для каждого месяца устанавливается соответствующее значение переменнойDaysInMonth. - Если месяц равен 2, то проверяется, является ли год високосным. Если год делится на 4 без остатка и не делится на 100 или на 400, то год считается високосным, и количество дней в месяце увеличивается на 1. В противном случае, количество дней в месяце остается равным 28.
- Если месяц не равен 2, то количество дней в месяце остается неизменным (31 для месяцев от 1 до 12).
- Если введенный месяц или год не соответствуют допустимым значениям, функция возвращает 0.