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

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

14.12.2024, 19:51. Показов 1045. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru