Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция Pascal_mat №10.doc
Скачиваний:
3
Добавлен:
02.12.2018
Размер:
95.74 Кб
Скачать

Опис символьних змінних

var < ім’я_змінної >:char;

char – службове слово, що позначає тип даної змінної (char – це скорочення від англійського слова character, що означає в перекладі «символ»).

Наприклад, var sim, bukv: char;

Якщо змінній символьного типа присвоюється яке-небудь значення, то його також потрібно помістити в апострофи. Наприклад: Sim: = ‘ш’; означає що змінній sim було присвоєне значення букви ш. Можливий в програмі і такий оператор присвоєння: cfr:=‘7’; Наявність в програмі такого запису говорить про те, що змінній cfr присвоюється значення символу 7 (а не числа 7, як було б у випадку з числовою змінною). Різниця в тому, що символ 7 не може брати участь в арифметичних і інших операціях, які можливі над числом 7.

Порівняння символьних змінних

Подібно до звичайних чисел символьні величини можна порівнювати. При цьому фактично порівнюються не самі ці величини, а відповідні їм числові коди. Наприклад, можна записати таку операцію порівняння: ‘л’<‘н’ результат цієї операції буде істинним (рівний true), оскільки код символу ‘л’ рівний 171, а код символу ‘н’ рівний 173. А якщо ми запишемо наступне співвідношення: ‘к’>‘т’ то таке співвідношення буде помилковим (false), оскільки код символу ‘к’ рівний 170, а символу ‘т’ – 226. Можна перевіряти символьні величини також на рівність або нерівність один одному. Знаки для операцій порівняння символьних величин використовуються ті ж, що і для числових величин.

Функції перетворення chr і ord

У мові Паскаль для роботи з символьними змінними використовуються спеціальні стандартні функції chr і ord. Як вхідне значення (аргументу) функції chr указується десятковий код символу, а як результат видається відповідний коду символ. Загальний вид функції: chr(к), де k – десятковий числовий код символу. Наприклад, значення chr(33) буде рівне ‘!’, chr(233) – ‘щ’ і т.д.

Дія функції ord протилежна функції chr. Аргументом даної функції є символ, а значенням – десятковий код даного символу. Загальний вид даної функції: ord(‘s’) де s – символ, код якого ми визначаємо.

Зверніть увагу, що оброблюваний функцією символ повинен бути обов’язково поміщений в лапки, інакше при компіляції програми з використанням даної функції буде видане повідомлення про помилку. Тому запис функції повинен виглядати в програмі таким чином ord (‘ж’), ord "(‘ф’) і т.д. Для символу ‘ж’ функція видасть код 166, для символу ‘ф’ – 228.

Робота з рядками Опис рядкових змінних

Природно, що для ефективної роботи з текстом необхідно уміти обробляти не тільки окремі символи, але і слова, фрази, рядки, тобто групи символів. Для обробки таких груп символів в Паскалі використовується рядковий тип даних. Для опису рядкових змінних використовується службове слово string. Опис рядкової змінної в загальному вигляді виглядає таким чином: var <ім’я_зміної> : string[довжина]; після слова string вказується довжина описуваної змінної, тобто максимальна кількість символів, яка може містити дана змінна. Наприклад: var stroka:string[25];

Параметр, поміщений в квадратні дужки, не є обов’язковим і використовується в тому випадку, якщо існують причини, по яких необхідно жорстко обмежити максимальну довжину рядкової змінної. Якщо ж після імені змінної її довжина не указується, то за замовчуванням вона вважається рівною 255 символам. В цьому випадку опис символьної змінної виглядатиме так: var stroka:string;

Значення символьних змінних так само, як і вже знайомі нам символьні константи (до текстових констант відносяться, зокрема, повідомлення, що виводяться оператором Writeln), повинні обов’язково полягати в апострофи. Таким чином, оператор присвоєння рядкової змінної stroka значення ‘набір символів’ виглядатиме таким чином:

stroka:=‘набір_символів’;

Операція зчеплення (конкатенації) (+) застосовується для з’єднання кількох рядків в один результуючий рядок. Наприклад, П’+’Е’+’О’+’М’=‘ПЕОМ’

Довжина результуючого рядка не повинна перевищувати 255 символів.

Операції відношення (=, <, >, <>, <=, >=) здійснюють порівняння двох рядкових операндів і мають пріоритет нижчий, ніж операції зчеплення (склеювання).

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

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

Так значення функції length, аргументом якої є розглянута вище змінна stroka, буде рівне 14, а не 25, як вказано в розділі описів, оскільки фраза ‘набір символів’ містить 14 символів.

Якщо є необхідність працювати не зі всім рядком цілком, а з яким-небудь окремим символом, що міститься в ній, то до цього символу можна звернутися в програмі безпосередньо. При цьому необхідно вказати поряд з ім’ям рядкової змінної порядковий номер символу в рядку. Номер символу вказується в квадратних дужках. Наприклад, якщо ми напишемо в основній частині програми (а не в розділі описів) stroka[5], то працювати ми будемо з буквою «р», яка є п’ятим по черзі символом в даному рядку.

Номер символу в рядку, взятий в квадратні дужки, може вказуватися не тільки у вигляді числової константи, але і за допомогою змінної цілого типа. В цьому випадку номер символу, що «викликається», буде рівний значенню даної цілочислової змінної. Наприклад, якщо ми присвоїмо цілочисловій змінній i значення 10, а потім вкажемо в програмі stroka[i], то в результаті буде «викликана» буква ‘в’, яка є в рядку десятою по черзі.

Крім того для роботи з рядками використовують: