Определить дату следующего дня - Pascal ABC
Формулировка задачи:
Определить дату следующего дня
Решение задачи: «Определить дату следующего дня»
textual
Листинг программы
Program nextday; Var d,m,y,d1,m1,y1,v,h:integer; Begin Writeln('Эта программа вводит дату,следующую за введённой.'); Writeln('Введите дату в формате DD MM YYYY'); Readln(d,m,y); v:=y mod 4; If (m=4) or (m=6) or (m=9) or (m=11) then h:=0 Else h:=1; If (y<0) then write('Ошибка ввода даты. Повторите ввод.') Else if (m<0) or (m>12) then write('Ошибка ввода даты. Повторите ввод.') Else if (d<0) or (d>31) then write('Ошибка ввода даты. Повторите ввод.') Else if (h=0) and (d>30) then write('Ошибка ввода даты. Повторите ввод.') Else if (m=2) and (v=0) and (d>29) then write('Ошибка ввода даты. Повторите ввод.') Else if (m=2) and (v<>0) and (d>28) then write('Ошибка ввода даты. Повторите ввод.') Else begin If (d=31) and (m=12) then begin d1:=1; m1:=1; y1:=y+1; end Else if (d=31) then begin d1:=1; m1:=m+1; y1:=y; end Else if (d=30) and (h=0) then begin d1:=1; m1:=m+1; y1:=y; end Else if (d=29) and (m=2) then begin d1:=1; m1:=3; y1:=y; end Else if (d=28) and (m=2) and (v<>0) then begin d1:=1; m1:=3; y1:=y; end Else begin d1:=d+1; m1:=m; y1:=y; end; Write('За введённой датой ',d,'.',m,'.',y,' следует дата ',d1,'.',m1,'.',y1); end; End.
Объяснение кода листинга программы
- В программе объявлены переменные d, m, y, d1, m1, y1, v и h типа integer.
- Программа выводит сообщение «Эта программа вводит дату, следующую за введённой».
- С помощью функции Readln считываются значения переменных d, m, y с консоли.
- Переменная v инициализируется остатком от деления переменной y на 4.
- Если месяц введенной даты равен 4, 6, 9 или 11, то значение переменной h устанавливается в 0. В противном случае, значение переменной h устанавливается в 1.
- Проверяется, что значения переменных d, m и y неотрицательны и не превышают своих максимальных значений.
- Если все проверки пройдены успешно, то выводится сообщение «За введённой датой ... следует дата ...» с помощью функции Write.
- В конце программы выводится значение переменной h.