Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.44 Mб
Скачать

3.4 Злиття рядків

Злиття рядків здійснює оператор конкатенації «+» і функція Concate:

Str_l+Str_2+...+Str_n=Concate(Str_l,Str_2...Str_n);

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

Оператор конкатенації має більш високий пріоритет по відношенню до операцій відносин <, <=, >, >=, <>, =.

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

Приклади результатів порівняння декількох рядків:

'Яблуко'='Яблуко';

'Яблуко'>'Яблуко' {будь-який символ завжди більше порожнього місця}

'Яблуко'<'яблуко' {оскільки Ord('Я')<Оrd('я')}

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

Якщо при посимвольному порівнянні виявиться, що один символ «більше» іншого (його код більше), то рядок, що його містить, також вважається більшим. Залишки рядків і їх довжини ігноруються і на результат порівняння не впливають:

'Яблуко'<'Ялбуко'.

3.6 Порожній рядок

Рядок, довжина якого дорівнює нулю, називається порожнім або нуль-рядком. Порожній рядок позначається двома лапками «"». Приведемо фрагмент програми, який виводить відповідне повідомлення, якщо рядок Str_n є порожнім.

if Str_n=' '

then

writeln('Рядок Str_n порожній');

Порожній рядок використовують для додавання рядків або літер:

Symmarn_String:='';

for Ch:='A' to 'Z' do

Symmarn_String:=Symmarn_String+Ch;

Після завершення роботи цього фрагмента програми рядок Symmarn_String, буде містити всі прописні букви латинського алфавіту.

3.7 Рядки і символи

Змінні типу string і char є сумісними: змінна типу char може бути використана всюди, де допускається змінна типу string. Проте змінна типу string, призначена змінною типу char, може мати довжину, тільки рівну одиниці. Причина цього обмеження очевидна:

var

Str_3:string[3];

Str_7:string[7];

Simvol:char;

...

begin

...

Str_3:='Яна';

Simvol:='o';

Str_7:=Concate(Simvol,Str_3[2],Str_3[3]);

Simvol:=Str_3[1];

writeln(Simvol,'і',Str_7); {я і вона}

...

3.8 Масиви символів і рядка

Змінна типу array[1..n] of char є рядком постійної довжини n. Тому масивами символів можна оперувати так само, як і рядками. Проте є єдине обмеження: не можна призначати змінну типу string змінній типу array[1..n] of char.

const

Str_Const='віpно'; {рядкова константа}

tурe

Mas_Simvol=array[1..5] of char;{масив символів}

var

Const_str_1, Const_str_2:Mas_Simvol;

Perem_Str:string[10];

begin

Const_str_1:='мірно'; {масиву символів привласнили рядкову

константу завдовжки в п'ять символів}

Const_str_2:='Str_Const'; {масиву символів привласнили рядкову константу}

if Const_str_1>Const_str_2 {умова виконується оскільки «мірно»>«вірно»}

then

WriteLn('''',Const_str_1,'''більше,ніж ''',Const_str_2,''''); {буде виведено 'мірно' більше, ніж 'вірно'}

Perem_Str:='При';{рядкову константу присвоїли рядку}

Perem_Str:=concate(Perem_Str,Const_str_1);

{в змінній Perem_Str знаходитиметься рядкова константа «Приблизно»}

Const_str_1:=Perem_Str{тaкe привласнення виконати не можна}

Для виведення одинарних лапок «'» в операторах Write і WriteLn необхідно подвоювати їх число «"». В цьому випадку компілятор не сприймає їх як межі рядкових констант. Мабуть, в таких випадках в тексті програм зручніше одинарні лапки замінювати подвійними «"».

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