Найти два года, календари которых будет идентичными - 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.
Объяснение кода листинга программы
- Импортируется модуль sysutils.
- Объявляется переменная p типа word для хранения числа.
- Объявляется переменная i типа byte и инициализируется значением 0.
- Выводится запрос на ввод начальной даты в формате
Start year :
. - Считывается введенное значение в переменную p.
- Запускается цикл repeat, который будет выполняться до тех пор, пока условие не станет ложным.
- Условие: день недели текущей даты (полученной из строки '01.01.'+inttostr(p)) совпадает с днем недели следующей даты (полученной из строки '01.01.'+inttostr(p+i)).
- Если условие выполняется, значение переменной i увеличивается на 1.
- Значение переменной i используется для получения следующей даты из текущей (например, для года 2022 это будет 2023).
- Проверяется, совпадают ли дни недели текущей даты (полученной из строки '31.12.'+inttostr(p)) и следующей даты (полученной из строки '31.12.'+inttostr(p+i))).
- Если условие выполняется, значение переменной i увеличивается на 1.
- После выхода из цикла repeat, выводится значение переменной p+i.
- Программа ожидает ввода пользователя, чтобы перейти к следующему шагу.
- Цикл while true, который ожидает ввода пользователя и повторяет шаги с 4 по 13.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д