Вопрос задан 03.11.2023 в 17:21. Предмет Информатика. Спрашивает Ленков Олег.

Напишите программу нахождения дня недели по номеру дня в ноябре текущего года в паскаль (60 баллов)

0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Филин Дмитрий.

var

 d:integer;

begin

//Ноябрь 2021г.

 write('Введите число(1..30): '); readln(d);

 case d mod 7 of  

   1: write('Пн');

   2: write('Вт');

   3: write('Ср');

   4: write('Чт');

   5: write('Пт');

   6: write('Сб');

   else write('Вс')

 end;

end.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи вам понадобится использовать алгоритм Zeller для вычисления дня недели. Этот алгоритм основан на свойствах календаря и может быть реализован на любом языке программирования, включая Pascal.

Вот шаги, которые вам нужно выполнить:

1. Определите переменные для дня, месяца и года. В данном случае, день будет введен пользователем, а месяц и год будут текущими.

2. Используйте алгоритм Zeller для вычисления дня недели. Этот алгоритм выглядит следующим образом:

- Если месяц равен 1 (январь), 2 (февраль) или 12 (декабрь), то уменьшите его на 1 и увеличьте год на 1. - Если месяц равен 3 (март), 4 (апрель), 5 (май), 6 (июнь), 7 (июль), 8 (август), 9 (сентябрь) или 10 (октябрь), то не меняйте их. - Если месяц равен 11 (ноябрь), то установите его в 12 и установите год в предыдущий.

3. Вычислите х (h) по формуле: h = (q + [13(m+1)/5] + K + [K/4] + [J/4] - 2J) mod 7, где: - q - это день месяца, - m - это месяц, - K - это год, если он не високосный, и K - 1, если он високосный, - J - это год, если он не високосный, и J - 1, если он високосный.

4. Если h равен 0, то день недели - суббота. Если h равен 1, то день недели - воскресенье. Если h равен 2, то день недели - пятница, и так далее.

Вот пример кода на Pascal, который реализует этот алгоритм:

```pascal program DayOfWeek; var day, month, year, h, K, J: integer; begin writeln('Введите номер дня в ноябре:'); readln(day); month := 11; year := 2023; if (year mod 4 = 0) and (year mod 100 <> 0) or (year mod 400 = 0) then K := 1 else K := 2; J := year; if month < 3 then begin month := month + 12; year := year - 1; end; h := (day + [13 * (month + 1) / 5] + K + [K / 4] + [J / 4] - 2 * J) mod 7; case h of 0: writeln('Суббота'); 1: writeln('Воскресенье'); 2: writeln('Понедельник'); 3: writeln('Вторник'); 4: writeln('Среда'); 5: writeln('Четверг'); 6: writeln('Пятница'); end; end. ```

Этот код сначала запрашивает у пользователя номер дня в ноябре. Затем он вычисляет год K и J. Если месяц меньше 3, то он увеличивается на 12, и год уменьшается на 1. Затем вычисляется h по формуле алгоритма Zeller. Наконец, код выводит день недели, соответствующий значению h.

0 0

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

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос