Таблиця 7

Операція Функції Pascal
Довжина рядка Копія фрагмента Пошук фрагмента Заміщення фрагмента Вставлення фрагмента Вилучення фрагмента N:=Length(S) Q:=Copy(S,P,N) P:=Pos(Q,S) - Insert(Q,S,P) Delete(S,P,N)

Побудову конкретних програм обробки текстiв на мові PASCAL розглянемо на прикладах.

Приклад1:

Скласти програму для перевiрки того, чи дана лiтерна змiнна є "перевертнем" (так звуться слова, що читаються однаково з лiва на право i з права на лiво).

На PASCAL програма запишеться так:

Program Turn;

Var S, Q : String;

i : Byte;

BEGIN

Writeln('Введiть рядок');

Readln(S);

Q:='';

For i:=1 to Length(S) do Q:=Copy(S,i,1)+Q;

If S=Q then Writeln('Лiтерний рядок ',S,' перевертень.')

else Writeln('Лiтерний рядок ',S,' не перевертень.')

END.

Приклад 2:

Скласти програму, яка пiдраховуе, скiльки разiв в даному словi X (як його частина) зустрiчаеться деяке слово Y.

Розглянемо варіант розв'язку цієї задачі на мовi PASCAL:

Program Search;

Var S, Q, W : String;

K, N, P : Byte;

BEGIN

Writeln('Введiть рядок ');

Readln(S);

Writeln('Введiть фрагмент рядка ');

Readln(Q); W:=S; K:=0;

While Pos(Q,W)>0 do

begin

Delete(W,Pos(Q,W),Length(Q));

K:=K+1

end;

Writeln('В лiтерний рядок ',S, ' фрагмент ',Q,' входить ',K,' разiв')

END.

Тут використовується допоміжний літерний рядок W, з якого пос-лідовно вилучаються фрагменти Q.

Приклад 3:

Вважаючи словом групу символiв, роздiлених пробiлами (всерединi слова пробiли вiдсутнi), вивести на екран всі слова рядка.

На PASCAL програма запишеться так:

Program Print_Word;

Var i : Byte;

S, Q : String;

Begin

Writeln('Введiть рядок');

Readln(S);

i:=1;

Repeat

Q:='';

While (S[i]<>' ') and (i<=Length(S)) do

begin

Q:=Q+S[i];

i:=i+1

end;

if Q<>'' then Writeln(Q);

i:=i+1

Until i>Length(S);

End.