{       This was part of a Pascal Course (this is program
Listing 5 of Welsh & Elder, page 101). It has been modified
only very slightly to provide a better input/output format.
Donated by Gerald Hewett }


Program Checkln;

    type range =0..999;

    var  dollars : range;
           cents : 0..99;

    Procedure convertintowords (x : range);

         type digit = 0..9;
         var  h,t,u : digit;

         Procedure units (i : digit);
              Begin
                   case i of
                        0 : ;
                        1 : write ('One ');
                        2 : write ('Two ');
                        3 : write ('Three ');
                        4 : write ('Four ');
                        5 : write ('Five ');
                        6 : write ('Six ');
                        7 : write ('Seven ');
                        8 : write ('Eight ');
                        9 : write ('Nine ');
                   end
              end;      (*Units*)

         Begin
              h := x div 100;
              t := x mod 100 div 10;
              u := x mod 10;
              if h >0 then
                   begin
                        units (h);
                        write('Hundred ');
                   end;
              if t = 1 then case u of
                   0 : write('Ten ');
                   1 : write('Eleven ');
                   2 : write('Twelve ');
                   3 : write('Thirteen ');
                   4 : write('Fourteen ');
                   5 : write('Fifteen ');
                   6 : write('Sixteen ');
                   7 : write('Seventeen ');
                   8 : write('Eighteen ');
                   9 : write('Nineteen ');
             end   �


            else begin
               case t of
                   0 : ;
                   2 : write('Twenty ');
                   3 : write('Thirty ');
                   4 : write('Forty ');
                   5 : write('Fifty ');
                   6 : write('Sixty ');
                   7 : write('Seventy ');
                   8 : write('Eighty ');
                   9 : write('Ninety ');
              end;
              units(u)
         end
    end;     (*Converttowords*)

    Begin
         writeln;
         writeln('Enter the amount to be printed.');
         writeln('Use a space, not a period!');
         read(dollars);
         while dollars >= 0 do
              begin
              read(cents);
              write(dollars : 4, cents : 3, ' ' : 5);
              if (dollars=0) and (cents=0) then
                   write('Nil')
              else begin
                   if dollars > 0 then
                        begin
                             convertintowords (dollars);
              write('Dollar� and ',cents : 2,' cents.')
                             end;
                        end;
              writeln;
              read(dollars)
         end
    end.