Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3297838
А
Аноним
10 июля 2025 23:15 · публичный вопрос
А
Аноним

Проверить код товара на свежесть. Необходимо написать программу, которая будет проверять свежесть продукта по его штрих-коду. Определить, какие индексы отвечают за год, и с…

Запрос пользователя

Проверить код товара на свежесть. Необходимо написать программу, которая будет проверять свежесть продукта по его штрих-коду. Определить, какие индексы отвечают за год, и с помощью срезов сравнить их с текущим годом. Если год 2025 или больше - товар свежий, если меньше - срок годности истёк: 101202545 105202244 509202435 001202609 нужно этот срез сравнить с текущим годом, если он 2025 или больше - вывести продукт годен, если нет - срок годности истёк

Ответ нейросети
10 июля 2025 23:15

Давайте по шагам разберем, как решить задачу и написать программу для проверки свежести продукта по штрих-коду.

Что нужно сделать:

  1. Иметь список штрих-кодов.
  2. В каждом штрих-коде определить, какие индексы отвечают за год.
  3. Извлечь эти символы и преобразовать их в число.
  4. Сравнить полученный год с текущим годом (предположим, что текущий год — 2023).
  5. Вывести, годен ли продукт или срок истёк.

Анализ задачи:

  • У нас есть несколько штрих-кодов:

    101202545
    105202244
    509202435
    001202609
    
  • В этих кодах по образцу видно, что год, судя по всему, — это две цифры, которые начинаются с "20" и находятся в определенной позиции.

    Посмотрим внимательнее на каждый код:

    Код Позиции (индексы) Значения фрагмента Что означает?
    101202545 3 и 4 (нумерация с 0) "20" Вероятно, год "20" + следующая цифра
    105202244 3 и 4 "20"
    509202435 3 и 4 "20"
    001202609 3 и 4 "20"

Посмотрев три первых кода, можно заметить, что в позициях 3 и 4 идет "20", что указывает на год 20xx. Значит, вероятно, в позиции 2 и 3 (0-индексация) находится год в формате "20" + следующая цифра.

Но в наших кодах, похоже, что год — это два символа, начинающихся с "20", и стоит взять их из определенной позиции.

Если отметить позиции:

  • В первом коде (101202545): 0 1 1 2 0 2 5 4 5
    Индексы: 0 1 2 3 4 5 6 7 8

    Тогда, если брать символы с 2 и 3: 1 и 2 — не "20".
    Но если смотреть на позиции 2 и 3: это "1" и "2".

    Или, скорее всего, лучше взять символы с 4 и 5: это "0" и "2" — получим "02" (2002).

    Проверим для других кодов:

  • 105202244: индекс 4 и 5: символы "0" и "2" — уточнение: "20"

  • 509202435: индексы 4 и 5: "0" и "2"

  • 001202609: индексы 4 и 5 тоже: "0" и "2"

Значит, что год закодирован на позициях 4 и 5 всей строки, то есть:

  • Код: 101202545
    Индексы:0 1 1 2 0 2 5 4 5
    Год: символы с 4 и 5: "0" и "2" → образование "20"

Таким образом, для всех штрих-кодов, чтобы получить год продукта, нужно взять символы с позиций 4 и 5.


Реализация:

  1. Извлечем эти два символа.
  2. Преобразуем их в число (например, "20" → 2020).
  3. Сравним с текущим годом — 2023.

Код решения на Python:

# Список штрих-кодов
barcodes = [
    "101202545",
    "105202244",
    "509202435",
    "001202609"
]

import datetime

# Получить текущий год
current_year = datetime.datetime.now().year

for code in barcodes:
    # Извлекаем год из позиций 4 и 5 (индексы 4 and 5)
    year_str = code[4:6]
    # Преобразуем в число
    year = int("20" + year_str)
    
    # Проверка свежести
    if year >= 2025:
        print(f"Код {code}: продукт годен (год {year})")
    else:
        print(f"Код {code}: срок годности истёк (год {year})")

Итог:

  • Мы берем две символа с индексов 4 и 5.
  • Преобразуем их в полный год (добавляя "20" спереди).
  • Сравниваем с 2025.
  • Выводим результат.

Если нужно, я могу помочь адаптировать код под конкретную задачу или сделать его более универсальным!