Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №1854180
А
Аноним
14 октября 2024 19:23 · публичный вопрос
А
Аноним

Задано время отправления поезда и время в пути до конечной станции. Требуется написать программу, которая найдет время прибытия этого поезда (возможно, в другие сутки). Входные…

Запрос пользователя

Задано время отправления поезда и время в пути до конечной станции. Требуется написать программу, которая найдет время прибытия этого поезда (возможно, в другие сутки). Входные данные Входной файл INPUT.TXT содержит две строки. В первой строке задано время отправления, а во второй строке – время в пути. Время отправления задается в формате «HH:MM», где HH время в часах, которое принимает значение от 00 до 23, ММ – время в минутах, которое принимает значение от 00 до 59. Время в пути задается двумя неотрицательными целыми числами – количество часов и количество минут. Числа разделяются одним пробелом. Количество часов не превышает 120, минут – 59. Выходные данные Выходной файл OUTPUT.TXT должен содержать одну строку – время прибытия поезда на конечную станцию. Формат вывода этого времени совпадает с форматом ввода времени отправления. код c++

Ответ нейросети
14 октября 2024 19:23

Для решения данной задачи на языке C++, можно воспользоваться следующей логикой:

  1. Сначала необходимо прочитать время отправления поезда в формате "HH:MM".
  2. Затем считываем время в пути, состоящее из часов и минут.
  3. После этого нужно преобразовать все данные в минуты для удобства вычислений.
  4. Добавляем время в пути к времени отправления, затем преобразуем полученные минуты обратно в формат "HH:MM".
  5. Не забудьте учесть случаи, когда время прибытия может перейти на следующий день (24:00 и далее).

Вот пример кода, который решает данную задачу:

#include <iostream>
#include <fstream>
#include <sstream>

int main() {
    // Открытие входного файла для чтения
    std::ifstream input("INPUT.TXT");
    std::string departureTime; 
    std::getline(input, departureTime);

    int travelHours, travelMinutes;
    input >> travelHours >> travelMinutes;
    input.close();

    // Разделение времени отправления на часы и минуты
    int hour, minute;
    char colon; // Для игнорирования символа ":"
    std::istringstream(departureTime) >> hour >> colon >> minute;

    // Перевод времени отправления в минуты
    int totalMinutes = hour * 60 + minute;

    // Добавление времени в пути
    totalMinutes += travelHours * 60 + travelMinutes;

    // Получение времени прибытия
    int arrivalHour = (totalMinutes / 60) % 24; // Часы прибытия
    int arrivalMinute = totalMinutes % 60; // Минуты прибытия

    // Форматирование времени прибытия
    std::ostringstream output;
    output << (arrivalHour < 10 ? "0" : "") << arrivalHour << ":"
           << (arrivalMinute < 10 ? "0" : "") << arrivalMinute;

    // Открытие выходного файла для записи
    std::ofstream outputFile("OUTPUT.TXT");
    outputFile << output.str();
    outputFile.close();

    return 0;
}

Объяснение кода:

  1. Чтение данных: Сначала программа открывает входной файл и считывает время отправления и время в пути.
  2. Парсинг времени: Затем время отправления разбивается на часы и минуты.
  3. Перевод в минуты: Время отправления преобразуется в общее количество минут.
  4. Добавление времени в пути: К общему числу минут добавляется время в пути (также переведенное в минуты).
  5. Расчет прибытия: Программа вычисляет часы и минуты прибытия, учитывая возможный переход на следующий день (используя % 24).
  6. Вывод результата: Результирующее время форматируется и записывается в выходной файл.

Таким образом, программа корректно рассчитывает время прибытия поезда на конечную станцию.