Рядкові величини
Домашня робота на 27.02
Виконати та записати в зошит!!! два варіанти побудови одного і того ж завдання:
№1. Визначити, скільки разів у даному тексті зустрічається послідовність символів "абв".
Варіант 1 побудови програми.
Організовуємо прохід по рядку за допомогою циклу з параметром, причому враховуємо, що необхідно
перевірити три послідовно розташованих символи .Один з методів вибору кількох послідовних
символів (і-ий, і+1-ий та і+2-ий елементи),
uses crt;
Var i:byte; {i - змінна циклу}
St:string; {St - даний текст}
Count:byte; {Count – лічильник послідовностей}
Begin Clrscr;
Write ('Введіть текст: ');
Readln (St);
Count:=0; {Початкове значення лічильника}
For i:=1 to length(St) do
If (st[i]='а') and (st[i+1]='б')and (st[i+2]='в') Then count:=count+1;
Writeln ('Кількість шуканих послідовностей: ',count);
End.
№2. Визначити, скільки разів у даному тексті зустрічається послідовність символів "абв".
Варіант 2 побудови програми.
Розглянемо інший метод, що полягає у використанні функції копіювання Copy. Нагадую, що
ця функція містить у якості параметрів вихідний рядок, номер початку копіювання (виділення)
та кількість вибраних символів, тобто для вибору трьох символів з будь-якого місця
рядка St ця функція буде мати вид:
Copy(St,і,3).
Порівнюючи виділені (скопійовані) символи з еталоном, нарощуємо лічильник при виконанні поставлених умов.
Програма, що реалізує описаний алгоритм, має наступний вигляд:
uses crt;
Var i:byte; {i - змінна циклу}
St:string; {St - даний текст}
Count:byte; {Count – лічильник послідовностей}
Begin
Clrscr;
Write ('Введіть текст: ');
Readln (St);
Count:=0; {Початкове значення лічильника}
For i:=1 to length(St)-3 do
If Copy (St,i,3) = 'абв'
Then count:=count+1;
Writeln ('Кількість шуканих послідовностей: ',count);
Readkey; {Затримка зображення на екрані}
End.
Самостійно! В рядку символів St відшукати своє ім’я. Програму скласти у двох варіантах.
Виконати та записати у зошит!
|