Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Тип данных – запись (record). Оператор присоединения with.




Запись – это структура, состоящая из фиксированного числа компонент, называемых полями. Данные одного поля разных записей имеют один и тот же тип, а разных полей могут иметь разные типы. Общий вид описания типа record:

type t = record id11, id12, …: type1; id21, id22, …: type2; ……………….end;

здесь id – идентификаторы полей; type – типы полей; t – имя типа.

Пример. Данные комплексного вида можно описать переменной типа record.

type complex = record re, im: realend;var c: complex;

здесь complex – имя типа, а c – имя переменной. Переменная c состоит из двух полей: re и im, имеющих один и тот же тип (real). Эти поля переменной c обозначаются как c.re и c.im.

Пример. Даты каких-либо событий можно описать следующим образом:

type date = record month: 1..12; day: 1..31; year: integerend;var d: date;

В этом примере описан тип date и переменная d, принадлежащая этому типу.

Переменная d описана как запись, состоящая из трех полей: month,day и year. Каждое поле содержит соответственно данные: целое число в пределах от 1 до 12 (номер месяца), целое число от 1 до 31 (число), целое число (год).

Поле day переменной d записывается как d.day.

Например, чтобы заслать в d дату 12.01.2003, надо выполнить следующие операторы:

d.month:= 1;d.day:= 12;d.year:= 2003;

Пример. Вычислить сумму s двух комплексных чисел x = 2 + 7i и y = 6 + 3i (т.е. x, y, s: complex;).

x.re:= 2.0; x.im:= 7.0;y.re:= 6.0; y.im:= 3.0;s.re:= x.re + y.re;s.im:= x.im + y.im;

Запись может быть компонентой других структур. Например, введем тип family (семья: отец, мать, 1-й ребенок, 2-й ребенок):

type family = (father, mother, child1, child2);var birthday: array[family] of date;

где date – описанная выше запись.

Переменная birthday есть массив, состоящий из записей – дат рождения членов семьи: отца, матери, 1-го ребенка, 2-го ребенка. Каждая дата рождения имеет тип date, который может быть описан в программе.

Для занесения даты рождения, например, mother, достаточно выполнить операторы:

birthday[mother].month:= 5;birthday[mother].day:= 1;birthday[mother].year:= 1965;

 

Чтобы сделать обращение к полям записи более коротким используется оператор присоединения with:

with <переменная> do begin <операторы> end;

<переменная> — имя переменной типа запись,
<операторы> — любые операторы Паскаля.

Внутри блока операторов можно при обращении к полям записи опускать имя переменной. Вместо неуказанного имени по умолчанию будет добавлено имя из первой строчки оператора. Например:

with s do begin x:=64; {Сокращенное обращение к полю x записи s, то же что s.x} y:=32; {Сокращенное обращение к полю s.y} Name:='Saratov'; z.y:=y+20; {Можно обращаться к полям других записей, но придется использовать полную форму}   {А вот так делать нельзя} x.y:=y+20; {Обращаться к полям записи с именем <em>x</em> внутри такого оператора нельзя из-за совпадения имен записи x и одного из полей записи s} end;   Пример. Для занесения даты рождения достаточно выполнить операторы: with birthday[mother] do begin month:= 5; day:= 1; year:= 1965end;

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных