Предмет: Информатика, автор: borsukovkosta2

СДЕЛАТЬ В PascalABC.net. ДАЮ 100 БАЛЛОВ!!!

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

Входные данные

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

Выходные данные

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

Ответы

Автор ответа: flash77779
1

program TrainArrival;

uses SysUtils;

var

 DepartureTime, TravelTime: string;

 DepartureHours, DepartureMinutes: integer;

 TravelHours, TravelMinutes: integer;

 ArrivalHours, ArrivalMinutes: integer;

 TotalMinutes: integer;

 InputFile, OutputFile: TextFile;

begin

 AssignFile(InputFile, 'INPUT.TXT');

 Reset(InputFile);

 Readln(InputFile, DepartureTime);

 Readln(InputFile, TravelTime);

 CloseFile(InputFile);

 

 // Разделяем строку времени отправления на часы и минуты

 DepartureHours := StrToInt(Copy(DepartureTime, 1, 2));

 DepartureMinutes := StrToInt(Copy(DepartureTime, 4, 2));

 

 // Разделяем строку времени в пути на часы и минуты

 Val(Copy(TravelTime, 1, Pos(' ', TravelTime) - 1), TravelHours);

 Val(Copy(TravelTime, Pos(' ', TravelTime) + 1, Length(TravelTime)), TravelMinutes);

 

 // Считаем общее время в пути в минутах

 TotalMinutes := DepartureHours * 60 + DepartureMinutes + TravelHours * 60 + TravelMinutes;

 

 // Вычисляем часы и минуты времени прибытия

 ArrivalHours := TotalMinutes div 60 mod 24;

 ArrivalMinutes := TotalMinutes mod 60;

 // Записываем результат в файл OUTPUT.TXT

 AssignFile(OutputFile, 'OUTPUT.TXT');

 Rewrite(OutputFile);

 WriteLn(OutputFile, Format('%.2d:%.2d', [ArrivalHours, ArrivalMinutes]));

 CloseFile(OutputFile);

end.


pb1036: Это программа написана в языке Free Pascal, в PascalАВС.NЕТ она не будет работать, там процедуру Val нужно вызывать с тремя параметрами. Да и модуль SysUtils в PascalАВС.NЕТ отсутствует.
pb1036: ## // настоящий PascalАВС.NЕТ
Assign(input, 'input.txt');
var ВремяОтправления := ReadlnString; // HH.MM
var (ЧасовВпути, МинутВПути) := ReadInteger2;
var (ОтправлениеЧасы, ОтправлениеМинуты) :=
(ВремяОтправления[:3].ToInteger, ВремяОтправления[4:].ToInteger);
// продолжение следует
pb1036: // продолжение программы
var МинутыПрибытия := ОтправлениеМинуты + МинутВПути;
var ПереносМинут := МинутыПрибытия > 59;
if ПереносМинут then МинутыПрибытия -= 60;
var ЧасыПрибытия := (ОтправлениеЧасы + ЧасовВпути + Ord(ПереносМинут)) mod 24;
var res := $'{ЧасыПрибытия, 0:d2}:{МинутыПрибытия, 0:d2}';
Assign(output, 'output.txt');
Writeln(res)
borsukovkosta2: спасибо большое!
pb1036: Пожалуйста
pb1036: Если хочется поиграться с программoй вводом с клавиатуры, закомментируйте оба вызова Assign
borsukovkosta2: хорошо
Похожие вопросы
Предмет: Математика, автор: AleksandrVoskoboev18
Предмет: Биология, автор: hetmandenissss
Предмет: Химия, автор: Kateberezynska