Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тихоненко_Програмування.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
599.55 Кб
Скачать

2. Операції порівняння строкових даних

Строкові дані можна порівнювати, використовуючи операції відносини:

=, <> (не дорівнює), >, >=, <, <=.

Так, наприклад, у результаті виконання операції порівняння S=P двох строкових величин S і P виходить логічне значення TRUE, якщо тексти S і P цілком збігаються, інакше виходить логічне значення FALSE. Аналогічно виконується операція порівняння S<>P, що є запереченням операції S=P. Операція порівняння S<P виконується посимвольно (як і інші операції порівняння строкових величин). У результаті виконання операції S<P виходить значення TRUE, якщо для першої ж пари незбіжних символів відповідний символ з тексту P має більший порядковий номер в алфавіті (старший код у ASCII), чим символ у тексті S. У противному випадку виходить значення FALSE. Аналогічно виконуються й інші операції порівняння.

Наприклад, що випливають логічні вираження мають значення TRUE:

'FATHER' < 'MOTHER', 'PI' > 'PEACE', 'HELLO ' > 'HELLO',

а вираження

'CAT'='DOG', 'BETA'<>'BETA', 'TABLE' < 'CHIAR'

мають значення FALSE.

При порівнянні рядків різної довжини, якщо перший рядок коротше другої і всі її символи збігаються з відповідними символами другого рядка, те більшої вважається друга, більш довга рядок.

3. Операція присвоювання для рядків

У мові Turbo-Pascal використовуються два підходи для обробки змінних типу String. Перший припускає обробку всього рядка як єдиного цілого (єдиного об'єкта). Другий розглядає рядок як складений об'єкт, що складається з окремих символів, тобто елементів типу Char, доступних при обробці кожний окремо.

Перший підхід надає можливість присвоювання строкової змінної за одну операцію значення цілого рядка символів, наприклад:

line1:='Це-рядок!';

Другий підхід забезпечує доступ до окремих символів рядка по номері позиції для їхнього читання і запису. Для доступу необхідно вказати ім'я рядка й у квадратних дужках номер позиції елемента в рядку, наприклад:

line2[1] :='А'; line2[26]:='Z';

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

write(ord(line2[1]);

видасть на екран ASCII-код першого символу в рядку line2.

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

У мові Pascal для роботи з рядками мається ряд стандартних (убудованих) функцій.

  • Функція LENGTH (довжина) – для заданого значення типу String видає ціле число, рівне кількості символів у рядку.

Вона має вигляд

length('текст'); або length(<ім'я зміною типу string>);

Наприклад, після виконання програми:

program txt;

var a,b:string[20];

begin

a:= 'Привіт!'; b:='';

write(length(a));

write(length(b));

write(length(a);length(b);length('Комп'ютер!'))

end.

на екран буде виведено три числа: 7, 0, 10.

  • Функція CONCAT (конкатенація або склейка) виконує операцію з'єднання (склеювання) рядків, що є аргументами функції.

Вона має вигляд

concat(S1,S2,...,Sn),

де S1,S2,...,Sn – строкові константи, змінні типу Char або/і String. Результатом операції буде рядок, отримана конкатенацією значень величин S1,S2,...,Sn. Якщо довжина результату виявиться більше 255, то виникає помилка часу виконання (run time error).

Наприклад, результатом програми

program world;

var a:char;

b:string[20];

begin

a:='І';

b:='форма';

write(concat(a,'н',b,'тика'))

end.

буде рядок 'Інформатика'.

Помітимо, що в даній версії мови PASCAL операцію конкатенації записану у виді S:=CONCAT(S1,S2,...,Sn) можна замінити еквівалентним записом

S:=S1+S2+...+Sn.

  • Функція POS(P,S) (P,S-рядка) визначає, чи утримується перший рядок P у другому рядку S. Результатом функції є ціле число, що показує номер символу, починаючи з якого перший рядок входить у другу. Якщо перший рядок не утримується в другий, то функція видає значення 0.

Наприклад, значення функції

pos('трон','електроніка') дорівнює 5;

pos('град','електроніка') дорівнює 0;

pos('електрон','електроніка') дорівнює 1.

  • Функція COPY(S,P,L) (вирізка) формує подстроку довжиною в L символів, починаючи з позиції P вихідного рядка S.

Наприклад, оператор