Подсчитать в предложении количество слов, начинающихся с прописной буквы.

Не помню кто задавал такую задачу, но будем считать, прописные буквы в первом предложении, т. е. до точки, если точки в конце нет, то это будет одно предложение, слова разделяются пробелом или любым знаком препинания.



program zadacha_3;
const
bukwi = ['A'..'Z']; {прописные буквы}
prepin = ',;:.'; {знаки препинания}
okon = '.?!'; {окончание предложения}

var
s, s1 : string;
i, c, i1 : integer;
begin
writeln('Введите строку.');
readln(s);
c := 0;
if s <> '' then
begin
i := 1;
repeat {выделяем предложение до точки}
if (pos(copy(s, i, 1), okon)>0) then
begin
s1 := copy(s, 1, i);
i := length(s);
end
else
s1 := s1 + s[i];
inc(i);
until i > length(s);

i1 := 1;
s := '';
i := 1;

repeat {предложение разбиваем на слова по пробелу, знаку препинания}

if (copy(s1, i, 1) = ' ') or (copy(s1, i, 1) = prepin) then
begin

if s1[i-i1+1] in bukwi then inc(c);
i1 := 0;

end;

if i = length(s1) then {если дошли до последнего символа в строке}
if s1[i-i1+1] in bukwi then inc(c);
inc(i1);
inc(i);
until i > length(s1);
end;
writeln('кол-во слов начинающихся с прописных букв = ', c);
readln;
end.



После того как выделили предложение до точки, счетчик i имеет позицию от начала строки, а счетчик i1 считает количество символов в слове.

(скачать решение.)

Hosted by uCoz