Определить дату следующего дня + квартал (с использованием перечисляемого типа) - Pascal ABC
Формулировка задачи:
Помогите пожалуйста, все выводит, кроме кварталов, вот код:
Решение задачи: «Определить дату следующего дня + квартал (с использованием перечисляемого типа)»
textual
Листинг программы
var d,m,g,k:integer; b:boolean; begin write('Введите день '); readln(d); write('Введите месяц '); readln(m); write('Введите год '); readln(g); b:=true; case m of 1,3,5,7,8,10,12: if d<31 then d:=d+1 else if d=31 then begin d:=1; if m<12 then m:=m+1 else begin m:=1; g:=g+1; end; end else b:=false; 4,6,9,11: if d<30 then d:=d+1 else if d=30 then begin d:=1; m:=m+1; end else b:=false; 2:if g mod 4=0 then if d<29 then d:=d+1 else if d=29 then begin d:=1; m:=m+1; end else b:=false else if d<28 then d:=d+1 else if d=28 then begin d:=1; m:=m+1; end else b:=false; else b:=false; end; case m of 1,2,3: k:=1; 4,5,6: k:=2; 7,8,9: k:=3; else k:=4; end; if b then writeln('Следующая дата ',d,'.',m,'.',g,' квартал ',k) else writeln('Неверно введена дата'); end.
Объяснение кода листинга программы
- Переменные d, m, g, k объявлены как целочисленные типы данных.
- В блоке case m of выполняется проверка значения переменной m.
- Если значение m соответствует одному из указанных в case значений (1, 3, 5, 7, 8, 10, 12), то выполняется соответствующий блок кода.
- Если значение m не соответствует ни одному из указанных значений, то выполняется блок else.
- В блоке else выполняется проверка значения переменной b.
- Если значение b равно true, то выводится сообщение о следующей дате с использованием переменной d, переменной m, переменной g и переменной k.
- Если значение b равно false, то выводится сообщение о неверно введенной дате.
- Код использует вложенные структуры данных и условные операторы для определения даты следующего дня и квартала на основе введенных пользователем данных.