С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 14.12.2024
Сообщений: 1

Проверка чека

14.12.2024, 19:51. Показов 1011. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите программу, которая проверяет чек из магазина. На чеке указано, по каким ценам и в каком количестве куплены товары, общая стоимость данного товара (т. е. данной позиции в чеке), а также суммарная итоговая стоимость. Конечно, по цене и количеству можно узнать стоимость, и суммарную стоимость тоже можно рассчитать. Программа должна проверить, правильно ли рассчитана стоимость каждой позиции и правильно ли рассчитана общая сумма, и если присутствуют ошибки, то указать, где именно.

На первой строке записано количество позиций
N (оно меньше 1000 и дополнено справа пробелами, чтобы достигнуть длины в 4 символа) и общая сумма (целое число).
Далее следует
N позиций чека, каждая из которых записана на отдельной строке и соответствует покупке нескольких единиц некоторого товара.
Сначала записана цена товара (она дополнена справа пробелами до 7 символов), затем знак «*», затем количество этих товаров (оно дополнено справа пробелами до 4 символов), затем знак «=», затем стоимость данной позиции.

Нужно вывести разность между указанной итоговой суммой и истинной суммой стоимостей по всем позициям.

Далее нужно вывести в порядке возрастания номера всех позиций (нумерация с 1), в которых указанная стоимость расходится со стоимостью, которую можно рассчитать из цены и количества товара.

Ввод Вывод
3 3144 0
15 *3 =45
100 *1 =100
2999 *1 =2999


Ввод Вывод
3 2300 58
99 *2 =199 1 3
20 *100 =2000
11 *4 =55


У меня уже есть рабочий код но на первом примере он почему крашится и выводит 144

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
a = input()
z = 0
v = 0
m = 0
m_1 = []
for i in range(int(a[0:3])):
    b = input()
    m += 1
    c = int(b[0:6]) * int(b[8:12])
    if c == int(b[13:17]):
        v += 1
    elif c != int(b[13:17]):
        z += c
        m_1.append(m)
g = int(a[5:9]) - z
if z == int(a[5:9]):
    v += 1
else:
    if g > 0:
        print(int(a[5:9]) - z)
        for j in range(len(m_1)):
            print(m_1[j], end=' ')
    else:
        print('0')
(код)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.12.2024, 19:51
Ответы с готовыми решениями:

Проверка чека
Напишите программу, которая проверяет чек из магазина. На чеке указано, по каким ценам и в каком количестве куплены товары, общая стоимость...

Создание чека
Требуется помощь с заданием.По заданию требуется: Посчитать лимит символов для левой части Если левая часть меньше лимита символов,...

Разметка чека
Помогите пожалуйста с заданием, ибо не могу понять как мне это сделать.Либо же буду благодарен объяснению как это можно сделать. Нужно...

2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
19.12.2024, 20:22
Python
1
2
3
4
5
6
7
8
9
10
11
n, expected = map(int, input().split())
total = 0
wrongs = []
for n in range(1, n + 1):
    xy, answer = input().split('=')
    x, y = map(int, xy.split('*'))
    if x * y != int(answer):
        wrongs.append(n)
    total += x * y
print(expected - total)
print(*wrongs)
1
 Аватар для Excalibra
5 / 3 / 2
Регистрация: 21.11.2024
Сообщений: 10
Записей в блоге: 1
21.12.2024, 04:38
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
a = input().strip()
n, total_sum = map(int, a.split())  # Парсим количество позиций и итоговую сумму
z = 0  # Ошибки в расчетах
m_1 = []  # Позиции с ошибками
 
# Обрабатываем каждую позицию чека
for m in range(1, n + 1):
    b = input().strip()
    price, quantity, total = b.split(" *")  # Разделяем цену, количество и итоговую стоимость
    quantity, total = total.split(" =")  # Разделяем количество и итоговую стоимость
    price, quantity, total = int(price), int(quantity), int(total)
 
    # Рассчитываем стоимость позиции
    calculated_total = price * quantity
    if calculated_total != total:  # Проверяем, совпадает ли расчетная стоимость с указанной
        z += calculated_total  # Добавляем ошибку в расчет
        m_1.append(m)  # Добавляем номер позиции с ошибкой
 
# Вычисляем разницу между указанной итоговой суммой и реальной
difference = total_sum - z
if difference == 0:
    print(0)  # Если все суммы верные, выводим 0
else:
    print(difference)  # Выводим разницу между указанной и реальной суммой
    print(*m_1)  # Выводим номера позиций с ошибками
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.12.2024, 04:38
Помогаю со студенческими работами здесь

Украшение чека
Давайте приведём в порядок чек, который печатали ранее. Все строки должны быть длиной в 35 символов. Формат ввода Название товара;...

Средняя цена чека и определение товаров по цене
Напишите программу, считающую среднюю цену товаров по данным из чеков. Чеки вводятся с клавиатуры, их количество может быть любым (не...

XML файл чека продажи по XSD схеме
Поступило задание на создание XML файл чека продажи по XSD схеме. Честно сказать, я ещё не имел дела с XSD. Не прошу решить всё за меня, но...

Чтение прокси из файла для чека заголовков http
Доброго времени суток! Помогите пожалуйста решить такое: Нужно циклом прочитать прокси для чека заголовков http из файла: вот...

Подсчитать дневную прибыль магазина и сумму среднего пользовательского чека
Магазин обслужил за день 200 покупателей, каждый из которых потратил на покупки не больше 1000 грн. Подсчитать дневную прибыль магазина и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru