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

Задание № 6: Напишите функцию output(year), которая для заданного года year (тип int) возвращает чего было больше воскресений или сред в этом году. Функция должна выдавать: 0 - если было больше воскресений; 1 - если больше сред; 2 - если количество воскресений такое же, как и количество сред.

Задание № 7:

В библиотеке переучет каждый третий четверг месяца. Напишите функцию output(date), которая по заданной дате date (тип datetime.date) возвращает количество дней до следующего переучета.

Забыл написать это если что Питон.

Показать ответ
Ответ:
hromovaysoydwfz
hromovaysoydwfz
28.06.2021 19:22

def output(year): #начало функции output

   import datetime

   ans = datetime.date(year, 1, 1).strftime("%a") #выдаст название первого дня недели (за то что там в скобочках один один)

   print('отладочная информация')

   print('первый день недели',ans)

   #определяем колво дней которых нужно дождаться до среды

   if (ans == "Mon") : s = 2 #Пон

   elif (ans == "Tue") : s = 1 #Втор

   elif (ans == "Wed") : s = 0 #Среда

   elif (ans == "Thu") : s = 6

   elif (ans == "Fri") : s = 5

   elif (ans == "Sub") : s = 4

   elif (ans == "Sun") : s = 3

   print ('до среды осталось',s,'дней')

   #определяем колводней нужных до воскресенья

   if (ans == "Mon") : z = 6 #Пон

   elif (ans == "Tue") : z = 5 #Втор

   elif (ans == "Wed") : z = 4 #Сред

   elif (ans == "Thu") : z = 3

   elif (ans == "Fri") : z = 2

   elif (ans == "Sub") : z = 1

   elif (ans == "Sun") : z = 0 #Воскресенье

   print ('до воскресенья осталось',z,'дней')

   #Определяем високостный год

   if (year % 4 == 0) : leapyear=366 #366 дней

   else:  leapyear=365 #365 дней

   print ('всего дней в году ',leapyear)

   print ('сред ', (leapyear-s)//7)

   print ('воскр ',(leapyear-z)//7)  

   print('')

   #считаем и выводим итог

   if (((leapyear-z) // 7) > ((leapyear-s)//7)) : print ('результат 0') #делим на 7 (это промежуток между повтором дня недели) а дробное число отбрасываем далее сравниваем больше ли воскресений

   elif (((leapyear-z) // 7) < ((leapyear-s)//7)) : print ('результат 1') #делим на 7 (это промежуток между повтором дня недели) а дробное число отбрасываем далее сравниваем больше ли сред

   elif (((leapyear-z) // 7) == ((leapyear-s)//7)) : print ('результат 2') #делим на 7 (это промежуток между повтором дня недели) а дробное число отбрасываем далее сравниваем равенство ли

   else: print ('какаято ошибка')

   

   

output(2015) #запускаем функцию output(с2015годом) работает от 1 до 9999, разные результы у 2014,2015,2017

Объяснение:

план такой: определяем первое число года первого месяца падает на какой день  недели отсчитываем сколько дней нужно ждать до среды и отдельно до воскресенья  далее выяснив сколько дней в году у нас есть минусуем их прожданными днями до  первой среды и получившийся остаток дней так как мы на первой среде делим на  промежуток в семь дней до следующей среды и выясняем сколько этих сред таким  образом будет а дробный остаток выкидываем команда посчитать без остатка сразу  это // например 366 // 7 = итог целое колво дней без кусочков но это если первый  день сразу нужный попадется правда а теперь тоже самое дело для воскресений  сколько до перв. воскр. прождали вычтеным из нашего запаса дней оставшихся  до конца года пока ждали этого воскр. и делим узнаем колво воскресений в году  так между ними всегда 7 дней же промежуток кажись. Теперь воплощаем план

отдельное за приёмы как писать которые сильно крайне даже это задание этим людям из интернета мне не известных в точности за (year %4 ==0) и как им пользоватся чтобы високостный узнать и за datetime.date(year, 1, 1).strftime("%a") вот эта болеее всех и задание который выводит название дня недели от числа введеного

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота