В этом кейсе вам нужно решить типовую транспортную задачу для нахождения времени прибытия поезда.
Задача: Известно время отправления поезда и время в пути. Время задается в часах и минутах. Нужно найти время прибытия поезда. Например время отправления поезда 13 часов, 26 минут. Время в пути до конечной станции 4 часа 45 минут. Найти время прибытия поезда и вывести его на экран.
Решим эту задачу в Python. Вот полный текст программы для решения этой задачи:
# Зададим время отправления start_hours = 13 start_minutes = 26 # Зададим время в пути travel_hours = 4 travel_minutes = 45 # Переведем время отправления и время в пути в минуты start = start_hours * 60 + start_minutes travel = travel_hours * 60 + travel_minutes # Найдем время прибытия в минутах finish = start + travel # Переведем время прибытия в нормальный вид: в часы и минуты finish_hours = finish // 60 finish_minutes = finish - finish_hours * 60 # Выведем результат на экран print("Время прибытия ",finish_hours, " : ",finish_minutes)
Запуск программы на Python
Что бы запустить эту программу на выполнение сделайте:
Шаг 1. Скопируйте код программы на этой странице. Выделите и нажмите Ctrl + C или щелкните правой кнопкой мыши и нажмите копировать.
Шаг 2. Далее перейдите на сайт с Python онлайн. Перейдите на сайт https://replit.com/languages/python3 или https://www.onlinegdb.com/online_python_compiler.
Шаг 3. Перейдя на указанный сайт вставьте программный код Ctrl + V или щелкните правой кнопкой мыши и нажмите вставить.
Шаг 4. Нажмите на зеленую кнопку RUN.
Вы увидите результат расчета.
Пояснение как работает программа
Для решения задачи будем оперировать минутами для удобства. Для этого время отправления и время в пути полностью переведем в минуты. Например если время отправления 13 ч 26 мин, то в минутах это будет:
start = 13 * 60 + 26 = 806
Т.е. мы количество часов умножаем на 60 (так как в 1 часе 60 минут) и прибавляем минуты. Точно также переводим время в пути в минуты.
travel = 4 * 60 + 45 = 285
Затем для решения задачи нам достаточно прибавить к времени отправления время в пути. И мы узнаем время прибытия в минутах.
finish = start + travel = 806 + 285 = 1091
Ну и последним действием переведем время прибытия в нормальный вид: в часы и минуты. Что бы выделить часы время прибытия в минутах разделим нацело на 60 ( в Python для этого используем знак «//»).
finish_hours = 1091 // 60 = 18
А что бы выделить минуты от общего времени в минутах отнимем время в часах умноженное на 60.
finish_minutes = finish — finish_hours * 60 = 1091 — 18 * 60 = 11
Вот мы и нашли время прибытия 18 ч. 11 мин.
Домашнее задание
Вам нужно доработать программу. Нужно выполнить одно из 3 заданий на выбор. И результат, т.е. измененную программу нужно отправить на проверку через форму комментариев к этой статье. Программу для этого не нужно сохранять и прикреплять как файл. Достаточно просто скопировать код вашей программы и вставить его в комментарий как текст.
Вот задания на выбор:
Задание 1. Доработайте программу так, что бы программа выводила на экран не только время прибытия, но и время отправления и время в пути.
Задание 2. Доработайте программу, что бы время отправления и время в пути можно было вводить пользователю. Т.е. сделайте программу универсальной, подходящей для решения задач с любым временем. Как организовать ввод / вывод читаем тут https://programclub.ru/python/data-input-output-in-python/
Задание 3. Время прибытия может перейти и на другие сутки. В этом случае нужно учитывать дату отправления и дату прибытия. Помним что в сутках 24 часа. Сделайте программу которая позволит вводить дату отправления и посчитает дату прибытия. Например отправление 5 числа в 13 ч 26 минут.