I-01

Протокол (I уровень)

Условие:
Тройка чисел (T1,M1,C1) задает стартовое время, а тройка (T2,M2,C2) - финишное время участника лыжной гонки 30 км (часы, минуты, секунды). Проверить корректность данных и найти результат участника.

Решение:
var
  a,b,x,y,t1,m1,c1,t2,m2,c2 : integer;
begin
write('Старт...'); { ввод данных } 
readln(t1,m1,c1);
write('Финиш...');
readln(t2,m2,c2);
if (t1<0) or (t2<0) or (m1<0) or (m2<0) or {проверяем корректность: }
(c1<0) or (c2<0) or (t1>23) or (t2>23) or {часы от 0 до 23,мин,сек- }
(m1>59) or (m2>59) or (c1>59) or (c2>59) { от 0 до 59 }
then writeln('Некорректные данные')

else begin
  x:=(c2-c1) div 60;

  y:=(c2-c1) mod 60; {секунды}
  a:=((m2-m1) mod 60) + x; {минуты}

  x:=(m2-m1) div 60;
  b:=((t2-t1) mod 60) + x; {часы}
  if y<0
  then begin
   y:=y+60;
   a:=a-1;
  end;
  if a<0
  then begin
   a:=a+60;
   b:=b-1;
  end;
  if b<0
  then b:=b+24;
  writeln('Результат ',b,' ч. ',a,' мин. ',y,' сек.');
end;
end.