Определить время приземления самолета в часах, минутах и секундах по времени вылета и длительности полета - Pascal
Формулировка задачи:
1. Определить время приземления самолета в часах X, минутах Y и секундах Z. Известно, что самолет вылетел в X0 часов, Y0 минут и Z0 секунд и находился в воздухе Q секунд. Учесть переход времени на другие сутки.
Решение задачи: «Определить время приземления самолета в часах, минутах и секундах по времени вылета и длительности полета»
textual
Листинг программы
var x0,y0,z0,q,x,y,z,s:integer;
begin
repeat
writeln('Введите показания часов часы, минуты и секунды:');
readln(x0,y0,z0);
until(x0 in [0..23])and(y0 in [0..59])and(z0 in [0..59]);
repeat
writeln('Введите добавленное время в секундах:');
readln(q);
until q>0;
s:=3600*x0+60*y0+z0+q;
z:=s mod 60;//секунды
y:=s div 60 mod 60;
x:=s div 3600 mod 24;
writeln('Время приземления:');
if x<10 then write('0',x,':') else write(x,':');
if y<10 then write('0',y,':')else write(y,':');
if z<10 then write('0',z) else write(z);
end.
Объяснение кода листинга программы
- Объявление переменных:
x0- начальные часыy0- начальные минутыz0- начальные секундыq- добавленное время в секундахx- часы приземленияy- минуты приземленияz- секунды приземленияs- общее время в секундах
- Запрос на ввод начального времени:
Повторять следующие действия, пока введенные значения не удовлетворяют условиям (часы от 0 до 23, минуты и секунды от 0 до 59):
- Выводит текст
Введите показания часов часы, минуты и секунды: - Считывает введенные значения в переменные
x0,y0иz0
- Выводит текст
- Запрос на ввод добавленного времени:
Повторять следующие действия, пока введенное значение
qбольше нуля:- Выводит текст
Введите добавленное время в секундах: - Считывает введенное значение в переменную
q
- Выводит текст
- Вычисление времени приземления:
- Вычисляет общее время полета в секундах и сохраняет в
s - Находит секунды приземления как остаток от деления
sна 60 - Находит минуты приземления как остаток от деления результата деления
sна 60 - Находит часы приземления как остаток от деления результата деления
sна 3600
- Вычисляет общее время полета в секундах и сохраняет в
- Вывод времени приземления:
- Если часы приземления меньше 10, то выводит
0и значение часов, иначе выводит значение часов - Если минуты приземления меньше 10, то выводит
0и значение минут, иначе выводит значение минут - Если секунды приземления меньше 10, то выводит
0и значение секунд, иначе выводит значение секунд - Завершает выполнение программы.
- Если часы приземления меньше 10, то выводит