begin Upper.- ['A','B','C','D' 'E','F','G','H','I', 'J' ,'K' ,'L' ,'M' 'N' ,'0' ,'P' ,'Q' ,'R', 's' ,'T' ,'U' ,'v' 'W' ,'X' f'Y' ,'Z']; Lower ['a' ,'b' ,fe' I'd' l'e' ,'f' f'g' ,'h' ,'i', 'j' I'k' ,'1' ,'m'l In' ,'0' ,'p' I'q' f'r', , s' , , t 1 , 'u' , I v' , ' w' , , x' , 'y' , , Z I ] ; Letters := Lower + Upper; for Ch 'A' to 'Z' do Cc unt[Ch] .- 0; for Ch .- 'a' to 'z' do Cc unt[Ch] .= 0; while not Eof do begin while not Eoln do begin Read(Ch); Write(Ch); if Ch in Letters then 'ount[Ch] .= Count[Ch] + 1 end; Readln; end; Writeln for Ch := 'A' to 'Z' do if Ch in Upper then Writ'ln (Ch, Count [Ch]); for Ch := 'a' to 'z' do if Ch in Lower then Writ ~:n(Ch, Count[Ch]); end 

## Produces as results (assuming appropriate input): 

A rat in Tom's house might eat Tom's ice cream! (Arithmetic) 

Pack my box with five dozen , iquor jugs. 

The quick brown fox jumped 0 'er the lazy sleeping dog. 

A 2 B 0 C 0 D 0 E 0 F 0 G 0 H 0 I 0 J 0 K 0 L 0 M 0 N 0 0 0 

