Новини високих технологій
» » Рядковий оператор в Pascal - string

Рядковий оператор в Pascal - string

2-03-2017, 16:53
2 338
Програмування постійно пов'язане з роботою з деякими даними, зокрема, з рядками. Рядковий оператор задається однаково в більшості мов, у тому числі в Pascal: string. Але в Паскалі є свої особливості і властивості, які необхідно знати перед початком роботи.

Що є рядок в Паскалі?

Перед тим як розбиратися з синтаксисом строкового типи даних в Паскалі, слід розуміти, що може бути рядком. Фактично в Pascal string - це масив символів, кожен з яких може бути будь-яким елементом з ASCII-таблиці. Тобто в як рядок може використовуватися будь-яка літера, цифра, знак пунктуації або пробіл.


Максимальна число символів в одному рядку становить 255 одиниць, і кожен з них отримує відповідний порядковий номер. Тому, якщо необхідно записати великий текст в змінну, слід створити масив string. Pascal коректно обробляє цей запит, і можна буде зберігати значно більш довгі текстові дані.

Рядковий тип даних

За рядка відповідає тип String. Pascal дозволяє програмісту вказати точне число символів або ж залишити її довжину по умовчанню - в цьому випадку вона буде дорівнює 255. Для оголошення рядковій змінній, перерахувавши однакові аргументи, необхідно після двокрапки вказати ключове слово - string і, при необхідності, в квадратних дужках прописати довжину рядка. У наведеному нижче прикладі задається рядок "str", довжиною 10 символів: var str: string[10]. У коді програми Pascal string можна задавати будь-які значення - для цього необхідно лише укласти їх в одинарні лапки.

Операції з рядками

В залежності від мови, визначається і кількість операцій, з якими може працювати рядок. Паскаль дозволяє проводити порівняння і злиття строкових даних. Операція злиття (іншими словами конкатенація або зчеплення) виконується для об'єднання декількох рядків в один. Вона реалізована за допомогою знаку додавання: "+". З його допомогою можна вибудовувати єдину рядок, що складається з ряду виразів, констант і змінних.


Варто відзначити, що при об'єднанні слів у речення шляхом конкатенації рядків, між кожним елементом пробіл буде відсутній. Тому, бажаючи отримати грамотно побудовану конструкцію, слід в потрібних місцях явно вказувати наявність проміжку, додаючи символ пробілу, наприклад, так: "".
Ще одна операція, поддержваемая в Pascal, - string compare або порівняння рядків. Для неї також використовуються найпростіші математичні знаки: рівності (=); більше/менше (> <); нерівності ( ); а також більше або одно і менше або дорівнює (>= і <=). Результатом операції буде відносини повернення логічного значення true або false. Порівняння рядків виробляється посимвольно, і при знаходженні першої нестикування результат буде визначатися згідно таблиці кодування. Так, при з'ясуванні, яка рядок більше, на позиції, де будуть знаходитися різні символи, буде проведено порівняння коду в даній таблиці, а за результатами його і буде визначено відповідь, який поверне операція.

Функції із рядковими змінними

Як і в будь-якій мові програмування, у Pascal існує ряд функцій, з якими може бути використана рядок. Паскаль дозволяє копіювати частину змінної, об'єднувати кілька рядків між собою, знаходити підрядок і обчислювати її довжину. Робиться це з допомогою наступних функцій 4:
За копіювання частині рядка відповідає функція Copy. Вона містить три параметр - рядок або ім'я змінної, позицію початку і число символів, які необхідно скопіювати: Copy (S, poz, n) - тут S - символьна змінна, а poz і n - ціле число. Крім конкатенації рядків за допомогою символу "+", здійснити дану операцію більш зручним способом можна з допомогою функції Concat. В якості аргументів використовуються всі рядки та символьні вирази, які треба об'єднати: Concat(s1s2). Часто використовуваної в Паскалі функцією є Length. З її допомогою можна обчислити довжину рядка - тобто, дізнатися число символів в ній. Єдиним аргументом її є сама рядок - на виході користувач отримає цілочисельне значення: Length(str). І останній з функцій в Паскалі є пошук початку підрядка у рядку - Pos. Вона повертає номер символу, з якого починається шукана підрядок, а в разі її відсутності, результатом виконання є 0: Pos(subS, S).

Процедури для рядків у Паскалі

Стандартних процедур, використовуваних в Pascal, всього дві. Перша дозволяє видалити деяку підрядок, а друга - вставити в рядок ряд символів.
Так, процедура Delete-видаляє з обраної рядки, з вказаної позиції, підрядок з певного числа символів. Кожен з цих параметрів є аргументом даної операції: Delete (S, poz, n). А вставити послідовність символів в рядок можна з допомогою Insert. Процедура має у ролі параметрів три значення - підрядок, рядка і позицію, починаючи з якої буде зроблена вставка символів: Insert(subS, S, poz).

Зміна типу даних з рядків

При виконанні завдань, нерідко доводиться змінювати тип змінних. Розглянемо, наприклад, як перетворити string в integer. Pascal не дозволяє складати числа, записані в рядку, тому, для добутку суми, їх тип необхідно змінити. Для цього тут є спеціальні процедури:
Щоб перетворити string в integer в Pascal необхідно скористатися процедурою StrToInt. Отримане ціле число можна записати в змінну, так і проводити з нею математичні дії. Якщо необхідно отримати число з плаваючою точки з заданої рядки, використовується процедура StrToFloat. Так само, як і з цілочисельним, результат її виконання можна відразу ж використовувати.
Щоб зробити зворотні операції перетворення числа в рядок - необхідно скористатися процедурами FloatToStr для чисел з плаваючою точкою і IntToStr для цілочислових значень. Ще одним способом зміни типу є використання спеціальних процедур, для яких не потрібно знати початковий або кінцевий тип даних, - Str і Val. Перша виробляє переклад з числа в рядок і має в якості аргументу два значення - початкове число і змінну з іменем рядка. Друга ж виконує зворотну операцію, і має на один параметр більше - крім числового і рядкового значення, в процедурі передбачений код, який повідомляє про коректність перетворення. Так, наприклад, намагаючись записати дробове число в цілочисельну змінну, код покаже номер символу, на якому відбувся збій, а при вірному перетворенні, її значення буде дорівнює 0.
Цікаво по темі
Відомі способи, як у "Ворді" прибрати пробіли між абзацами
Відомі способи, як у "Ворді" прибрати пробіли між абзацами
У цій статті ми поговоримо про те, як у "Ворді" прибрати пробіли між абзацами усіма можливими способами. Адже абзаци - це теж частина форматування. А
Цикл for: Pascal для початківців
Цикл for: Pascal для початківців
Навчитися програмувати може кожен. Головне – вивчити базові конструкції мови. Наприклад, цикл for. Pascal пропонує просту і зрозумілу запис цього
Ефективне програмування на PHP: масиви в рядок
Ефективне програмування на PHP: масиви в рядок
PHP, як сучасна мова програмування, надає можливість обробляти дані, тип яких можна визначити в момент ...
Що робить функція SQL CONCAT?
Що робить функція SQL CONCAT?
Робота з базами даних постійно пов'язана з отриманням результатів запитів. І в деяких випадках цю інформацію необхідно вивести на екран певним чином,
Javascript Array для збереження необмеженої кількості змінних
Javascript Array для збереження необмеженої кількості змінних
Логічно масив займає проміжне положення між змінними і об'єктами. Практично не слід надавати особливого значення словам. У програмі є змінні і код.
Перетворення типів. Функції Round і Trunc в "Паскаль"
Перетворення типів. Функції Round і Trunc в "Паскаль"
Перетворення типів в Pascal дозволяє реалізувати більш широкий клас задач та виконувати операції над величинами різних типів.