{ 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.  .