Определить по времени установки пирога в духовку время, когда будет подходящее время для его извлечения - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Пекарь считает, что для получения рождественского пирога идеальной симетричной формы его нужно вынимать из духовки в тот момент, когда часы показывают «палиндромное» время, которое читается одинаково слева-направо и справа-налево. Напишите программу, которая определяет по времени установки пирога в духовку время, когда будет подходящее время для его извлечения. Входные данные В единственной строке входного файла INPUT.TXT записано время установки пирога в духовку в формате HH:MM (00 ≤ HH ≤ 23, 00 ≤ MM ≤ 59). Выходные данные В единственную строку выходного файла OUTPUT.TXT нужно вывести ближайшее «палиндромное» время в формате HH:MM.

Решение задачи: «Определить по времени установки пирога в духовку время, когда будет подходящее время для его извлечения»

textual
Листинг программы
  1. program palindromic_time;
  2.  
  3.  
  4.  
  5. var
  6.  
  7.   h, m, b, c, r: integer;
  8.  
  9.  
  10.  
  11. begin
  12.   repeat
  13.     writeln('Введите часы');
  14.     readln(h);
  15.     if (h < 0) or (h > 23) then
  16.       writeln('Неверно введены часы!');
  17.   until (h >= 0) and (h <= 23);
  18.   repeat
  19.     writeln('Введите минуты');
  20.     readln(m);
  21.     if (m < 0) or (m > 59) then
  22.       writeln('Неверно введены минуты!');
  23.   until (m >= 0) and (m <= 59);
  24.  
  25.  
  26. if (m < 10) and (h < 10) then
  27.      writeln('Вы ввели время: 0', h, ':0', m)
  28. else
  29.   if h < 10 then
  30.     writeln('Вы ввели время: 0', h, ':', m)
  31.  else
  32.   if (m < 10) then
  33.      writeln('Вы ввели время: ', h, ':0', m)
  34.  
  35.  
  36.   else
  37.     writeln('Вы ввели время: ', h, ':', m);
  38.   repeat
  39.     begin
  40.      
  41.       inc(m);
  42.       b := m div 10;
  43.       c := m mod 10;
  44.       r := (c * 10) + b;
  45.       if (m = 0) or (m >= 60) then
  46.       begin
  47.         inc(h);
  48.         if h >= 24 then h := 0;
  49.         m := 0;
  50.         if (h = 0) and (m = 0) then break;
  51.       end;
  52.      
  53.     end;
  54.    
  55.   until r = h;
  56.  
  57.   if m = 0 then
  58.     writeln('Ближайшее палиндромное время - 0', h, ':0', m)
  59. else
  60.   if h = 20 then
  61.     writeln('Ближайшее палиндромное время - ', h, ':0', (b * 10) + c)
  62. else
  63.   if (h < 10) then
  64.      writeln('Ближайшее палиндромное время - 0', h, ':', (b * 10) + c)
  65. else
  66.   if (m <= 10) then
  67.     writeln('Ближайшее палиндромное время - ', h, ':0', (b * 10) + c)
  68.   else
  69.     writeln('Ближайшее палиндромное время - ', h, ':', (b * 10) + c);
  70.  
  71.  
  72. end.

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

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

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


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

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

9   голосов , оценка 4.444 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы