Процедура перетворення числового значення в рядкове
Лабораторного заняття № 9
Тема. Організація програм, для роботи з рядковими змінними
Мета заняття. Сформувати практичні вміння та навички створювати програми для роботи з рядковими змінними, використовувати стандартні функції та процедури для рядкових змінних, знаходити кількісні характеристики тексту, перетворювати текст, виділяти слова у тексті. Формувати якості особистості студентів та пізнавальний інтерес; показати значення теми для програмування та розв’язування задач; спонукати до пізнавальної, наукової, творчої діяльності; розвивати самостійність, увагу, відповідальність та творче мислення.
Методичне забезпечення
1. Глинський Я. М. Паскаль: навчальний посібник / Глинський Я. М., Анохін В. Є., Ряжська В. А. – Львів: СПД Глинський, 2010. – 192 с.
2. Нога Л. В. Конспект лекцій з дисципліни “Основи програмування та алгоритмічні мови” Частина 1 і 2 / Нога Л. В. – Херсон: Веселка, 2006. – 134 с.
3. Інструкційні картки.
Матеріально-технічне забезпечення
1. Комп’ютери, конспекти лекцій, конспекти практичного заняття.
2. Інструкційні картки до лабораторного заняття, роздруковані завдання по варіантах.
Питання для актуалізації опорних знань
1. Які операції можна виконувати над рядками?
2. За допомогою яких операцій можна порівнювати рядки?
3. Які стандартні процедури існують для оброблення текстової інформації?
4. Наведіть приклад використання процедури delete?
5. Як працюють процедури copy, strі val?
Правила техніки безпеки
Перед початком роботи потрібно перевірити стан обладнання, робочого місця.
Під час роботи потрібно дотримуватися правил експлуатації комп’ютерного обладнання.
При роботі за комп’ютером слід дотримуватись правил особистої безпеки, зберігати відстань від рівня очей до монітора, від робочого стола до тіла.
Забороняється ходити по комп’ютерній лабораторії, розливати рідину на підлогу, столи, обладнання, заходити з їжею, розмовляти між собою.
Загальні відомості з теми
Рядкові змінні – це одномірні впаковані масиви символів, для опису яких в TURBO PASCAL уведений тип String. Наприклад, якщо рядок містить до 30 символів, її тип буде визначений як type s= String [30].
При використанні літерна константа заключається в апострофи. Максимально допустима довжина рядка – 255 байт (символів).
Змінну рядкового типу можна визначити через опис типу в розділі опису типів чи безпосередньо в розділі опису змінних. Визначення рядкового типу встановлює максимальну кількість символів, що може містити рядок.
Формат
Type
<iм'я типу>=string [ максимальна довжина рядка ];
Var
<iдентифікатор,... >: <iм'я типу>;
Або
Var
<iдентифікатор,... >: string [ максимальна довжина рядка ];
Максимальну довжину рядка можна не задавати, тоді вона автоматично приймається рівною 255.
Наприклад,
Type
Adress=string [ 50 ];
Var
a: Adress; { Довжина строкової змінної a дорівнює 50 байт }
b: string; { Максимальна довжина не задана, отже довжина строковой змінної b дорівнює 255 байт }
Для визначення пам'яті в байтах, необхідної для розміщення рядка, до значення її максимальної довжини добавляємо 1. Так, для розміщення в пам'яті змінних a і b вимагає відповідно 51 і 256 байт. Додатковий байт розташований в самому початку рядка (має нульовий номер) і містить значення поточної довжини рядка. Розглянемо структуру розміщення рядка в пам'яті на прикладі. Хай M – максимальна довжина рядка, L – поточна довжина, A - комірка пам'яті. Тоді:
A – містить величину поточної довжини;
A+1 – перший символ;
...
A+L – останній значущий символ;
L+1…+A+M – незайняті комірки пам'яті.
До окремих символів рядка можна звернутися по номеру цього символу в рядку (як до елемента одномірного масиву). Наприклад, a [3], b [255]. Значення a(0), b(0) рівні поточній довжині змінних a і b.
Типи string і char суміснi між собою. Це означає, що в усіх тих місцях, де допустиме використання даних рядкового типу, допустиме звертання і до даних типу char, і навпаки. Необхідно тільки слідкувати за тим, щоб при присвоєннi рядкового вислову змінній типу char довжина послідовності символів була рівна 1.
Процедура видалення
Delete (st, m, n), де st – рядок, m – початкова позиція, n Кількість видаляємих символів (від початкової позиції включно).
Наприклад, запис Delete (st, 4, 3) означає, що в рядку st, починаючи із позиції 4, cлід усунути 3 символи. При цьому нова поточна довжина рядка st стане на 3 менша, ніж попередня.
Якщо значення m знаходиться поза відрізком 1... 255, виникне помилка виконання програми; якщо m більше поточної довжини рядка, жоден символ усунений не буде. Якщо кількість символів, що підлягають видаленню, перевищує реально існуючу від початкової позиції до кінця рядка, тоді буде усунений лише максимально можливий в даній ситуації фрагмент.
Процедура вставки
Insert (St1, St2, I), де St1 – рядок, що вставляється, St2 – приймаючий рядок, I – позиція рядка St2, із якого починається вставка. Наприклад, запис Insert ('plain', st, 4) означає, що в рядок st треба вставити текст 'plain', починаючи із 4 позиції; при цьому символ в 4 позиції рядка st пересунеться на 5 символів праворуч.
Якщо значення I знаходиться поза відрізком 1... 255, виникне помилка виконання програми; якщо після вставки нова довжина рядка St2 перевищить її максимально допустиму довжину, значення St2 урізається до максимально допустимої довжини (виникає втрата самих правих символів). Якщо позиція вставки більше поточної довжини рядка, тоді буде мати місце проста конкатенація.
Процедура перетворення числового значення в рядкове
Str (I, st), де I – числове значення цілого чи дійсного типів, st – рядок, в який поміщається результат перетворення числа I.
Наприклад, якщо I = 5, тоді після виконання цієї процедури рядкова змінна st одержить значення '5'.
Після I може записуваватися формат (аналогічно форматам виведення). Якщо в форматі вказана недостатня для виводу кількість розрядів, місце виведення автоматично розширюєтьтся до потрібної довжини.
Наприклад, при I = 1500 після виконання процедури Str (I: 6, st) результат має вид: '1500'; при I = 4. 8e+03 після виконання процедури Str (I: 10, st) результат має вид: ' 4800'; при I = 768 після виконання процедури Str (–i: 2, st) результат має вид: '–768'. При завданні формату необхідно слідкувати, щоб його розмір не перевищував максимальної довжини рядка st, заданого при описі змінної st.