
Вопрос задан 16.03.2021 в 21:16.
Предмет Информатика.
Спрашивает Дорошин Данил.
Дни недели пронумерованы следующим образом 1-понедельник, 2-вторник,3-среда,7-воскресенье.Дано
целое число лежащее в диапазоне от 1 до 365. Определить номер дня недели к-го дня года,если известно, что первое января было вторником.

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

Отвечает Ким Данияр.
В неделе семь дней, поэтому решение выполняется на основе нахождения остатка целочисленного деления от номера дня на 7. Такой остаток находится в пределах от 0 до 6, а для нашей нумерации нужны значения от 1 до 7, поэтому полученный остаток будем увеличивать на единицу. Если 1 января вторник, то есть день недели с номером 2, то первым понедельником будет 7 января, вторым 14 января и т.д. 1 января (k=1) при делении на 7 даст в остатке 1 и при сдвиге остатка на 1 (см. выше), получим 2 (вторник). 7 января даст остаток 0 и после сдвига получим 1 (понедельник), что и требовалось.
1. Современное короткое, эффективное, но требующее определенных знаний решение
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!
begin
var d:='Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье'.ToWords;
Writeln(d[ReadInteger('Введите номер дня') mod 7])
end.
Примеры
Введите номер дня 215
Суббота
Введите номер дня 14
Понедельник
2. Более близкое к приведенному выше алгоритму решение
begin
var n:=ReadInteger('Введите номер дня');
n:=n mod 7+1;
case n of
0:Writeln('Воскресенье');
1:Writeln('Понедельник');
2:Writeln('Вторник');
3:Writeln('Среда');
4:Writeln('Четверг');
5:Writeln('Пятница');
6:Writeln('Суббота')
end
end.
3. Типовое школьное решение
var
n:integer;
begin
Write('Введите номер дня');
Read(n);
n:=n mod 7+1;
case n of
0:Writeln('Воскресенье');
1:Writeln('Понедельник');
2:Writeln('Вторник');
3:Writeln('Среда');
4:Writeln('Четверг');
5:Writeln('Пятница');
6:Writeln('Суббота')
end
end.
1. Современное короткое, эффективное, но требующее определенных знаний решение
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!
begin
var d:='Понедельник Вторник Среда Четверг Пятница Суббота Воскресенье'.ToWords;
Writeln(d[ReadInteger('Введите номер дня') mod 7])
end.
Примеры
Введите номер дня 215
Суббота
Введите номер дня 14
Понедельник
2. Более близкое к приведенному выше алгоритму решение
begin
var n:=ReadInteger('Введите номер дня');
n:=n mod 7+1;
case n of
0:Writeln('Воскресенье');
1:Writeln('Понедельник');
2:Writeln('Вторник');
3:Writeln('Среда');
4:Writeln('Четверг');
5:Writeln('Пятница');
6:Writeln('Суббота')
end
end.
3. Типовое школьное решение
var
n:integer;
begin
Write('Введите номер дня');
Read(n);
n:=n mod 7+1;
case n of
0:Writeln('Воскресенье');
1:Writeln('Понедельник');
2:Writeln('Вторник');
3:Writeln('Среда');
4:Writeln('Четверг');
5:Writeln('Пятница');
6:Writeln('Суббота')
end
end.



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения этой задачи нужно знать, что в невисокосном году в каждом месяце содержится по 28, 30 или 31 дню.
Сначала определим, сколько дней прошло от начала года до данного дня. Если данное число больше 7, мы можем просто найти остаток от деления этого числа на 7, чтобы узнать номер дня недели.
Если данное число меньше или равно 7, то его можно сразу сопоставить с номером дня недели.
Вот код на языке Python, который решает эту задачу:
pythondef номер_дня_недели(день_года):
номер_дня_недели_1_января = 2 # Вторник
if день_года > 7:
номер_дня_недели = (номер_дня_недели_1_января + (день_года - 1) % 7) % 7
else:
номер_дня_недели = номер_дня_года
return номер_дня_недели
день_года = int(input("Введите номер дня года (от 1 до 365): "))
номер_дня_недели = номер_дня_недели(день_года)
print("Номер дня недели:", номер_дня_недели)
Например, если мы введем 33 в качестве номера дня года, то получим следующий вывод:
Номер дня недели: 4
Таким образом, 33-й день года соответствует четвергу.


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