Vending notes to a customer.

★★☆

A cashpoint can dispense £20, £10 and £5 notes. It always dispenses the least number of notes for each withdrawal. For example, if the customer chose to withdraw £50 it would dispense 2x£20 notes and 1x£10 note. The dispenser mechanism is an embedded system that receives the commands, "Wx", "D20", "D10" or "D5" as an input sequence from the main control unit. For example, £50 would be W50 D20 D20 D10.

Cashpoint

Make

Write a program to output the minimum number of notes from an input value.

Success Criteria

Remember to add a comment before a subprogram, selection or iteration statement to explain its purpose.

Complete the subprogram called dispense that:

  1. Outputs the amount the user is withdrawing in the format “Wx” where x is a number.
  2. Outputs “D20”, “D10” or “D5” the correct number of times for the withdrawal.

Complete the main program so that:

  1. The user can input the amount they wish to withdraw as a whole number.

Typical inputs and outputs from the program would be:

Enter the amount to withdraw: £50
W50
D20
D20
D10
Enter the amount to withdraw: £75
W75
D20
D20
D20
D10
D5
🆘 If you're really stuck, use this Parsons code sorting exercise
Complete program
# Cashpoint program

# -------------------------
# Subprograms
# -------------------------
# Control unit output
---
def dispense(amount):
---
    print("W" + amount)
    # £20 notes
    iamount = int(amount)
---
    while iamount >= 20:
---
        print("D20")
---
        iamount = iamount - 20
---
    # £10 notes
---
    while iamount >= 10:
---
        print("D10")
---
        iamount = iamount - 10
---
    # £5 notes
---
    while iamount >= 5:
---
        print("D5")
---
        iamount = iamount - 5
---


# -------------------------
# Main program
# -------------------------
---
amount = input("Enter the amount to withdraw: £")
---
dispense(amount)