program Project1;
(*Перевод букв кириллицы в верхний регистр. Для кодовой страницы CP866.*)
function UpCaseCyr(const S : String) : String;
var
i : Integer;
Res : String;
begin
Res := '';
for i := 1 to Length(S) do begin
case S[i] of
'а'..'п' : Res := Res + Char( Ord(S[i]) - 32 );
'р'..'я' : Res := Res + Char( Ord(S[i]) - 80 );
'ё' : Res := Res + 'Ё';
else
Res := Res + S[i];
end;
end;
UpCaseCyr := Res;
end;
const
(*Множество разделителей слов.*)
D = [' ', '.', ',', ':', ';', '!', '?', '-', Char(9), Char(10), Char(13)];
var
StrSrc, StrTmp : String;
i, Pos2 : Word;
begin
repeat
Writeln('Задайте строку:');
Readln(StrSrc);
Writeln('Слова начинающиеся и заканчивающиеся на одну и ту же букву:');
(*Перебор всех символов строки.*)
Pos2 := 0;
for i := 1 to Length(StrSrc) do begin
(*Пропускаем разделители.*)
if StrSrc[i] in D then Continue;
(*Учитываем очередной символ слова.*)
StrTmp := StrTmp + StrSrc[i];
(*Отслеживаем конец слова.*)
if (i = Length(StrSrc)) then
Pos2 := i
else if StrSrc[i + 1] in D then
Pos2 := i
;
(*Если конец слова найден.*)
if Pos2 > 0 then begin
if UpCaseCyr(StrTmp[1]) = UpCaseCyr(StrTmp[ Length(StrTmp) ]) then begin
(*Распечатываем слово.*)
Writeln(StrTmp);
end;
StrTmp := '';
Pos2 := 0;
end;
end;
Writeln('Повторить - Enter. Выход - любой символ + Enter.');
Readln(StrTmp);
until StrTmp <> '';
end.
Похожие записи/страницы:
- Выделить из предложения слова, содержащие две или более одинаковые буквы - Pascal(Паскаль)
- Дан текст на русском языке. Напечатать в алфавитном порядке все гласные буквы, которые входят в каждое слово -…
- Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним…
- Дана последовательность слов русского языка; между словами - запятая, за последним словом точка! напечатать в…
- В строке малыми латинскими буквами записаны слова, разделяющиеся запятыми. Первые буквы некоторых слов могут…
- Пусть дан текст, заканчивающийся точкой. Текст состоит из слов, разделенных пробелами. Слова представляют собой…
- Дан текст состоящий из слов написаных латинскими буквами и разделённый пробелами. текст кончается точкой. Нужно…
- Написать программу, которая будет печатать: а) все слова из списка с, отличные от слова sport: б) текст,…