Предмет: Информатика,
автор: daha97
плииииззз...помогитееее .......... в паскалеее Выделить из текста самое длинное слово, заканчивающееся на согласную букву. Вывести это слово на печать.
Ответы
Автор ответа:
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 := 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.
Находит саммое длинное слово
Находит саммое длинное слово
Похожие вопросы
Предмет: Математика,
автор: abishevnuradyl08
Предмет: Английский язык,
автор: german555444i
Предмет: Русский язык,
автор: Аноним
Предмет: Математика,
автор: аннюточкапрои