Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programuv_good.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
990.21 Кб
Скачать
  1. Стандартні підпрограми обробки рядків

Pascal має набір стандартних підпрограм обробки рядків: функції, процедури.

Функції на відміну процедур мають результат деякого типу і можуть бути використані в якості компонентів виразу.

Процедури являють собою дію. Вони будуть окремими командами програми. Результат обертатиметься у вигляді параметрів.

а) Функція визначення довжини

Параметром (аргументом) буде рядок символів, результатом – ціле число типу byte.

LENGTH(‘<рядок>’)=<довжина рядка>;

Вона не може змінювати довжину рядка.

б) Функція виділення частини рядка

якщо з деякого рядка треба виділити підрядок, використовується функція copy.

COPY (<ідентифікатор рядка>,<позиція, з якої відбувається крпіювання>,<довжина потрібного фрагменту>);

Очевидно, що значення параметру не повино перевищувати реальну довжину рядка.

i номер позиції, j- довжина фрагменту. Значення виразу i+j-1 – перевищує реальну довжину, то відбуватиметься виділення лише наявної частини рядка. Фрагмент буде коротшим ніж j символів.

Наприклад

Перевірити чи введений рядок є паліндромом.

Var

S1,S2: string;

i: byte;

begin

writeln(‘’);

readln(S1);

S2:=”;

For i:=length(S1) downto 1 do

S2:=S2+copy(S1,I,1);

If S1=S2 then writeln (‘’) else writeln (‘’);

End.

в) Функція знаходження номера позиції

Ця функція знаходить номер позиції, з якої починається перше входження деякого слова в рядок. Якщо це слово в рядку не знайдено, то буде надруковано число 0.

POS (<шукане слово>,<ідентифікатор рядка>);

Наприклад

Const R=’Севастополь’;

WORD=’сто’;

Var P: byte;

Begin

P:=pos(WORD,R); {P=5}

Writeln(P) ;

End.

г) Процедура вставлення слова

Ця процедура вставляє деяке слово в рядок, починаючи з вказаної позиції.

INSERT(<слово, яке треба вставити>,<ідентифікатор рядка>,<позиція>);

Наприклад

Var

Poz: integer;

R,WORD: string;

begin

Poz:=20; {Мова програмування Turbo Pascal}

R:=’Мова програмування Pascal’;

WORD:= ‘Turbo’;

Insert(WORD,R,Poz);

Writeln(R);

End.

д) Процедура видалення

Процедура видалення знищує слово, яке починається з вказаної позиції і має задану довжину в рядку.

Наприклад

Var

R: string;

N,Poz: integer;

Begin

R:= ‘Мова програмування Turbo Pascal’;

Poz:= 1;

N:=19; {Turbo Pascal}

Delete(R,Poz,N);

Writeln(R);

End.

е) Функція обєднання рядків

обєднання рядків може проводитися не лише при доповню вального знака операції +, а і функцією concat. Ця функція може містити довільну кількість аргументів типу string.

CONCAT (<рядок1>,<рядок2>,…);

Якщо сумарна довжина результуючого рядка перевищує 255, то надлишок ігнорується.

Наприклад

В рядку символів замінити всі ланцюги ABC на xy.

Var

S1, S2: string;

i: byte;

begin

writeln(‘’);

readln(S1);

S2:=S1;

For i:=1 to length(S2) do

If copy(S1,i,3)=’abc’ then

Begin

Delete(S2,i,3);

Insert(‘xy’, S2,i);

End;

Writeln(S1);

Writeln(S2);

End.

З рядка символів вилучити всі повторення підряд однакових символів крім першого.

Var

S1, S2: string;

i: byte;

begin {}

S2:=S1;

For i:=1 to length(S2) do

If copy(S2,i,1)=copy(S2, i+1,1) then

Begin

Delete(S2,i+1,1);

i:=i-1;

end;

writeln(S1);

writeln(S2);

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]