Основи алгоритмізації та програмування Вказівки і функції опрацювання рядкових величин
Exit Рядковий тип String Рядкові величини є величинами типу String Якщо ми хочемо змінній str призначити рядковий тип, то ми повинні у розділі описування змінних зробити запис Це означає, що ми вказуємо комп'ютеру виділити для змінної str в оперативній пам'яті місце розміром 256 байт та дозволити виконувати над нею певну групу операцій. str : string
Exit Значення рядкових величин Рядкові величини можуть мати значення, що складаються із певної кількості допустимих у комп'ютері символів. Значення рядкових величин записують у апострофах. При цьому самі апострофи до складу значення не входять. Тому наведене значення рядкової величини складається із 10 символів, що розміщені між апострофами. Знак пропуску (пробіл) також входить до складу значення величини. 'My program' Набір комп'ютерних символів, які можуть бути використані у DOS-програмах, міститься у ASCII таблиці, яка містить 256 символів, кожному із яких надано код – числове значення від 0 до 255.
Exit Довжина рядкової величини Рядкова величина може містити максимум 255 символів, а мінімум – 0 символів. st:='' Внизу наведена вказівка присвоювання рядковій величині порожнього значення. Порожнє значення в Паскалі позначається двома апострофами (не лапками!), між якимит немає жодного символу. Внизу наведена вказівка присвоювання рядковій величині порожнього значення. Порожнє значення в Паскалі позначається двома апострофами (не лапками!), між якимит немає жодного символу. Кількість символів, що містить рядкова величина називається довжиною рядкової величини
Exit Використання апострофа в рядковій величині Якщо в середині рядкової величини поставити апостроф, то транслятор вважатиме це помилкою. Щоб уникнути цього, слід поставити не один, а два апострофи підряд. Якщо в середині рядкової величини поставити апостроф, то транслятор вважатиме це помилкою. Щоб уникнути цього, слід поставити не один, а два апострофи підряд. 'комп''ютер' Запис у програмі Виведення значення на екран комп'ютер Апостроф є знаком визначення рядкової величини
Exit Обмежений тип String В цьому разі під змінну буде відведено n+1 байтів. Таким чином можна економити пам'ять. В цьому разі під змінну буде відведено n+1 байтів. Таким чином можна економити пам'ять. Коли наперед відома приблизна довжини символьного рядка, який буде введений користувачем під час виконання програми, то можна тип string дещо обмежити. string[n] n - будь-яке число в межах
Exit Нульовий символ рядкової величини st[0] – символ з номером 0, який при виведенні рядкової величини ніколи не виводиться. Функція ord(st[0]) повертає код символу – число, що відповідає кількості символів у величині. st[0] – символ з номером 0, який при виведенні рядкової величини ніколи не виводиться. Функція ord(st[0]) повертає код символу – число, що відповідає кількості символів у величині. Крім основних символів, рядкова величина містить один службовий – символ з номером 0 Це пояснює те, що рядкова величина займає у памяті 256 байт Код символу з номером 0 вказує на кількість основних символів у рядковій величині. SV:='My program' ord(SV[0])=10
Exit Доступ до окремих символів рядкової величини До окремих символів рядкової величини можна добутися так само, як і до елементів одновимірного масиву, вказавши порядковий номер необхідного символу. s[4]='o' s:='алгоритм' t:=My program' t[7]=g' Завдяки цьому рядкові величини дуже зручно опрацьовувати з використанням арифметичного циклу.
Exit Операції над рядковими величинами У Паскалі передбачено ряд операцій, які можна виконати над рядковими величинами: зчеплення рядкових величин порівняння рядкових величин визначення довжини рядкової величини виділення фрагменту рядкової величини визначення позиції фрагменту у рядковій величині вилучення фрагменту із рядкової величини вставлення фрагменту до символьної величини перетворення рядкової величини у числовий тип перетворення числової величини у рядковий тип
Exit Операція зчеплення Операція зчеплення дозволяє поєднувати декілька рядкових величин і позначається символом "+" st1:=бан; st2:=ка; stl+st2 => банка; st2+stl => кабан. st1:=бан; st2:=ка; stl+st2 => банка; st2+stl => кабан. Не слід плутати операцію зчеплення (конкатенації) з арифметичною операцією додавання. s1:=2; s2:=3; s1+s2 => 23 s2+s1 => 32 s1:=2; s2:=3; s1+s2 => 23 s2+s1 => 32 s1:=2; s2:=3; s1+s2 => 5 s2+s1 => 5 s1:=2; s2:=3; s1+s2 => 5 s2+s1 => 5
Exit Функція зчеплення рядкових величин Функція соnсаt( ) дасть той самий ефект, що й операція зчеплення. s1:=бан; s2=ка; соnсаt(s1,s2) => банка соnсаt(s2,s1) => кабан s1:=бан; s2=ка; соnсаt(s1,s2) => банка соnсаt(s2,s1) => кабан
Exit Порівняння Оскільки всі символи кодуються своїми порядковими номерами, які ще називають ASCII-кодами, то рядки можна порівнювати. При цьому будуть спочатку порівнюватися перші символи рядків, потім другі і т.д. 'Алгоритм' < 'алгоритм' оскільки в ASCII-таблиці спочатку йдуть великі літери, а потім малі, тобто код символу A (65) менший за код символу a (97) алгоритм' > 'алго' оскільки довжина першої величини більше за другу 'алгоритм' > 'alhoritm' 'алг= 'алг
Exit Функція визначення довжини рядкової величини Результатом виконання цієї функції буде ціле число типу Byte Про довжину рядкової величини вам допоможе дізнатися стандартна функція Length Length( ) Приклад: S:=My program; L:=Length(S); Приклад: S:=My program; L:=Length(S); L отримає значення 10
Exit Функція визначення позиції фрагменту в рядковій величині Результат виконання цієї функції - величина типу Integer. Для визначення місцезнаходження шуканого фрагменту рядкової величини можна скористатися функцією pos pos (S_find, S) де S_find - шуканий підрядок, S - рядок. Якщо шуканого підрядка в рядку не існує, то функція pos повертає значення 0 Приклад: S:=My program P:=pos(pro, S) Приклад: S:=My program P:=pos(pro, S) P отримає значення 4
Exit Функція виділення фрагменту рядкової величини Результатом виконання цієї функції є величина типу string. Якщо вам необхідно виділити деякий фрагмент рядкової величини, скористайтеся функцією copy Якщо вам необхідно виділити деякий фрагмент рядкової величини, скористайтеся функцією copy copy(S, Start, Len) де S - рядкова величина, з якої виділяється фрагмент, Start - ціле значення, що визначає початкову позицію фрагменту, який виділяється, Len - ціле значення, що визначає кількість символів фрагменту. Будьте уважні: якщо виділяєте фрагмент лише в один символ, то результатом буде значення не типу char, а все одно string! Приклад: S:=My program; T:=copy(S, 7, 3); Приклад: S:=My program; T:=copy(S, 7, 3); T отримає значення gra
Exit Процедура вилучення фрагменту із рядкової величини де S - рядкова величина, з якої вилучається фрагмент, Start - порядковий номер першого символу фрагменту, що вилучається, Len - кількість символів фрагменту, що вилучається. Delete - процедура, що дозволяє вилучити деякий фрагмент з рядкової величини. delete(S, Start, Len) Приклад: S:=My program; delete(S, 4, 3); Приклад: S:=My program; delete(S, 4, 3); S отримає значення My gram
Exit Процедура вставляння фрагменту до рядкової величини де T - рядкова величина, фрагмент, що вставляється, S - рядкова величина, в яку вставляється фрагмент і де отримується результат вставлення, Start - порядковий номер символа в заданій рядковій величині, після якого вставляється фрагмент. Процедурв insert дозволяє вставити фрагмент у рядкову величину insert(T, S, Start) Приклад: s:='My program'; insert( 'new ',S, 4); Приклад: s:='My program'; insert( 'new ',S, 4); S отримає значення 'My new program
Exit Процедура перетворення рядкової величини у числовий тип де S - рядкова величина, V - величина числового типу, який ви очікуєте одержати, ErrCode - помилка виконання процедури (ErrCode=0 - перетворення відбулося успішно). (Ім'я ErrCode необов'язкове) де S - рядкова величина, V - величина числового типу, який ви очікуєте одержати, ErrCode - помилка виконання процедури (ErrCode=0 - перетворення відбулося успішно). (Ім'я ErrCode необов'язкове) Досить часто зустрічається ситуація, коли рядкові величини мають числовий вигляд і виникає необхідність перетворення їх у числовий тип. В цьому вам допоможе процедура val val (S, V, ErrCode) Приклад: s1:='2'; s2:='3'; val(s1,v1,ec1); val(s2,v2,ec2); s:=s1+s2; v=v1+v2; Приклад: s1:='2'; s2:='3'; val(s1,v1,ec1); val(s2,v2,ec2); s:=s1+s2; v=v1+v2; s отримає значення '23' v отримає значення 5 s отримає значення '23' v отримає значення 5
Exit Процедура перетворення числової величини у рядковий тип де V - величина числового типу, значення якої перетворюється у рядковий вигляд, S - результат перетворення рядкового типу. Для перетворення числової величини у рядковий тип використовують процедуру str str(V, S) Приклад: v1:=2; v2:=3; str(v1,s1); str(v2,s2); v:=v1+v2; s:=s1+s2; Приклад: v1:=2; v2:=3; str(v1,s1); str(v2,s2); v:=v1+v2; s:=s1+s2; V отримає значення 5 S отримає значення '23' V отримає значення 5 S отримає значення '23'
Exit Питання для самоконтролю: 1. Чим пояснити те, що рядкові величини подібні до масивів? 2. Яка максимальна довжина символьних масивів? 3. Де знаходиться інформації про кількість заданих елементів символьного рядка? 4. Які операції дозволені над рядковими величинами? 5. Назвіть функції для роботи з рядковими величинами та призначення їх параметрів. 6. Назвіть процедури для роботи з рядковими величинами та призначення їх параметрів.