home *** CD-ROM | disk | FTP | other *** search
/ AMIGA PD 1 / AMIGA-PD-1.iso / Programme_zum_Heft / Programmieren / Kurztests / PascalPCQ / Examples / MakeChange.p < prev    next >
Text File  |  1991-04-04  |  2KB  |  63 lines

  1. Program MakeChange;
  2.  
  3. {
  4.     This program simply computes the number of coins you'll get in
  5.     change for all possible purchase prices.  The idea is that if
  6.     prices were evenly distributed, this program would compute the
  7.     distribution of coins in your piggy bank.  Obviously prices are
  8.     not evenly distributed - since they are normally .95 or .99, the
  9.     price you pay after tax is most often in the lower half of the scale.
  10.     That's why you end up with so many quarters.
  11. }
  12.  
  13.  
  14. Procedure Changer(Amount : Integer;
  15.         var Quarters, Dimes, Nickels, Pennies : Short);
  16. begin
  17.     Amount := Amount mod 100;
  18.  
  19.     Quarters := Amount div 25;
  20.     Amount   := Amount mod 25;
  21.  
  22.     Dimes    := Amount div 10;
  23.     Amount   := Amount mod 10;
  24.  
  25.     Nickels  := Amount div 5;
  26.     Amount   := Amount mod 5;
  27.  
  28.     Pennies  := Amount;
  29. end;
  30.  
  31. var
  32.     Amount : Integer;
  33.     TotalQuarters,Quarters : Short;
  34.     TotalDimes,Dimes : Short;
  35.     TotalNickels,Nickels : Short;
  36.     TotalPennies,Pennies : Short;
  37. begin
  38.     Amount := 0;
  39.     TotalQuarters := 0;
  40.     TotalDimes := 0;
  41.     TotalNickels := 0;
  42.     TotalPennies := 0;
  43.  
  44.     Writeln('Amount     Quarters   Dimes    Nickels   Pennies');
  45.     Writeln('------------------------------------------------');
  46.  
  47.     while Amount < 100 do begin
  48.     Changer(Amount,Quarters,Dimes,Nickels,Pennies);
  49.     Writeln(Amount / 100.0:2:2, Quarters:10, Dimes:10,
  50.             Nickels:10, Pennies:10);
  51.  
  52.     TotalQuarters := TotalQuarters + Quarters;
  53.     TotalDimes    := TotalDimes + Dimes;
  54.     TotalNickels  := TotalNickels + Nickels;
  55.     TotalPennies  := TotalPennies + Pennies;
  56.     Inc(Amount);
  57.     end;
  58.  
  59.     Writeln('------------------------------------------------');
  60.     Writeln('Totals:',TotalQuarters:8,
  61.         TotalDimes:10,TotalNickels:10,TotalPennies:10);
  62. end.
  63.