
- •Визначувані типи
- •Опис визначуваного типу
- •Класифікація відомих визначуваних типів
- •Використання визначуваного типу
- •Підтипи
- •Перелічувані типи. 1
- •Перелічувані типи. 2
- •Об'єднаний тип
- •Складений тип
- •Рядковий тип
- •Представлення рядків
- •Представлення рядкового літерала в мові Pascal
- •Операції над рядковими знченнямив мові Pascal
- •Представлення рядкового літерала в мові с
- •Індексовані типи
- •Устрій одновимірних мультизначень
- •Устрій двовимірних мультизначень
- •Опис устрою мультизначення індексованого типу
- •Устрій паспорту індексованого типу
- •Приклади опису устрою індексованого типу. 1
- •Приклади опису устрою індексованого типу. 2
- •Індексатор
- •Основні властивості індексованих типів
- •Опис об'єктів індексованого типу. 1
- •Опис об'єктів індексованого типу. 2
- •Ініціалізація об'єктів індексованого типу
- •Ініціалізація при створенні об'єкту
- •Ініціалізація об'єкту оператором привласнення
- •Особливості індексованого типу в мові с.1
- •Особливості індексованого типу в мові с.2
- •Іменовані (комбіновані) типи
- •Механізм обробки значень іменованого типу
- •Відмінності в застосуванні іменованого та індексованого типів
- •Використання типізованих вказівних змінних іменованого типу
- •Спеціальний випадок використання типізованих вказівних змінних іменованого типу
- •Структури даних. Визначення
- •Структури даних. Визначення
- •Лінійні структури даних
- •Лінійний список
- •Лінійний список
- •Підходи до реалізації списку
- •Моделювання лінійного списку. 1
- •Векторне представлення лінійного списку. 1
- •Векторне представлення лінійного списку. 2
- •Векторне представлення стеку
- •Векторне представлення черги
- •Моделювання лінійного списку. 2
- •Зв’язане представлення черги. 2
- •Нелінійні структури даних
- •Представлення дерев
- •Устрій дерева як структури даних
- •Види дерев як структур даних
- •Моделювання дерева. Приклад 2
Операції над рядковими знченнямив мові Pascal
Основні операції із мультизначеннями рядкового типу реалізуються за допомогою стандартних підпрограм або методів. У мові Pascal для значень цього типу передбачено одну стандартну операцію конкатенації, яка позначається символом «+» і означає операцію сполучення двох рядків одного за одним.
Оскільки всі значення мультизначення одного типу, то їх можна перенумерувати, і зазвичай у мовах програмування дозволяється доступ до елемента мультизначення через вказування його номера, що називається індексатором, наприклад, myString [1].
Представлення рядкового літерала в мові с
У мові С для значень рядкового типу використовуються вказівні типізовані змінні типу char (char *). Мультизначення в цьому разі подається ланцюжком символів, але воно не зберігає довжини ланцюжка, а закінчується автоматично додаваним нулем ("\0").
C:
char *str = “Mama mila ramu”; // длина str – 14
char ch = str[3]; // ch = ‘a’
или
char *str = new char [20]; // str = “**#$%^%$#$%&&&”
str[0] = ‘\0’; // str = “” длина str – 14
str[0] = ‘t’; // str = “t**#$%^%$#$%&&&” длина str – ?
str[1] = ‘r’; // str = “tr*#$%^%$#$%&&&” длина str – ?
str[2] = ‘\0’; // str = “tr” длина str – 2
Згідно з прийнятим розміщенням мультизначень нумерація елементів мультизначення починається з нуля. Такі рядкові мультизначення в мові С називаються ASCIIZ-рядками.
Рядковий літерал в мові С позначається ланцюжком узятим в подвійні лапки.
Відмінності рядків в мовах Pascal та С
В мові С нумерація елементів мультизначення починається з нуля, а останнім елементом мультизначення є завершуючий нуль.
У мовах С і Pascal обробка мультизначень рядкового типу здійснюється лише за допомогою стандартних підпрограм, а в мовах С++ і C# - за допомогою методів класів.
У рядок можуть входити будь-які символи ASCII, включаючи й незображувальні. У мові Pascal для зображення лапки використовуються два символи лапок, що йдуть підряд. У С для подвійної лапок використовується комбінація символів \".
s := ‘ “asd” ’; s = “ \”asd\” \n dfg”;
Індексовані типи
Визначувані типи, кожне значення (мультизначення) яких складається з компонентів одного і того ж самого типу (не обов'язково символьного) називаються індексованими (indexed type). Мультизначення цих типів є гомогенними, а його елементи можуть бути доступними за номером (індексатором).
Значення індексованого типу може бути одно- або багатовимірним (зазвичай використовується розмірність не більше як 3).
Устрій одновимірних мультизначень
Устрій двовимірних мультизначень
Об'єкт, що має значення індексованого типу, називатимемо об'єктом індексованого типу, а його значення (мультизначення) – масивом (array).
Для того, щоб описати індексований тип, необхідно описати тип компонентів мультизначення і спосіб утворення мультизначень із компонентів:
Тип компонентів мультизначення зазвичай описується індикатором наперед визначеного або раніше визначеного типу.
Спосіб утворення мультизначення подається в частині опису дескрипторі (паспорті).