Выяснить, предшествует ли время t времени t1 - Pascal ABC
Формулировка задачи:
Помогите с функцией past,вроде должно быть что то простое, но как только не крутил не получается
Решение задачи: «Выяснить, предшествует ли время t времени t1»
textual
Листинг программы
type date=record dyear : integer; dmonth :integer; dday : integer; end; {процедура проверяет предшествует ли время t t1} function past(d1,d2:date):boolean; begin past:=(d1.dyear<d2.dyear)or((d1.dyear=d2.dyear)and(d1.dmonth<d2.dmonth)) or((d1.dyear=d2.dyear)and(d1.dmonth=d2.dmonth)and(d1.dday<d2.dday)); end; {процедура перевода строкового типа в тип date} Procedure stringDate(t:string;var p:date); var s:string; i,k:integer; begin repeat writeln ('введите дату ',t,' вида дд.мм.гггг'); readln(s); k:=0; if length(s)<>10 then k:=1 else begin for i:=1 to 10 do if ((i in [1,2,4,5,7..10])and not (s[i] in ['0'..'9'])) or not(strtoint(copy(s,1,2))in[1..31])or not(strtoint(copy(s,4,2))in[1..12]) or ((i in [3,6])and(s[i]<>'.')) then k:=1; end; if k=1 then writeln('Неверно введена дата ',t); until k=0; p.dday:=strtoint(copy(s,1,2)); p.dmonth:=strtoint(copy(s,4,2)); p.dyear:=strtoint(copy(s,7,4)); end; {Основная программа} var t,t1:string; sday1,sday2:date; begin stringDate('T',sday1); stringDate('T1',sday2); if past(sday1,sday2) then write('Предшествует') else write('Не предшествует') end.
Объяснение кода листинга программы
- В коде определен тип данных
date
, который представляет собой запись с полямиdyear
(год),dmonth
(месяц) иdday
(день). - Функция
past
принимает два объекта типаdate
и возвращает логическое значение true, если время t предшествует времени t1, и false в противном случае. - Процедура
stringDate
принимает строку t типаstring
и переменную p типаdate
. Она повторяет несколько раз запрос ввода даты, пока не будет введено корректное значение. Затем она преобразует строку в объект типаdate
, устанавливая поляdday
,dmonth
иdyear
. - Основная программа создает две переменные типа
string
- t и t1, и вызывает процедуруstringDate
для обеих переменных. Затем она проверяет результат функцииpast
и выводит соответствующее сообщение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д