Электропоезд
Известно, сколько времени электропоезд тратит на проезд между любыми двумя соседними станциями своего маршрута. Известно время отправления с начальной станции. Напишите программу, которая вычислит время отправления электропоезда с каждой станции его маршрута (для последней станции это будет время прибытия — временем стоянки поезда на станциях мы пренебрежем).

Формат входных данных
В первой строке задано время отправления поезда с начальной станции. Время задается в следующем формате: сначала идут две цифры, задающие часы (от 00 до 23), далее идет двоеточие, затем идут две цифры, задающие минуты (от 00 до 59). Пробелы внутри строки, задающей время, не допускаются.
Во второй строке входного файла записано натуральное число N (2≤N≤1000) — количество станций в маршруте электропоезда (включая начальную и конечную станции). В третьей строке записано N–1 число — первое из этих чисел задает время следования в минутах от начальной станции до второй станции, второе — время от второй станции до третьей и т.д. Каждое из этих чисел натуральное и не превышает 1000.

Формат выходных данных
В выходной файл для каждой станции выведите время прохождения поезда через эту станцию. Время должно быть выведено в том же формате, в каком оно задается во входных данных.

Это несложная техническая задача. В ней требовалось аккуратно реализовать считывание и вывод времени в формате ЧЧ:ММ, получение времени прибытия на станцию по времени прибытия на предыдущую и количеству минут, затраченных на переезд между станциями. При данных в задаче ограничениях вторую из операций можно было реализовать двумя способами:
1) реализовать прибавление ко времени одной минуты и получать нужное время путём прибавления по минуте в цикле;
2) реализовать прибавление произвольного количества минут, удовлетворяющих условию задачи, ко времени.
Остаётся не забыть про переход через 24 часа.
Теперь рассмотрим, как можно было это всё реализовать на Delphi. Положим, что в переменной H хранятся текущие часы, а в переменной M – текущие минуты.
Для считывания времени понадобятся две дополнительные переменные: S типа String[2] и Tmp типа Char.

Read(S,Tmp); {Считываем первые два символа - часы, а затем двоеточие}
H:=StrToInt(S);
Read(S); {Считываем минуты}
M:=StrToInt(S);

Теперь рассмотрим прибавление DM минут к времени, хранящемуся в переменных H и M:

H:=(H + (DM+M) Div 60) Mod 24;
M:=(DM+M) Mod 60;

Для вывода времени в формате ЧЧ:ММ понадобится два условных оператора:

If H<10 Then Write(‘0’); {Выводим часы и двоеточие}
Write(H,’:’);

If M<10 Then Write(‘0’); {Выводим минуты}
WriteLn(M);
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website