Найти два года, календари которых будет идентичными - Free Pascal

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

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

У Кати был календарик на x год. Этот год закончился, поэтому она хотела выбросить календарик. Но затем подумала, что он может еще пригодится - ведь возможно через несколько лет наступит год, для которого полностью подходит календарь на X год. Найти ближайший такой год

Решение задачи: «Найти два года, календари которых будет идентичными»

textual
Листинг программы
Uses sysutils;
var
  p:word;
  i:byte=0;
begin
  write('Start year : ');
  readln(p);
  repeat
  inc (i);
  until (dayofweek(StrToDate('01.01.'+inttostr(p)))=dayofweek(StrToDate('01.01.'+inttostr(p+i))))
    and (dayofweek(StrToDate('31.12.'+inttostr(p)))=dayofweek(StrToDate('31.12.'+inttostr(p+i))));
  writeln(p+i);
  readln;
end.

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

  1. Импортируется модуль sysutils.
  2. Объявляется переменная p типа word для хранения числа.
  3. Объявляется переменная i типа byte и инициализируется значением 0.
  4. Выводится запрос на ввод начальной даты в формате Start year :.
  5. Считывается введенное значение в переменную p.
  6. Запускается цикл repeat, который будет выполняться до тех пор, пока условие не станет ложным.
  7. Условие: день недели текущей даты (полученной из строки '01.01.'+inttostr(p)) совпадает с днем недели следующей даты (полученной из строки '01.01.'+inttostr(p+i)).
  8. Если условие выполняется, значение переменной i увеличивается на 1.
  9. Значение переменной i используется для получения следующей даты из текущей (например, для года 2022 это будет 2023).
  10. Проверяется, совпадают ли дни недели текущей даты (полученной из строки '31.12.'+inttostr(p)) и следующей даты (полученной из строки '31.12.'+inttostr(p+i))).
  11. Если условие выполняется, значение переменной i увеличивается на 1.
  12. После выхода из цикла repeat, выводится значение переменной p+i.
  13. Программа ожидает ввода пользователя, чтобы перейти к следующему шагу.
  14. Цикл while true, который ожидает ввода пользователя и повторяет шаги с 4 по 13.

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


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

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

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