Описать тип TDate — запись с полями целого типа Day, Month и Year - Pascal ABC
Формулировка задачи:
Помогите пожалуйста решить задачу. Описать тип TDate - запись с полями целого типа Day ( день), Month (месяц ) и Year (год ) - и функцию
LeapYear (D) логического типа с параметром типа TDate , которая возвращает TRUE, если на дату D является високосным , и FALSE
в противном случае . Также описать функцию DaysInMonth (D) целого типа с параметром типа Tdate , которая возвращает
количество дней месяца , указанного в дате D. Вывести значение функции DaysInMonth для пяти данных дат
(предполагается, что все даты являются правильными ) .Буду очень благодарен.
Решение задачи: «Описать тип TDate — запись с полями целого типа Day, Month и Year»
textual
Листинг программы
const n = 5; type TDate = Record day: integer; month: integer; year: integer; End; var Date: array[1..n] of TDate; i: integer; function LeapYear(D: Tdate): boolean; begin LeapYear := (D.year mod 4 = 0) and ((D.year mod 100 <> 0) or (D.year mod 400 = 0)); end; function DaysInMonth(D: Tdate): integer; var k: integer; begin case D.month of 1, 3, 5, 7, 8, 10, 12: k := 31; 4, 6, 9, 11: k := 30; 2: if LeapYear(D) then k := 29 else k := 28; End; DaysInMonth := k; end; begin for i := 1 to n do begin writeln(i, '-я дата'); with Date[i] do begin write('День: '); readln(day); write('Месяц: '); readln(month); write('Год: '); readln(year); end; end; for i := 1 to n do writeln(DaysInMonth(Date[i]),' дней в ',Date[i].month,' месяце '); end.
Объяснение кода листинга программы
- Переменная
n
инициализируется значением 5. - Создается тип
TDate
, представляющий запись с полями целого типаDay
,Month
иYear
. - Создается переменная
Date
, которая представляет собой массив изn
элементов типаTDate
. - Создается переменная
i
, которая будет использоваться для итерации по элементам массиваDate
. - Определяется функция
LeapYear
, которая принимает объект типаTDate
и возвращает логическое значениеtrue
, если год является високосным, иfalse
в противном случае. - Определяется функция
DaysInMonth
, которая принимает объект типаTDate
и возвращает количество дней в месяце. Внутри функции используется операторcase
для определения количества дней в каждом месяце. - В цикле
for
итерируется по каждому элементу массиваDate
. - Внутри цикла выводится информация о каждой дате, включая день, месяц и год.
- После вывода информации о каждой дате выводится количество дней в текущем месяце, используя функцию
DaysInMonth
. - Цикл
for
завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д