
Напишите задачу на Pascal Иван Петрович взял отпуск продолжительностью n дней. Первый день
отпуска выпадает на день недели под номером d (1 — понедельник, 2 — вторник, ..., 7 — воскресенье). Иван Петрович любит ездить отдыхать на Кипр. Но вылеты на Кипр из его родного города есть только по понедельникам, а обратно — только по воскресеньям. Иван Петрович хочет понять, какое максимальное количество недель он сможет провести на Кипре в свой отпуск (день прилёта и день обратного вылета Иван Петрович считает днями, проведёнными на Кипре). Помогите ему вычислить это.Входные данныеВ первой строке входных данных записано целое число n (1 ≤ n ≤ 109) — продолжительность отпуска. Во второй строке записано целое число — d (1 ≤ d ≤ 7) — номер дня недели первого дня отпуска.Выходные данныеТребуется вывести одно целое число — количество недель, которое Иван Петрович проведёт на Кипре.Система оценкиРешения, работающие верно при n ≤ 1000, будут оцениваться в 60 баллов.ПримерыВводВыводПояснение1412Отпуск продолжается 14 дней и начинается в понедельник. Поэтому Иван Петрович улетит на Кипр в первый день и вернётся в 14-й день, продолжительность пребывания на Кипре составит две недели.1731Отпуск начинается в среду. Ближайший понедельник будет 6-м днём отпуска. Ивану Петровичу придётся вернуться в воскресенье, которое будет 12-м днём отпуска. Следующее воскресенье будет 19-м днём отпуска, а продолжительность отпуска только 17 дней. Поэтому на Кипре Иван Петрович проведёт всего лишь одну неделю.

Ответы на вопрос

var
d,count,n:integer;
begin
repeat
readln(n);
until (n>=1) and (n<=109);
repeat
readln(d);
until (d>=1) and (d<=7);
if d<>1 then
n:=n-(8-d);
count:=n div 7;
writeln(count);
end.



Давайте напишем программу на Pascal, которая решает данную задачу:
```pascal program VacationOnCyprus;
var n, d, weeksOnCyprus: integer;
begin // Ввод данных write('Введите продолжительность отпуска (n): '); readln(n);
write('Введите номер дня недели первого дня отпуска (d): '); readln(d);
// Вычисление количества недель, которое Иван Петрович проведет на Кипре weeksOnCyprus := n div 7; // полные недели
// Проверка оставшихся дней отпуска после полных недель if n mod 7 > 0 then begin // Вычисление последней недели if (d + n - 1) mod 7 >= 1 then weeksOnCyprus := weeksOnCyprus + 1; end;
// Вывод результата writeln('Иван Петрович проведет на Кипре ', weeksOnCyprus, ' недель.'); end. ```
Объяснение:
1. Программа запрашивает у пользователя продолжительность отпуска (`n`) и номер дня недели первого дня отпуска (`d`). 2. Вычисляется количество полных недель (`weeksOnCyprus := n div 7`). 3. Проверяется, есть ли оставшиеся дни после полных недель. Если да, то проверяется, попадает ли последний день отпуска на неполный недельный цикл. 4. Если последний день отпуска попадает на неполный недельный цикл, то добавляется еще одна неделя. 5. Выводится результат.
Таким образом, программа решает задачу и определяет, сколько недель Иван Петрович проведет на Кипре.


Похожие вопросы







Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili