Добро пожаловать в раздел "Практикум по основам программирования"

сайта "Try Objective-c - программирование для начинающих"!

  В данном разделе приводятся практические примеры программирования на разных языках программирования: на Python, на языке С, на Objective-c

  Поскольку уроки программирования представленные на этом сайте предназначены для людей ранее не сталкивающихся с программированием вообще, то и материал публикуемый здесь дается с самого начала как "программирование для чайников" - простыми примерами и пояснениями.

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

  В этом случае обучение программированию будет не таким трудоемким и доставит вам только положительные эмоции!

» » Практикум: расчет сдачи с покупки

Категория:

Информация к новости
  • Просмотров: 6925
  • Автор: Midav
  • Дата: 6-11-2012, 01:26
6-11-2012, 01:26

Практикум: расчет сдачи с покупки



Быстрая навигация:
В практикуме 1.20 Практикум - Оператор условия if. Часть 2 была поставлена задача по составлению программы для расчета сдачи с купюры в 1000 рублей для расчета сдачи: какими купюрами и сколько надо сдать покупателю сдачи...

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

Повторим условие задачи полностью:

Необходимо написать код программы про расчету сдачи с денежной купюры при расчете на кассе за произведенную покупку.
- Вы приобрели товар на некую сумму.
- Вы дали кассиру купюру, к примеру, в 1000 рублей.
- Кассир должен сдать вам сдачу с данной купюры.


Необходимо подсчитать и вывести на печать следующие данные:
- сколько вы получите купюр достоинством 500 рублей
- сколько вы получите купюр достоинством 100 рублей
- сколько вы получите купюр достоинством 50 рублей
- сколько вы получите купюр достоинством 10 рублей
- произвести вывод данных в отформатированном виде


Подсказка для решения данной задачи:
Нужно использовать:
- деление на цело
- остаток от деления на цело


Вывести результат на экран монитора в отформатированном виде:
Ваша сдача составляет:
- купюр по 500 руб:
- купюр по 100 руб:
- купюр по 50 руб:
- купюр по 10 руб:
- мелочи по 1 руб:


Один из вариантов решения задачи:

Что нам известно?
- номинал купюры, которую мы дали кассиру: 1000 руб
kupyura = 1000


- мы знаем сумму покупки, например - 36 рублей
pokupka = 36


- мы знаем сумму сдачи, которая рассчитывается так:
sdacha = kupyura - pokupka


Нам необходимо выяснить сколько 500 рублевых купюр "Вмещается" в сдачу.
Для этого используем деление на цело:
rub500 = sdacha // 500


Переменной sdacha присваиваем остаток от деления на цело, т.е. ту часть, которая осталась от целочисленного деления после предыдущего шага.
sdacha = sdacha % 500 # остаток от деления на цело - останется только часть от целого


Повторяем проверку целочисленного деления на 100 как в в случае с 500 рублевой купюрой но только для проверки того, сколько в данную сдачу "помещается" 100 рублевых купюр:
rub100 = sdacha // 100


Переменной sdacha присваиваем остаток от целочисленного деления:
sdacha = sdacha % 100


Повторяем предыдущие шаги для 50-ти и 10-ти рублевых купюр.
rub50 = sdacha // 50
sdacha = sdacha % 50

rub10 = sdacha // 10
sdacha = sdacha % 10


В конце вычислений в переменной sdacha хранится значение показывающее сколько осталось "мелочи" в нашей сдаче по рублю.

Выводим полученные данные на печать через функцию print()
Помните о форматировании выводимого текста!
print("Ваша сдача составляет:\n- купюр по 500 руб: ", rub500,"\n- купюр по 100 руб: ", rub100,"\n- купюр по 50 руб: ", rub50,"\n- купюр по 10 руб: ", rub10,"\n- мелочи по 1 руб: ", sdacha)


Вот полный код программы:
kupyura = 1000 # здесь используете размер купюры
pokupka = 36 # здесь  пишите сумму покупки
sdacha = kupyura - pokupka

rub500 = sdacha // 500
sdacha = sdacha % 500 

rub100 = sdacha // 100
sdacha = sdacha % 100

rub50 = sdacha // 50
sdacha = sdacha % 50

rub10 = sdacha // 10
sdacha = sdacha % 10

print("Ваша сдача составляет:\n- купюр по 500 руб: ", rub500,"\n- купюр по 100 руб: ", rub100,"\n- купюр по 50 руб: ", rub50,"\n- купюр по 10 руб: ", rub10,"\n- мелочи по 1 руб: ", sdacha)



Произведите модификацию программы:
- взять в расчет, что вы даете кассиру 5000 рублевую купюру. Для этого необходимо дополнительно вывести на печать количество купюр достоинством 1000 рублей, которые вы получите в качестве сдачи
- дополнительно вывести на печать сумму покупки
- вывести на печать размер купюры которую вы дали кассиру.

Дополнительно:
- произведите запрос у пользователя сумму денег, которые он передал кассиру
- произведите запрос у пользователя сумму покупки




Вариант вывода на печать:


Дополнительное задание:
Оформите данную программу в виде отдельного файла как мы это делали в прошлом практикуме и проверьте его работоспособность.

Еще один вариант данной программы с использованием оператора условия if
Он показан в качестве примера того, что поставленную задачу можно решить разными способами, пусть и не самыми изящными...
Полагаю что алгоритм данного кода вам будет понятен...
Попробуйте "прочитать" его и понять как он работает.
pokupka = int(input("Введите стоимость покупки: "))
deneg = int(input("Введите сумму переданную кассиру: "))
sdacha = deneg - pokupka

kol_500 = sdacha // 500 # проверка на целочисленное деление на 500
kol_500_ostatok = sdacha % 500  # расчет остатка от деления на 500
if (kol_500>=1):  # если результат целочисленного деления больше либо равно 1, то выводим на печать данные
	print("Количество купюр достоинством 500 руб составляет - ", kol_500)

kol_100 = kol_500_ostatok // 100
kol_100_ostatok = kol_500_ostatok % 100
if (kol_100>=1):
	print("Количество купюр достоинством 100 руб составляет - ", kol_100)

kol_50 = kol_100_ostatok // 50
kol_50_ostatok = kol_100_ostatok % 50
if (kol_50>=1):
	print("Количество купюр достоинством 50 руб составляет - ", kol_50)

kol_10 = kol_50_ostatok // 10
kol_10_ostatok = kol_50_ostatok % 10
if (kol_10>=1):
	print("Количество купюр достоинством 10 руб составляет - ", kol_10)
	print("\nКоличество мелочи составляет - ", kol_10_ostatok, "руб.")

print("Вы дали кассиру -  ", deneg, " руб.\nСтоимость покупки составляет - ", pokupka, " руб.\nВаша сдача - ", sdacha, " руб.\n")


В данном случае на печать будет выведено:
Введите стоимость покупки: 36
Введите сумму переданную кассиру: 1000
Количество купюр достоинством 500 руб составляет - 1
Количество купюр достоинством 100 руб составляет - 4
Количество купюр достоинством 50 руб составляет - 1
Количество купюр достоинством 10 руб составляет - 1

Количество мелочи составляет - 4 руб.
Вы дали кассиру - 1000 руб.
Стоимость покупки составляет - 36 руб.
Ваша сдача - 964 руб.

Если же вы введете в качестве стоимости покупки 100 рублей, что часть информации, соответственно, на печать не будет выводиться, поскольку не будет соответствовать требованиям оператора условия if.
проверьте это самостоятельно...

Проверьте его работоспособность в виде отдельного файла...
kup.py [1.51 Kb] (cкачиваний: 2)
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Вставка ссылкиВставка защищенной ссылки Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *