Подсчитать в предложении количество слов, начинающихся с прописной
буквы.
Не помню кто задавал такую задачу, но будем считать, прописные
буквы в первом предложении, т. е. до точки, если точки в конце нет,
то это будет одно предложение, слова разделяются пробелом или любым
знаком препинания.
- 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 считает количество символов в
слове.
(скачать решение.)