Var Text,S:string; n,k:boolean; i:integer; Begin Write('Введите текст на русском языке: ');ReadLn(Text); Text:=LowerCase(Text)+' '; // перевоит текст в нижний регистр WriteLn(Text); // показывает действие предыдущей строки For i:= 1 to Length(Text) do Begin if ('а' <= Text[i])and(Text[i] <= 'я')or(Text[i] = 'ё') then S:=S+Text[i] // записываем русские буквы в S else // как только встречаем другой символ, проверяем, if Length(S) > 0 then // есть ли в S хоть одна буква, Begin // и если есть, то проверяем условие задачки, и выводим слово на экран, если оно истинно if (S[1] in 'бвгджзйклмнпрстфхцчшщ')and(S[Length(S)] in 'аоэиуыеёюя') then WriteLn(S); S:=''; // далее обнуляем S End; End; End.
Пример работы программы:
Введите текст на русском языке: Дан произвольный текст на русском языке. Написать программу, которая выводит слова, начинающиеся на согласную и заканчивающиеся гласной буквой. дан произвольный текст на русском языке. написать программу, которая выводит слова, начинающиеся на согласную и заканчивающиеся гласной буквой. на программу которая слова начинающиеся на согласную заканчивающиеся
<em>// PascalABC.NET 3.2, сборка 1467 от 02.06.2017</em> <em>// Внимание! Если программа не работает, обновите версию!</em>
begin var pic:='\b[бвгджзйклмнпрстфхцчшщъь]\S*[аеёиоуыэюя]\b'; ReadlnString('Введите:').MatchValues(pic,RegexOptions.IgnoreCase) .Println(NewLine) end.
<u>Пример</u> Введите: А роза упала на лапу Азора, а Карл у Клары украл кораллы. роза на лапу Клары кораллы