Операція | Функції 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.