РЯДКИ 

Попередня сторінка Зміст Задачі Наступна сторінка

Рядком називається послідовність символів кодової таблиці комп’ютера.
При використанні у виразах значення рядка береться апострофи. Кількість символів в рядку (довжина рядка )може динамічно змінюватись від 0 до 255. Для визначення даних рядкового типу використовується ідентифікатор string , за яким в квадратних дужках вказується значення максимально допустимої довжини рядка. Якщо це значення не вказується, то по замовчуванню довжина рядка. Якщо це значення не вказується , то по замовчуванню довжина рядка становить 255 символів.

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

Формат.
Type <ім'я типу>=string[<максимальна довжина рядка>];
Var <ідентифікатор>:<ім'я типу>;

Змінну типу string можна задати і без опису типу:

Var <ідентифікатор>:string[<максимальна довжина рядка>];

Рядкові дані можуть використовуватись в програмі як константи. Недопустиме використання рядкових змінних в операторі case.

Приклад.
Const Adres ='вул.Богдана Хмельницького,15';
Type Stroka=string[80];
Var St:Stroka; Fam:string[20]; St1,St2:string;
file of <тип>;

Вирази, у яких операндами є рядкові дані, називаються рядковими. Вони можуть складатися з рядкових констант, змінних, функцій і операцій. Над рядковими даними допустимі операції склеювання і операції відношення.

Операція склеювання (+) засовується для приєднання декількох рядків в один.

Вираз
Результат
'I'+B'+M'+'PC' 'IBM PC'
'А'+Б'+В'+'Г'+'D' 'АБВГД'


Довжина сумарного рядка не повинна перевищувати 255 символів. Операції відношення(=, <>, <, >, >=, <=)використовуються для порівняння двох рядкових виразів. Ці операції мають нижчий пріоритет, ніж операція склеювання, тобто спочатку виконуються всі операції склеювання, а потім реалізуються операції відношення. Порівняння рядків здійснюється зліва направо до першого неспівпадаючого символу, і той рядок вважається більшим, у якого перший неспівпадаючий символ має більший ASCII код (більший номер в стандартній таблиці обміну інформації). Результат виконання операції відношення над рядковими операндами завжди має булевий тип і приймає значення True, якщо вираз істинний і False, якщо хибний.

Вираз
Результат
'DOS 5. 0'<DOS 6. 0' True
'akkord'>'AKKORD' True


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

Вираз

Результат

'Принтер '> ' '

True

'Office'= 'Office' True
'XXXXX' ='XXX' False

Для присвоєння рядковій змінній результату рядкового виразу використовується оператор присвоєння(:=). Якщо означення змінної після виконання оператора присвоєння перевищує по довжині максимально допустиму при описанні величину , то всі зайві символи справа відкидаються.

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

Процедура delete(St, P, N) знищує N символів рядка St, починаючи із позиції P. Якщо P>225 , то виникає помилка.

Значення St
Запис

Результат

‘абвгде' Delete(St, 4, 2); 'абве'
'річка Південний Буг' Delete(St, 1, 6);

'Південний Буг'

Функція Copy(St, P, N) виділяє з St рядок довжиною N символів, починаючи з позиції P.

Значення St
Запис

Результат

'ABCDEFG' Copy(St, 2, 3) 'BCD'
'гора Говерла' Copy(St, 6, 7)

'Говерла'

Функція Length(St) повертає довжину рядка St. Результат має цілочисельний тип.

Значення St
Запис

Результат

'ABCD' Length(St) 4
'аудиторія' Length(St)

9

Процедура Insert(St1, St2, P) вставляє рядок St1 в рядок St2, починаючи з позиції P.

Значення
Запис

Результат

St1='EOM PC'
St2='IBM' Insert(St1, St2, 5); 'EOM IBM PC'

Процедура Str(IBR, St) перетворює числове значення величини IBR в рядок St. Після IBR може вказуватись формат, аналогічний формату виводу. Якщо в форматі вказано недостатню кількість позицій , то поле виводу розширюється до потрібної довжини.

Значення St
Запис

Результат

2600 STR(IBR:6, St); '__2600'
8. 8E+04 STR(IBR:8, St); '___88000'

Процедура Val(St, IBR, Cod) перетворює значення рядка St в величину цілочисельного або дійсного типу і розміщує результат в змінній IRB. Значення St не повинно містити пробілів. Cod-цілочисельна змінна. Якщо під час операції перетворення помилки не було, то значення Cod рівне нулю, якщо помилка знайдена, то Cod буде містити номер позиції першого помилкового символу, а значення IRB не визначене.
Значення St
Запис

Результат

'1570' Val(St, IRB, Cod); 1570 Cod=0
'14. 3E-02' Val(St, IRB, Cod); ? Cod=5
'14. 2E+02' Val(St, IRB, Cod); 1420 Cod=0

Функція Pos(St1, St2) знаходить першу появу в рядку St2 рядка St1. Результат має цілочисельний тип і рівний номеру тієї позиції, де знаходиться перший символ рядка St1. Якщо в St2 рядка St1 не знайдено, то результат рівний 0.

Значення St2
Запис

Результат

'abcdef' Pos('de', St2) 4
'abcdef' Pos('r', St2) 0


Попередня сторінка Зміст Задачі Наступна сторінка