program Project1;
const
//Множество разделителей слов.
D = [' ', '.', ',', ':', ';', '!', '?', '-', #9, #10, #13];
var
S : String;
i, Len : Integer;
begin
repeat
//Исходный текст.
Writeln('Задайте текст:');
Readln(S);
Len := Length(S);
for i := Len downto 1 do begin
//Пропускаем разделители.
if S[i] in D then Continue;
//Отслеживаем начало слова.
if ( (i = 1) or (S[i - 1] in D) ) and (S[i] = UpCase(S[i])) then
Insert('!', S, i);
end;
//Показываем результат.
Writeln('Текст после обработки:');
Writeln(S);
Writeln('Повторить - Enter. Выход - любой символ + Enter.');
Readln(S);
until S <> '';
end.