Время прибытия

      Комментарии к записи Время прибытия отключены

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 2 нед., 1 день назад.

  • Автор
    Сообщения
  • #3387

    Условие задачи взято с сайта acmp.ru:

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

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

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

    Примеры

    INPUT.TXT OUTPUT.TXT
    1 00:00
    10 10
    10:10
    2 01:02
    4 6
    05:08
    3 11:00
    22 0
    09:00

    Разбор решения задачи:
    В целочисленные переменные a, b заносим соответственно количество часов и минут времени отправления поезда. Расположенный в файле между числами знак двоеточия считываем в переменную символьного типа c. В переменные m и n считываются количество часов и минут в пути, соответственно.

    К переменной b добавляется значение переменной n, в итоге получается количество минут на момент прибытия поезда. Если это значение больше 60, то результат целочисленного деления b на 60 надо добавить к количеству часов (переменной a), а в переменной b оставить результат деления по модулю 60.

    Аналогичные действия выполняем с переменными a и m, но деление выполняется по модулю 24, т.к. в сутках 24 часа.

    В результате, в переменных a и b находится результат – время прибытия поезда в часах и минутах. При выводе времени надо учитывать, что если значение часов или минут меньше 10, от перед ним должен быть выведен незначащий ноль.

    Блок-схема алгоритма решения задачи:

    Исходный код решения задачи на C++:

    #include <iostream> 
    #include <stdio.h>
    using namespace std; 
    int main()  { 
      int a,b,m,n; 
      char c; 
      cin>>a>>c>>b>>m>>n; 
    
      b+=n; 
      if(b>60) {
        a+=b/60; 
        b=b%60;
      } 
      a+=m; 
    
      if(a>=24)
        a=a%24;
    
      if(a<10)
        cout<<0<<a;
      else
        cout<<a;
      cout<<c; 
    
      if(b<10)
        cout<<0<<b;
      else
        cout<<b;
    }

Для ответа в этой теме необходимо авторизоваться.