Var s:string;
I,k:byte;
begin
readln(s);
k:=0;
for i:=1 to length(s) do
if s[i]='a' then k:=k+1;
writeln(k);
end.
Приклад 4.20. Задане речення (рядок символів), в кінці крапка. Символи об’єднані в слова. Між словами розділовий знак - пропуск. Визначити, скільки в реченні слів.
Для розв’язання цієї задачі приймемо на увагу, що слово починається, якщо поточний символ - пропуск, а наступний - не пропуск, а літера.
var s:string;
i,k:byte;
begin
readln(s);
if (s[1]<>'') then k:=1 else k:=0;{перевіряємо, чи починається речення з літери, чи з пробілу}
for i:=1 to length(s) do
if (s[i]='') and (s[i+1]<>' ') then k:=k+1;
writeln(k);
end.
Приклад 4.21. Задане речення. Між словами розділовий знак - пропуск, або кома, в кінці - крапка. Визначити кількість слів, які закінчуються на «ла».
var s:string;
i,k:byte;
begin
readln(s);
k:=0;
for i:=1 to length(s) do
if( copy(s,i,3)='ла ') or(copy(s,i,3)='ла,')or (copy(s,i,3)='ла.' ) then k:=k+1;
writeln(k);
end.
Приклад 4.22. Задане речення. Між словами розділовий знак - пропуски, в кінці - крапка. Видалити з речення зайві пропуски.
var s:string;
i,k:byte;
begin
readln(s);
for i:=1 to length(s) do
if (s[i]=' ') and (s[i+1]=' ') then
while s[i+1]=' ' do
delete(s,i+1,1);
writeln(s);
end.
Приклад 4.23. Задане речення. Між словами розділовий знак - пропуск, або кома, в кінці - крапка. Перетворити текст, замінивши буквосполучення «ень» на «а».
var s:string;
i,k:byte;
begin
readln(s);
for i:=1 to length(s) do
if copy(s,i,3)='ень' then begin
delete(s,i,3);
insert('а',s,i);
end;
writeln(s);
end.
Приклад 4.24. Задане речення. Між словами розділовий знак - пропуск, або кома, в кінці - крапка. Створити нове речення, замінивши буквосполучення «си» на «ли».
var t,s:string;
i,k:byte;
begin
readln(s);
t:='';{нове речення}
for i:=1 to length(s) do
if copy(s,i,2)='си' then begin
t:=t+'ли';
i:=i+1;
end
else t:=t+ s[i];
writeln(t);
end.
Дуже часто треба при розвязуванні задач працювати з оремими словами. В такому випадку необхідно в рядку виділити слово, яке відокремлюєть розділовими знаками в нову рядкову змінну (в нашому прикладі 4.25 це змінна t). Принцип її отримання дуже простий. Коли ми знаходимо початок слова, то значення рядка-слова встановлюємо порожнім та у циклі “поки ” накопичуємо значення рядка-слова по літері до нового розділового знаку. А далі виконуємо роботу з отриманим значенням слова.
Приклад 4.24. Задане речення. Між словами розділовий знак - пропуск, в кінці - крапка. Вивести на екран ті слова, в яких зустрічається символ «р».
Var t,s: string;
I:byte;
begin
readln(s);
s:=' '+s+' '; {підготовка рядка до пошуку слів}
i:=1;
while i<length(s) do
begin
if (s[i]=' ') and(s[i+1]<>' ') then
begin
t:=''; {нове слово}
i:=i+1;
while (s[i]<>' ') and (s[i]<>'.') do
begin
t:=t+s[i];
inc(i);
end;
if pos('p',t)<>0 then writeln(t);{якщо в слові є літера р, воно виводиться на екран}
dec(i);
end;
i:=i+1;
end;
end.
Приклад 4.26. Задане речення. Між словами розділовий знак - пропуск, в кінці - крапка. Вивести на екран ті слова, які відрізняються від останнього слова та в яких не менше двох разів зустрічається символ «і».