Определить по времени установки пирога в духовку время, когда будет подходящее время для его извлечения - 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.

Объяснение кода листинга программы

  1. Программа запрашивает у пользователя ввод часов и минут.
  2. Проверяет корректность ввода часов и минут.
  3. Выводит введенное время в зависимости от формата ввода.
  4. Начинается цикл, который прерывается, когда время становится палиндромом.
  5. В процессе цикла формируется следующее палиндромное время путем изменения последней цифры минут и переключения последней цифры часов на ноль.
  6. Когда время становится палиндромом, выводится ближайшее палиндромное время.
  7. Если время 00:00, то выводится сообщение о ближайшем палиндромном времени, которое было введено в процессе цикла.
  8. Если время не 00:00, то выводится ближайшее палиндромное время, которое было сформировано в процессе цикла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.444 из 5
Похожие ответы