130  Pascal User Manual  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 