Помощь - Поиск - Пользователи - Календарь
Полная версия: type time = record (тип запись)
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
mitz
Доброй ночи! Народ, как сделать, не представляю вообще... Помогите, пожалуйста!

Дано время, описанное следующим образом:
type time = record
h:0..23;
m,s: 0..59
end;
Описать логическую функцию erlier(t1,t2) для проверки, предшествует ли время t1 времени t2 (в рамках суток) и проиллюстрировать её работу в программе.
IUnknown
type
Time =
record
h : 0 .. 23;
m, s : 0 .. 59
end;

function Earlier(T1, T2 : Time) : Boolean;
begin
result := (T1.h < T2.h) or
((T1.h = T2.h) and (T1.m < T2.m)) or
((T1.h = T2.h) and (T1.m = T2.m) and (T1.s < T2.s));

// или так:
// result := ((T1.s * 60 + T1.m) * 60 + T1.h) < ((T2.s * 60 + T2.m) * 60 + T2.h);
end;

var
t_1 : Time = (h:12; m:15; s:55);
t_2 : Time = (h:22; m:17; s:55);
t_3 : Time = (h:12; m:15; s:50);

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage( 't_1 earlier than t_2 : ' + BoolToStr(Earlier(t_1, t_2), True) );
ShowMessage( 't_1 earlier than t_3 : ' + BoolToStr(Earlier(t_1, t_3), True) );
end;
TarasBer
> result := (T1.h < T2.h) or
((T1.h = T2.h) and (T1.m < T2.m)) or
((T1.h = T2.h) and (T1.m = T2.m) and (T1.s < T2.s));

Как-то на матрёшку похоже...
Мне больше нравится так:


if T1.h<>T2.h then Result := T1.h<T2.h
else
if T1.m<>T2.m then Result := T1.m<T2.m
else
if T1.s<>T2.s then Result := T1.s<T2.s
mitz
Спасибо за помощь, постараюсь разобраться.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.