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

1

Ответы и объяснения

2012-12-21T00:33:56+04:00
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 := 1 to Len do begin       //Пропускаем разделители.       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) then begin         //Вычисляем длину слова.         LenW := i - Pos1 + 1;         //Выделяем слово.         StrW := Copy(S, Pos1, LenW);         //Если слово совпадает с текущим наибольшим по длине,         //тогда увеличиваем счётчик.         if StrW = StrWMax then begin           Cnt := Cnt + 1;         end else if LenW > LenWMax then begin           //Если это очередное слово длиннее всех ранее найденных слов, то           //запоминаем его и его длину и сбрасываем счётчик.           StrWMax := StrW;           LenWMax := LenW;           Cnt := 1;         end;       end;     end;       //Показываем результат.     if StrWMax <> '' then begin       Writeln('Первое из самых длинных слов: "', StrWMax, '".');       Writeln('Это слово встречается в тексе ', Cnt, ' раз.');     end else begin       Writeln('В строке нет слов.');     end;       Writeln('Повторить - Enter, выход - любой символ + Enter.');     Readln(S);   until S <> ''; end.  

Находит саммое длинное слово