const
letter:array[1..23]of char=
('б','в','г','д','ж','з','й','к','л','м','н','п','р','с','т','ф',
'х','ч','ш','щ','ъ','ь','э');
var
st:string[50];
i,j:byte;
flag_word:boolean;
all_letter,tmp_letter,max_letter,max:integer;
BEGIN
writeln('Введите строку:');
readln(st);
writeln;
max:=1;
all_letter:=0; {всего согласных букв в строке }
tmp_letter:=0; {хранение числа букв в каждом слове }
max_letter:=0; {максимальное число согл. букв в слове }
flag_word:=false; {слово не было начато }
st:=' '+st; {считать, что строка начинается с пробела}
{цикл обработки всей строки}
for i:=2 to length(st) do
begin
{начало слова}
if (st[i]<>' ')and(st[i-1]=' ') then flag_word:=true;
{подсчёт, если было начало слова}
if flag_word then
begin
write(st[i]);
for j:=1 to 23 do if st[i]=letter[j] then
begin
inc(all_letter);
inc(tmp_letter);
end;
end;
{конец слова}
if (st[i]=' ')and(st[i-1]<>' ')or(i=length(st)) then
begin
flag_word:=false;
writeln(' = ',tmp_letter);
if max_letter<tmp_letter then
begin
max_letter:=tmp_letter;
inc(max);
end;
tmp_letter:=0;
end;
end;
writeln;
writeln('Всего согласных = ',all_letter);
writeln('Максимально согласных в слове №',max);
END.
* константа letter — массив из согласных букв;
* переменные i,j — для цикла;
* переменная max — номер слова в котором максимальное число согласных.