Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
20
Добавлен:
07.02.2016
Размер:
70.66 Кб
Скачать

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. Задане речення. Між словами розділовий знак - пропуск, в кінці - крапка. Вивести на екран ті слова, які відрізняються від останнього слова та в яких не менше двох разів зустрічається символ «і».

Соседние файлы в папке конспект лекцій 1 паск