
-----------------------------------
vexd
Mon Sep 29, 2003 6:36 pm

Typical Cashiers Problem (Involving Trucks/Weight)
-----------------------------------
%**********************************************************************************
%* Author: VeXD                                                                   *
%* Date: Sept, 24 2003                                                            *
%* Purpose:To make a program that can solve the classical cashier's problem.      *
%* Input: An integer (weight) of the package                                      *
%* Output: An integer of how many weights can go on the truck.                    *
%**********************************************************************************

var intWeight : int
var intPackage : int := 0
var strYesNo : string (1)

put "What is the capacity of the truck?"
get intWeight

loop
    exit when intWeight > 0
    put "Please Enter a valid capacity of the truck:"
    get intWeight
end loop
intPackage := intWeight

loop
    intPackage := intWeight div 500
    if intPackage not= 0 then
        intWeight := intWeight mod 500
        if intPackage > 1 then
            put intPackage, " - 500's"
        elsif intPackage = 1 then
            put intPackage, " - 500"
        end if
    end if
    intPackage := intWeight div 100
    if intPackage not= 0 then
        intWeight := intWeight mod 100
        if intPackage > 1 then
            put intPackage, " - 100's"
        elsif intPackage = 1 then
            put intPackage, " - 100"
        end if
    end if
    intPackage := intWeight div 50
    if intPackage not= 0 then
        intWeight := intWeight mod 50
        if intPackage > 1 then
            put intPackage, " - 5's"
        elsif intPackage = 1 then
            put intPackage, " - 50"
        end if
    end if
    intPackage := intWeight div 20
    if intPackage not= 0 then
        intWeight := intWeight mod 20
        if intPackage > 1 then
            put intPackage, " - 20's"
        elsif intPackage = 1 then
            put intPackage, " - 20"
        end if
    end if
    intPackage := intWeight div 10
    if intPackage not= 0 then
        intWeight := intWeight mod 10
        if intPackage > 1 then
            put intPackage, " - 10's"
        elsif intPackage = 1 then
            put intPackage, " - 10"
        end if
    end if
    intPackage := intWeight div 5
    if intPackage not= 0 then
        intWeight := intWeight mod 5
        if intPackage > 1 then
            put intPackage, " - 5's"
        elsif intPackage = 1 then
            put intPackage, " - 5"
        end if
    end if
    intPackage := intWeight div 2
    if intPackage not= 0 then
        intWeight := intWeight mod 2
        if intPackage > 1 then
            put intPackage, " - 2's"
        elsif intPackage = 1 then
            put intPackage, " - 2"
        end if
    end if
    if intWeight = 1 then
        put intWeight, " - 1"
    end if
    put "----------------"
    put "Calculate another capacity? y/n"
    getch (strYesNo)
    exit when strYesNo = "n" or strYesNo = "N"
    put "\nWhat is the capacity of the truck?"
    get intWeight
    intPackage := intWeight
    cls
end loop
