(***********************************************************
*                                                          *
*  DCV na PGM                                              *
*                                                          *
*  Autor: Jan Pacner                                       *
*                                                          *
*  Zadani:                                                 *
*    Zadavame znaky (vety atd...), zadavani ukoncime       *
*    predem vybranym znakem. Potom nam program vypise      *
*    cetnost znaku (pocita se JENOM anglicka abeceda).     *
*    Program ma byt blbuvzdorny.                           *
*                                                          *
*  made 29.3.2008 and last modified 29.3.2008 20:19        *
*                                                          *
***********************************************************)

program cetnost_znaku;

var
//keyin:string;
input,output:string;
i:byte;
pozice:integer;
cetnost:array [97..122] of integer;

begin

writeln ('---------------------------------------------------------------');
{
write ('zadejte JEDEN znak, kterym ukoncite zadavani vlastniho textu: ');
repeat
  readln (keyin);
  if length(keyin)>1 then write ('zadal jste vice znaku, zadejte jenom 1 znak: ');
until length(keyin)=1;

writeln (chr(10),'Zadejte text, ukoncete ho UKONCOVACIM znakem,');
writeln ('ktery jste si zvolili vyse, a pro.....
}
writeln (chr(10),'Zadejte text a program Vam vypise');
writeln ('cetnost jednotlivych znaku anglicke abecedy.');
write (chr(10),'  -> ');
readln (input);

// prevede VELKA pismena v inputu na mala (pokud se tam vyskytuji):

output:=('');
for i:=1 to length(input) do begin
  if (input[i] in ['A'..'Z']) then
    pozice:=97+(ord(input[i])-ord('A'))
    else pozice:=ord(input[i]);
  output:=concat(output,chr(pozice));
end;

// vypocet CETNOSTI znaku:

for i:=97 to 122 do cetnost[i]:=0;

for i:=1 to length(output) do begin
  if (output[i] in ['a'..'z']) then begin
    cetnost[ord(output[i])]:=cetnost[ord(output[i])]+1;
  end;
end;

// vypis CETNOSTI znaku (jen tech, ktere se v textu objevily):

writeln (chr(10),'cetnost znaku:');
for i:=97 to 122 do begin
  if cetnost[i]<>0 then writeln (chr(i),': ',cetnost[i]);
end;

readln;
end.