Определить по времени установки пирога в духовку время, когда будет подходящее время для его извлечения - Free Pascal
Формулировка задачи:
Пекарь считает, что для получения рождественского пирога идеальной симетричной формы его нужно вынимать из духовки в тот момент, когда часы показывают «палиндромное» время, которое читается одинаково слева-направо и справа-налево.
Напишите программу, которая определяет по времени установки пирога в духовку время, когда будет подходящее время для его извлечения.
Входные данные
В единственной строке входного файла INPUT.TXT записано время установки пирога в духовку в формате HH:MM (00 ≤ HH ≤ 23, 00 ≤ MM ≤ 59).
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести ближайшее «палиндромное» время в формате HH:MM.
Решение задачи: «Определить по времени установки пирога в духовку время, когда будет подходящее время для его извлечения»
textual
Листинг программы
program palindromic_time; var h, m, b, c, r: integer; begin repeat writeln('Введите часы'); readln(h); if (h < 0) or (h > 23) then writeln('Неверно введены часы!'); until (h >= 0) and (h <= 23); repeat writeln('Введите минуты'); readln(m); if (m < 0) or (m > 59) then writeln('Неверно введены минуты!'); until (m >= 0) and (m <= 59); if (m < 10) and (h < 10) then writeln('Вы ввели время: 0', h, ':0', m) else if h < 10 then writeln('Вы ввели время: 0', h, ':', m) else if (m < 10) then writeln('Вы ввели время: ', h, ':0', m) else writeln('Вы ввели время: ', h, ':', m); repeat begin inc(m); b := m div 10; c := m mod 10; r := (c * 10) + b; if (m = 0) or (m >= 60) then begin inc(h); if h >= 24 then h := 0; m := 0; if (h = 0) and (m = 0) then break; end; end; until r = h; if m = 0 then writeln('Ближайшее палиндромное время - 0', h, ':0', m) else if h = 20 then writeln('Ближайшее палиндромное время - ', h, ':0', (b * 10) + c) else if (h < 10) then writeln('Ближайшее палиндромное время - 0', h, ':', (b * 10) + c) else if (m <= 10) then writeln('Ближайшее палиндромное время - ', h, ':0', (b * 10) + c) else writeln('Ближайшее палиндромное время - ', h, ':', (b * 10) + c); end.
Объяснение кода листинга программы
- Программа запрашивает у пользователя ввод часов и минут.
- Проверяет корректность ввода часов и минут.
- Выводит введенное время в зависимости от формата ввода.
- Начинается цикл, который прерывается, когда время становится палиндромом.
- В процессе цикла формируется следующее палиндромное время путем изменения последней цифры минут и переключения последней цифры часов на ноль.
- Когда время становится палиндромом, выводится ближайшее палиндромное время.
- Если время 00:00, то выводится сообщение о ближайшем палиндромном времени, которое было введено в процессе цикла.
- Если время не 00:00, то выводится ближайшее палиндромное время, которое было сформировано в процессе цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д