Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3564419
А
Аноним
10 февраля 2026 12:27 · публичный вопрос
А
Аноним

Напиши программу для суммирования цен товаров, введённых с клавиатуры. Создай цикл: «пока» не будет введено с клавиатуры «нет». Внутри цикла организуй ввод значений с клавиатуры и…

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

Напиши программу для суммирования цен товаров, введённых с клавиатуры. Создай цикл: «пока» не будет введено с клавиатуры «нет». Внутри цикла организуй ввод значений с клавиатуры и их суммирования. Выведи результат на экран.

Ответ нейросети
10 февраля 2026 12:27

Ниже подробное решение с объяснениями и примером кода на Python. Задача понятна: вводить цены до тех пор, пока пользователь не введет слово «нет», суммировать все введённые значения и вывести итог.

Пояснение к алгоритму

  • Инициализируем сумму как Decimal('0.00') для точности расчётов с валютой.
  • В бесконечном цикле запрашиваем ввод пользователя.
  • Если введено 'нет' (регистр неважен), выходим из цикла.
  • Приводим запрошенное значение к числу: заменяем запятую на точку (на случай, что введено 12,34), пытаемся преобразовать в Decimal.
  • При успешном преобразовании добавляем цену к сумме; при ошибке ввода показываем сообщение об ошибке и продолжаем цикл.
  • После выхода из цикла печатаем итог с двумя знаками после запятой.

Пример кода (Python 3.x)

from decimal import Decimal, InvalidOperation

def main():
    total = Decimal('0.00')
    print("Введите цену товара. Введите 'нет' для завершения.")
    while True:
        s = input("Цена: ").strip()
        if s.lower() == 'нет':
            break

        # поддержка как точек, так и запятых в десятичных дробях
        s = s.replace(',', '.')

        try:
            price = Decimal(s)
        except InvalidOperation:
            print("Ошибка: введите числовое значение или 'нет' для выхода.")
            continue

        total += price

    print(f"Итого: {total:.2f}")

if __name__ == "__main__":
    main()

Пояснения к коду

  • Decimal используется для корректного суммирования денежных значений без ошибок округления, которые могут возникнуть при работе с float.
  • s.lower() == 'нет' обеспечивает корректное завершение независимо от регистра.
  • Замена запятой на точку позволяет воспринимать числа как 12,50 или 12.50.
  • При некорректном вводе (например, текст) программа выводит сообщение об ошибке и продолжает работу.

Если нужно доработать под конкретный язык программирования (например, Java, C++, или сделать упрощённую версию на float), скажите — подготовлю варианты.