Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

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






Лабораторна робота №4. 4.1 Стислі теоретичні відомості





Записи у мові Pascal

4.1 Стислі теоретичні відомості

Запис – структура різнотипових даних, аналогічно таблиці, в якої є ім’я і є ім’я у кожного її поля. Тип запис визначається конструкцією:

Record

Поле1:ТипПоля1;

Поле2:ТипПоля2;

ПолеN:ТипПоляN;

End;

 

Якщо декілька полів мають однаковий тип, то їх можна перелічити в одному блоці.

Можна, наприклад, ввести тип даних, аналогічний анкеті:

 

Type

Person=Record

F_I_O_: String;

Ves, Rost: Real;

Telephone: LongInt;

End;

 

Тут пара Record…End конструює тип запис. Тип Person задає таблицю із рядка F_I_O, двох чисел з дробовою частиною Ves, Rost і одного цілого числа Telephone.

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

Тобто якщо ввести в попередньому прикладі змінну Nekto типу Person, під ім’ям Nekto буде розумітися анкета-таблиця з конкретними значеннями, та доступ до полів таблиці буде вироблятись дописуванням до імені всієї таблиці імені потрібного поля:

 

Nekto.F_I_O – значення рядка з прізвищем, ім’ям та по батькові;

Nekto.Ves – значення поля Ves.

 

Порядок опису полів у визначенні запису відповідає порядку їх зберігання у пам’яті.

Поле запису може мати будь-який тип (масив, множина, інший запис і т. п.). Для доступу до елемента таких структур застосовується правило:

 

Змінна_СкладнийЗапис.ЙогоПоле_Запис.ПолеПоляЗапису

або

Змінна_З_полем_масивом.ПолеМасив[і]

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

 

Type

RecType= Record;

Number:Byte;

Case Massa:Char of

‘т’, ’Т’:(tonna: Word);

‘г’, ’Г’:(gram: LongInt)

‘?’:(Comment1, Comment2: String[16])

End;

Тут у запису є звичайне (фіксоване) поле Number і таке ж поле Massa (обрамоване словами Case і Of), яке виконує паралельно роль селектора (поле тега). За полем-селектором перераховуються варіанти третього поля, взятого у круглі дужки. Значення селектора повинно бути визначено до його використовування у запису (також, як і в операторі вибору Case).

В будь-який час доступні поля тільки одного з можливих варіантів, описаних у типу. Ці варіанти знаходяться при зберіганні в одному і тому ж місці пам’яті, розмір якого визначається самим об’ємним із варіантів. Наприклад, приведений вище запис типу RecType зберігається як 366 байт: 1 байт (Number) + 1 байт (Massa) + 2 (16+1) байт (Comment1, Comment2).

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

Поле-селектор можна замінити ім’ям будь-якого перелічувального типу (в тому числі і введеного), тільки б він утримував елементів не менше, ніж варіантів запису. У випадку двох варіантів у Case можна вписувати тип Boolean зі значенням False і True.

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

Для роботи з полями запису у мові введений оператор приєднання:

 

With Ім’яЗмінної_Запису Do Оператор;

Тепер у середині оператора (він може бути складним) звертання до полів запису проводжується без вказання ідентифікатора самої змінної, наприклад:

 

Var

XYRec:Record

x,y:Integer;

End;

BEGIN

...

Date: 2015-10-19; view: 266; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию