РЯДКИ
![]() |
Зміст | Задачі | ![]() |
Рядком називається послідовність символів кодової таблиці
комп’ютера.
При використанні у виразах значення рядка береться апострофи. Кількість символів
в рядку (довжина рядка )може динамічно змінюватись від 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' |
Значення 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 |
Значення St2
|
Запис
|
Результат |
'abcdef' | Pos('de', St2) | 4 |
'abcdef' | Pos('r', St2) | 0 |
![]() |
Зміст | Задачі | ![]() |