Здавалка
Главная | Обратная связь

Функції та процедури для роботи з рядками.



В мові Паскаль є ряд функцій та процедур для роботи зі строками. В цьому розділі ознайомимося з основними з них.

 

Функції:

· Concat(s1 [, s2, … , sN]) – повертає рядок, який є результатом зчеплення рядків-параметрів s1, s2, … , sN.

Var

st1, st2, st3 : string;

s1:=’Turbo’;

s2:=’Pascal’;

s3:= Concat(st1, ’ ’, st2); {в рядок s3 записалося ’Turbo Pascal’}

 

· Copy(st, index, count) – копіює з рядка st count символів, починаючи з символу з номером index, і повертає у вигляді нового рядка.

Var

st1 : string;

st1:= Copy(’abcdefg’, 2, 3); {в st1 - ’bcd’}

 

· Length(st) – повертає ціле число, яке являє собою довжину рядка st.

Var

st : string;

i : integer;

st:= ’abcde’;

i:= Length(st); {значення i = 5}

 

· Pos(subst, st) – знаходить в рядку st перше входження рядка subst і повертає номер позиції, з якої це входження починається, у вигляді цілого числа.

Var

st : string;

i : integer;

st:= ’Turbo Pascal’;

i:= Pos(’ Pas’, st); {в i запишеться 7}

· Upcase(ch) – на відміну від інших функцій, застосовується лише для одного символу ch. Ця функція для малих літер латинського алфавіту повертає відповідні їм великі літери, для решти символів (в тому числі і для літер кирилиці) повертає символ без зміни.

Var

st : string;

ch: char;

st := ’pascal’;

st[1] := Upcase(st[1]); {в st[1] запишеться ’ P’, а st = ’Pascal’}

ch := Upcase(’q’); {ch = ’Q’}

ch := Upcase(’я’); {ch = ’я’}

 

Процедури:

· Delete(st, index, count) – видаляє count символів з рядка st, починаючи з символу з номером index.

Var

st : string;

st := ’abcdefg’;

Delete(st, 2, 3); {st = ’aefg’}

 

· Insert(subst, st, index) – вставляє рядок subst в рядок st, починаючи з символу з номером index.

Var

st : string;

st := ’24’;

Insert (’1.1’, st, 2); {st = ’ 21.14’}

 

· Str(x [:width [:decimal]], st) – перетворює ціле або дійсне число x в рядок st і робить це аналогічно процедурі Write, якщо задані параметри width і decimal – вказують скільки позицій в рядку потрібно виділити для відображення числа і скільки вивести цифр після крапки.

Var

st : string;

x : real;

x := 12.2;

Str(x:7:3,st); {в st – ’ 12.20’}

 

· Val(st, x, code) – перетворює рядок st в дійсне або ціле число x,в залежності від типу цієї змінної, якщо перетворення можливе в code записується нуль, якщо ж ні – то в code записується позиція в рядку st в якій процедура виявила помилковий символ, а значення x не змінюється. Рядок st може містити побіли на початку, але наявність пробілів в кінці рядка призведе до помилки(тобто рядок ’ 54.77’ – припустимий, а рядок ’54.77 ’- ні).

Var

x : real;

c: integer;

Val(’43.98’, x, c); {x = 43.98, c=0}

Val(’1B23’, x, c); {x = 43.98, c=2}

 

 

Зауваження: тут і далі, при опису процедур та функцій в квадратні дужки [] – беруться ті аргументи, використовувати які не обов’язково. В програмі ці дужки використовувати не потрібно.

 

Порівняння рядків.

Для рядків можна застосовувати операції порівняння =, <>, >, <, >=, <=. При порівнянні двох рядків спочатку порівнюються коди двох перших символів, той рядок у якого код першого символу більший – вважається більшим, якщо ж ці коди рівні – порівнюються коди других символів і т.д. Якщо ж один рядок коротший за інший, то він доповнюється символом з кодом 0.

 

’A’ < ’Z’ {істиний вираз}

’Tur’>’Turbo’ {хибний вираз}

’Паскаль’>’Turbo Pascal’ {істиний вираз}

Приклад 7.

Приклад 7.

За допомогою стандартних функцій написати програму по заміні всіх пробілів в рядку на два символи підкреслення.

1. Пошук пробілів будемо виконувати за допомогою функції Pos доти, доки вона не поверне нам значення 0.

2. Заміну можна організувати за допомогою послідовного виконання процедур Insert і Delete.

3. Текст програми:

ProgramLaba_7;

Var

st : string;

i : integer;

Begin

st := ’Скласти алгоритм i програму’;

i := Pos(’ ’, st); {шукаємо перший пробіл}

whilei>0 do{поки є пробіли i>0}

Begin

Delete(st,i,1); {видаляємо один пробіл в позиції i}

Insert(’__’,st,i); {вставляємо ’__’ в позицію i}

i := Pos(’ ’, st); {шукаємо наступний пробіл}

end;

Writeln(st); {виводимо результат на екран}

End.

В результаті виконання цієї програми на екрані отримаємо:

 

Скласти__алгоритм__i__програму


Блок-схема програми:

 

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.