uses crt;
const
ds = [' ', 'а' .. 'п', 'р' .. 'я', 'ё']; { допустимые символы }
var
s: string;
i, k: byte;
begin
clrscr;
repeat
k := 0;
writeln('Введите строку из слов, записанных строчными русскими буквами, разделенных пробелами:');
readln(s);
for i := 1 to length(s) do
if not(s[i] in ds) then
k := 1;
if k = 1 then
writeln('Введены недопустимые символы, повторите ввод.');
until k = 0;
while pos(' ', s) > 0 do { удалим лишние пробелы, в апострофах 2 пробела }
delete(s, pos(' ', s), 1); { 1 удаляем }
if s[1] = ' ' then
delete(s, 1, 1); { удалим пробел в начале }
{ заменяем первые буквы слов на прописные }
for i := 1 to length(s) do
if (i = 1) or ((s[i] <> ' ') and (s[i - 1] = ' ')) then
begin
if s[i] in ['а' .. 'п'] then
s[i] := chr(ord(s[i]) - 32)
else if s[i] in ['р' .. 'я'] then
s[i] := chr(ord(s[i]) - 80)
else if s[i] = 'ё' then
s[i] := 'Ё';
end;
write(s);
readln
end.