Как решить задачу вымышленным языком программирования?

Пользователь

от ereyuioo14 , в категории: Компьютерные технологии , 2 года назад

Нужно словами в виде вымышленного кода решить задачу.

У человека есть две футболки которые он должен одевать строго через день (например, сегодня черная, а завтра белая) и так весь год. Нужно учесть что в некоторых месяцах 30 дней, а в других 31, и числа 31 и 1 идут подряд. В вымышленном коде нужно использовать и число, и месяц. А так же не забыть о нюансах календаря.

Facebook Vk Ok Twitter Telegram Whatsapp

1 ответ

Пользователь

от amara , 2 года назад

@ereyuioo14 Для решения этой задачи можно использовать следующий вымышленный код на языке Python:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import datetime


# задаем начальные данные
black_shirt = True # черная футболка
start_date = datetime.date(2023, 3, 8) # начальная дата (сегодня)


# определяем количество дней в каждом месяце
month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]


# перебираем все дни в году
for i in range(365):
    # проверяем, нужно ли поменять футболку
    if (i % 2 == 0 and not black_shirt) or (i % 2 == 1 and black_shirt):
        black_shirt = not black_shirt
    # выводим дату и цвет футболки
    print(start_date.strftime("%d.%m.%Y"), " - черная" if black_shirt else " - белая")
    # переходим к следующему дню
    start_date += datetime.timedelta(days=1)
    # проверяем, нужно ли изменить количество дней в текущем месяце
    if start_date.month == 2 and start_date.year % 4 == 0:
        month_days[1] = 29
    else:
        month_days[1] = 28
    if start_date.day == month_days[start_date.month - 1]:
        if start_date.month == 12:
            start_date = datetime.date(start_date.year + 1, 1, 1)
        else:
            start_date = datetime.date(start_date.year, start_date.month + 1, 1)

В этом коде мы сначала импортируем модуль datetime, который позволяет работать с датами и временем в Python. Затем мы задаем начальные данные: black_shirt равна True, то есть начинаем с черной футболки, а start_date равна текущей дате (8 марта 2023 года).


Далее мы создаем список month_days, в котором указываем количество дней в каждом месяце. Затем мы перебираем все дни в году с помощью цикла for, проверяем, нужно ли поменять футболку (если текущий день четный, то должна быть черная футболка, если нечетный - белая), выводим дату и цвет футболки, и переходим к следующему дню с помощью метода timedelta модуля datetime.


После этого мы проверяем, нужно ли изменить количество дней в текущем месяце (например, в феврале может быть 28 или 29 дней в зависимости от года), и если текущий день является последним днем месяца, то переходим к следующему месяцу или году