Расчет времени прибытия поезда

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

Задача: Известно время отправления поезда и время в пути. Время задается в часах и минутах. Нужно найти время прибытия поезда. Например время отправления поезда 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 минут.

Вам также может понравиться

About the Author: Азат Ахметович

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Максимальный размер загружаемого файла: 999 МБ. Вы можете загрузить: изображение, аудио, видео, документ, таблица, интерактив, текст, архив, код, другое. Ссылки на YouTube, Facebook, Twitter и другие сервисы, вставленные в текст комментария, будут автоматически встроены. Drop files here