Найти количество согласных букв в предложении - Pascal ABC

Формулировка задачи:

Для каждого слова заданного предложения указать количество согласных. Определить слово, в котором доля согласных максимальна(наибольшая). Каждое слово записать в массив, т.е. есть пустой массив и затем мы записываем в него слова. Вывести на экран все слова, а также слово, с максимальным числом согласных букв. Все что смог сам(
const p=[' ','.',',',';',':','!','?','(',')','"'];
      sogl=['Ц','ц','К','к','Н','н','Ш','ш','Щ','щ','З','з','Х','х','Ф','Ь','ь','ф','В','в','П','п','Р','р','Л','л','Д','д','Ж','ж','Ч','ч','С','с','М','м','Т','т','Б','б','ц','Ц','Й','й'];
var s,sl: string;
    i,k,d,j,max,l: byte;a:array[1..20]of string;
begin
write('s='); readln(s); // Vvod predlozheniya
s:=s+' '; sl:=''; d:=0;
for i:=1 to length(s) do    //Записываем слова предложения в массив
    if not (s[i] in p) then sl:=sl+s[i] else
       if length(sl)>0 then
          begin
          k:=0;
          for j:=1 to d do
              if a[j]=sl then k:=k+1;
          if k=0 then begin
             d:=d+1; a[d]:=sl; end;
          sl:='';  end;
//Выводим слова
for i:=1 to d do
    writeln(a[i]);
    //Согласные количество
k:=0;
for i:=1 to length(s) do
if s[i] in sogl then k:=k+1;
writeln ('Количество согласных= ',k);
writeln(s[i]);
end.

Код к задаче: «Найти количество согласных букв в предложении - Pascal ABC»

textual
const p=[' ','.',',',';',':','!','?','(',')','"'];
      sogl=['Ц','ц','К','к','Н','н','Ш','ш','Щ','щ','З','з','Х','х','Ф','Ь','ь','ф','В','в','П','п','Р','р','Л','л','Д','д','Ж','ж','Ч','ч','С','с','М','м','Т','т','Б','б','ц','Ц','Й','й'];
var s,sl,mxsl: string;
    i,j,k,d,max: byte;
    a:array[1..20]of string;
begin
write('s=');
readln(s); // Vvod predlozheniya
s:=s+' ';
sl:='';
d:=0;
for i:=1 to length(s) do    //Записываем слова предложения в массив
if not (s[i] in p) then sl:=sl+s[i]
else if length(sl)>0 then
 begin
  k:=0;
  for j:=1 to d do
  if a[j]=sl then k:=k+1;
  if k=0 then
   begin
    d:=d+1;
    a[d]:=sl;
   end;
  sl:='';
 end;
//Выводим слова
for i:=1 to d do
writeln(a[i]);
//ихем слово с макс. кол. согласных
for i:=1 to d do
 begin
  k:=0;
  for j:=1 to length(a[i]) do
  if a[i][j] in sogl then k:=k+1;
  if k>max then
   begin
    max:=k;
    mxsl:=a[i];
   end;
 end;
write('Больше всего согласных=',max,' в слове ',mxsl);
end.

11   голосов, оценка 3.636 из 5


СОХРАНИТЬ ССЫЛКУ