Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

S1: string;

S2: string[6];

S1:=’ABCDEFGH’;

S2:=S1; {S2=’ABCDEF’}

Для того, щоб апостроф сам став символом, а не лише його обмеженням, він повинен бути записаний двічі.

В пам’яті під рядки символів відводяться ділянки, кількість байт яких на одиницю більше від вказаної граничної довжини. Додатковий байт, який має нульовий номер, містить символ, код якого дорівнює реальній межі рядка. Якщо реальна менша від граничної, відведенні, але не використанні байти містять пусті символи, код яких дорівнює нулю.

Реальну довжину рядка легко змінити, при цьому інформація, яка знаходиться в хвості ділянки не втрачається і відновлюється, якщо повернутися до початкової довжини.

Рядки по структурі подібні до масивів, то можна легко оперувати символами рядка, користуючись індексацією елементів. Нульовий байт відповідає довжині.

При роботі із окремими елементами рядка слід пам’ятати, що цей елемент матиме типу char і для окремих стандартних підпрограм, що працюють з рядками він буде незастосовний.

Зауваження Рядок з одного символу і окремий символ типу char не одне і теж.

Для роботи із рядками символів, крім операцій індексного доступу можуть виконуватися операції об’єднання та порівняння та ряд дій, що реалізуються стандартними процедурами і функціями.

Об’єднання (конкатенація).

Конкатенація – приєднання одного рядка в кінець іншого.

Наприклад

S:=’і’ + ‘ стань’ + ‘ зіркою’; {і стань зіркою}

Якщо результат конкатенації перевищує граничну довжину, то надлишок просто ігнорується.

Операція порівняння

Два рядки рівні, якщо вони мають однакову кількість елементів і елементи відповідні рівні.

Наприклад

S1: string;

S2:string;

S1:= ‘ABCD’; {S1=S2}

S2:= ‘ABCD’;

Порівняння рядків порівнюється по-байтно, починаючи з першого символа.

в) Регулярнийтипмножини

Множини і тип даних теж відносяться до регулярних складених типів. Це означає, що елементи таких структур даних будуть однотипні значення (цілі числа, символи, перелічувальні типи). На відмінну від масивів, де кількість елементів є фіксованою і незміною, множини можуть змінювати свій склад, проте кількість елементів не може перевищувати деякого фіксованого значення. І масиви, і рядки можуть мати декілька однакових елементів, у множині всі елементи різні.

Оголошення множини, при доповненні стандартних слів set of, після яких вказується ідентифікатор елементів множини. В якості базових типів можуть бути лише порядкові типи і кількістю елементів до 256. це цілі byte, shorting, символи char, логічні boolean.

Наприклад

Var

A: set of byte;

B: set of 0..100;

C: set of char;

D: set of rainbow;

Значення множинних величин задається в парі квадратних дужок, переліком через кому або інтервалом.

Наприклад

A:=[109,100,0,5..50];

B:=[100,0..99];

C:=[‘A’,’Z’];

D:=[red];

Множини можуть бути пустими[ ].

В пам’яті множини представляються у вигляді чисел достатньо великого розміру. Кожне із цих чисел в своєму подвійному записі матиме одиничний біт у позиції, що відповідає присутньому елементу. Таким чином множини займають у пам’яті 256 бітів і до 32 байт.

Якщо базовий тип є перелічувальний або інтервальний із меншою ніж 256 елементів, то і відповідне поле в пам’яті буде менше. Заданя перелічувальних типів визначає порядок бітів, що відповідають кожному елементу.

5. Комбінованіструктуриданих.

а) Записи

Масиви, рядки, множини давали складені структури даних, елементи яких були одного і того ж типу. Кількість елементів в них могла б бути різною. В масивах фіксованою, в рядках і множинах могла б змінюватися, але тип був би спільним. Часто виникає проблема у формування структур даних, елементи яких мають різний тип.

Об’єднання цих типів в одну структуру

Оголошуються записи за допомогою слова record. Після нього слідує перелік окремих елементів запису. Елементи описуються через ідентифікатор і тип, що розділюється двокрапкою.

В кінці запис закривається службовим словом end.

TYPE

<ім’я типу запису> = RECORD

<ідентифікатор1>: <тип поля>;

<ідентифікатор2>: <тип поля>;

...

END;

Наприклад

Type

Student = record

Name: string;

Yy, mm, dd: word;

Pol: (female, male);

Educ: (state, pay);

Usp:real;

End;

Під величини в пам’яті відводиться, розмір якого дорівнює сумі розмірів кожного поля.

Оскільки записи є комбінаціями різних полів, то доступ до окремого поля повинен здійснюватися при допомозі складеної ідентифікації, кожне поле має своє ім’я.

Якщо весь запис позначається деяким ідентифікатором деякої змінної, то кожне ім’я поля має вигляд

<ідентифікатор запису>.<ідентифікатор поля запису>

Наприклад




Дата добавления: 2015-09-11; просмотров: 19 | Поможем написать вашу работу | Нарушение авторских прав

Как создать Process Tag? | А) можливостями мови; | With xor constructor destructor | ПРОЦЕДУРА. | X: integer; | Програма знаходження суми чисел 1..10. | Readln(c); | Readln(name); | Очевидно, що значення параметру не повино перевищувати реальну довжину рядка. | Звичайно базовий тип множини в цьому випадку повинен бути допустимим для процедур вводу-виводу. |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав