Определить по времени установки пирога в духовку время, когда будет подходящее время для его извлечения - 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, то выводится ближайшее палиндромное время, которое было сформировано в процессе цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д