Param60. Используя тип TDate и функцию LeaP_Year (см. задание Param59), описать функцию DaysInMonth($$D$$) целого типа с параметром типа TDate, которая возвращает количество дней для месяца, указанного в дате $$D$$. Вывести значение функции DaysInMonth для пяти данных дат (предполагается, что все даты являются правильными).
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
program Param60; type TDate = record Day:integer; Month:integer; Year:integer; end; var D:TDate; i:integer; Function LeaP_Year(D:TDate):boolean; begin if (D.Year mod 100)=0 then if (D.Year mod 400)=0 then LeaP_Year:=True else LeaP_Year:=False else if (D.Year mod 4)=0 then LeaP_Year:=True else LeaP_Year:=False; end; Function DaysInMonth(D:TDate):integer; begin Case D.Month of 1,3,5,7,8,10,12 : DaysInMonth:=31; 4,6,9,11 : DaysInMonth:=30; 2 : if LeaP_Year(D) then DaysInMonth:=29 else DaysInMonth:=28; end; end; begin for i:=1 to 5 do begin Write('Date: '); Readln(D.Day,D.Month,D.Year); Writeln(DaysInMonth(D)); end; end. |
Другие задачи из раздела Param можно посмотреть здесь.
Комментарии: