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