плииииззз...помогитееее .......... в паскалеее Выделить из текста самое длинное слово,...

0 голосов
26 просмотров

плииииззз...помогитееее .......... в паскалеее Выделить из текста самое длинное слово, заканчивающееся на согласную букву. Вывести это слово на печать.


Информатика (28 баллов) | 26 просмотров
Дан 1 ответ
0 голосов
program Project1;   const   //Множество разделителей слов.   D =[' ','.',',',':',';','!','?','-', #9, #10, #13]; var   S, StrW, StrWMax :String;   i, Pos1, Len, LenW, LenWMax, Cnt :Integer; begin   repeat     Writeln('Задайте текст:');     Readln(S);       //Обработка текста.     Len := Length(S);     LenWMax :=0;     StrWMax :='';     Cnt :=0;     Pos1 :=0;     for i :=1to Len dobegin       //Пропускаем разделители.       if S[i]in D then Continue;       //Отслеживаем начало слова.       if(i =1)or(S[i -1]in D)then Pos1 := i;       //Отслеживаем конец слова.       if(i = Len)or(S[i +1]in D)thenbegin         //Вычисляем длину слова.         LenW := i - Pos1 +1;         //Выделяем слово.         StrW := Copy(S, Pos1, LenW);         //Если слово совпадает с текущим наибольшим по длине,         //тогда увеличиваем счётчик.         if StrW = StrWMax thenbegin           Cnt := Cnt +1;         endelseif LenW > LenWMax thenbegin           //Если это очередное слово длиннее всех ранее найденных слов, то           //запоминаем его и его длину и сбрасываем счётчик.           StrWMax := StrW;           LenWMax := LenW;           Cnt :=1;         end;       end;     end;       //Показываем результат.     if StrWMax <> ''thenbegin       Writeln('Первое из самых длинных слов: "', StrWMax,'".');       Writeln('Это слово встречается в тексе ', Cnt,' раз.');     endelsebegin       Writeln('В строке нет слов.');     end;       Writeln('Повторить - Enter, выход - любой символ + Enter.');     Readln(S);   until S <> ''; end.  

Находит саммое длинное слово 
(22 баллов)