setscreen ("graphics")
var price : real
var change : real
var change2 : real
var pennies : real
var answer : array char of boolean
var window : int
var finished : boolean := false
var location : boolean := false
var medarial : int
medarial := Font.New ("arial:12")
window := Window.Open ("position:center;center,graphics:250;260")
Font.Draw ("This program calculates the most", 0, maxy - 14, medarial, black)
Font.Draw ("ideal change for a twenty dollar bill.", 0, maxy - 34, medarial, black)
loop
loop
loop
if location = false
then
Font.Draw ("The total cost of the item(s)", 0, maxy - 74, medarial, black)
Font.Draw ("purchased is:", 0, maxy - 94, medarial, black)
Font.Draw ("$", 0, maxy - 122, medarial, black)
locate (7, 2)
get price
location := true
else
Font.Draw ("The total cost of the item(s)", 0, maxy - 14, medarial, black)
Font.Draw ("purchased is:", 0, maxy - 34, medarial, black)
Font.Draw ("$", 0, maxy - 68, medarial, black)
locate (4, 2)
get price
end if
if price > 20
then
cls
Font.Draw ("The amount must be equal to", 0, maxy - 14, medarial, black)
Font.Draw ("or smaller than $20.", 0, maxy - 34, medarial, black)
location := false
elsif price <= 20
then
exit
end if
end loop
cls
if price = 20
then
Font.Draw ("No change.", 0, maxy - 14, medarial, black)
exit
else
Font.Draw ("The cost is $", 0, maxy - 14, medarial, black)
locate (1, 10)
put price : 0 : 2
Font.Draw ("Your change is $", 0, maxy - 32, medarial, black)
locate (2, 13)
put 20 - price : 0 : 2
end if
change := 20 - price
if change >= 10
then
if change div 10 > 1
then
Font.Draw (realstr (change div 10, 1), 0, maxy - 65, medarial, black)
Font.Draw ("ten dollar bills.", 12, maxy - 65, medarial, black)
change := change mod 10
else
Font.Draw ("1 ten dollar bill.", 0, maxy - 65, medarial, black)
change := change mod 10
end if
else
Font.Draw ("No ten dollar bills.", 0, maxy - 65, medarial, black)
end if
if change >= 5
then
if change div 5 > 1
then
Font.Draw (realstr (change div 5, 1), 0, maxy - 85, medarial, black)
Font.Draw ("five dollar bills.", 12, maxy - 85, medarial, black)
change := change mod 5
else
Font.Draw ("1 five dollar bill.", 0, maxy - 85, medarial, black)
change := change mod 5
end if
else
Font.Draw ("No five dollar bills.", 0, maxy - 85, medarial, black)
end if
if change >= 2
then
if change div 2 > 1
then
Font.Draw (realstr (change div 2, 1), 0, maxy - 105, medarial, black)
Font.Draw ("toonies.", 12, maxy - 105, medarial, black)
change := change mod 2
else
Font.Draw ("1 toonie.", 0, maxy - 105, medarial, black)
change := change mod 2
end if
else
Font.Draw ("No toonies.", 0, maxy - 105, medarial, black)
end if
if change >= 1
then
if change div 1 > 1
then
Font.Draw (realstr (change div 1, 1), 0, maxy - 125, medarial, black)
Font.Draw ("loonies.", 12, maxy - 125, medarial, black)
change := change mod 1
else
Font.Draw ("1 loonie.", 0, maxy - 125, medarial, black)
change := change mod 1
end if
else
Font.Draw ("No loonies.", 0, maxy - 125, medarial, black)
end if
if change >= 0.25
then
if change div 0.25 > 1
then
Font.Draw (realstr (change div 0.25, 1), 0, maxy - 145, medarial, black)
Font.Draw ("quarters.", 12, maxy - 145, medarial, black)
change := change mod 0.25
else
Font.Draw ("1 quarter.", 0, maxy - 145, medarial, black)
change := change mod 0.25
end if
else
Font.Draw ("No quarters.", 0, maxy - 145, medarial, black)
end if
if change >= 0.10
then
if change div 0.10 > 1
then
Font.Draw (realstr (change div 0.10, 1), 0, maxy - 165, medarial, black)
Font.Draw ("dimes.", 12, maxy - 165, medarial, black)
change := change mod 0.10
else
Font.Draw ("1 dime.", 0, maxy - 165, medarial, black)
change := change mod 0.10
end if
else
Font.Draw ("No dimes.", 0, maxy - 165, medarial, black)
end if
if change = 0.05
then
if change div 0.05 > 1
then
Font.Draw (realstr (change div 0.05, 1), 0, maxy - 185, medarial, black)
Font.Draw ("nickels.", 12, maxy - 185, medarial, black)
change := change mod 0.05
else
Font.Draw ("1 nickel.", 0, maxy - 185, medarial, black)
change := change mod 0.05
end if
else
Font.Draw ("No nickels.", 0, maxy - 185, medarial, black)
end if
if change >= 0.01
then
if change div 0.01 > 1
then
Font.Draw (realstr (change div 0.01, 1), 0, maxy - 205, medarial, black)
Font.Draw ("pennies.", 12, maxy - 205, medarial, black)
else
Font.Draw ("1 penny.", 0, maxy - 205, medarial, black)
end if
else
Font.Draw ("No pennies.", 0, maxy - 205, medarial, black)
end if
exit
end loop
Font.Draw ("Press ' n ' to exit the program.", 0, maxy - (maxy - 3), medarial, black)
Font.Draw ("Press ' y ' to receive change again.", 0, maxy - (maxy - 23), medarial, black)
loop
Input.KeyDown (answer)
if answer ('y')
then
cls
exit
elsif answer ('n')
then
finished := true
exit
end if
end loop
exit when finished
end loop
Window.Close (window)
|