русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Доступ к полям


Дата добавления: 2013-12-23; просмотров: 1180; Нарушение авторских прав


Задание записей константой

Описание записей

Записи

Записи.

 

Продолжая изучение структурированных типов данных, переходим к записям.

 

Как и массивы, записи являются структурами прямого доступа, однако, в отличие от массивов, могут хранить элементы, относящиеся к разным типам данных.

 

Таким образом, запись - это вектор, компоненты которого (поля) могут относиться к разным типам данных.

 

 

В разделе var переменную типа запись описывают так:

 

var <имя_записи>: record <имя_поля1>: <тип_поля1>;

[<имя_поля2>: <тип_поля2>;]

[...]

end;

 

Имена полей должны подчиняться общим правилам построения идентификаторов. Повторение имен полей внутри одной записи не допускается.

 

Замечание: Имена полей могут совпадать с именами других переменных, поскольку на самом деле являются составными:

 

<имя_записи>.<имя_поля>.

 

Поэтому можно записать:

 

var x: real;

r: record x: real;

y: real

end;

 

Поля могут относиться к любым стандартным (базовым или сконструированным) или определенным ранее типам, даже к файловому или процедурному (см. лекцию 6).

 

Если несколько подряд идущих полей принадлежат к одному типу данных, их описания можно объединить:

 

var <имя_записи>: record <имя_поля1>,_,<имя_поляN>: <тип_полей>;

<имя_поляS>: <тип_поляS>;

...

end;

 

Например:

 

var zap1: record x,y: real;

i,j,k: integer;

flag: boolean;

s: set of 'a'..'z';

a: array[1..100] of byte;

data: record day:1..31;

month: 1..12;

year: 1900..2100;

end;

end;

 

Эта запись содержит 9 полей, три из которых сами являются составными.



 

Наиболее распространенный способ использования записей - двумерная таблица, каждый столбец которой имеет свой тип. Такую структуру описывают, например, следующим образом:

 

var tabl: array[1..100] of zap1;

 

 

Как и массивы, записи не могут быть заданы неименованной или нетипизированной константой.

 

Для того чтобы задать запись типизированной константой, следует вначале описать соответствующий тип в разделе type, а затем воспользоваться им в разделе const:

 

type <имя_типа> = record <имя_поля1>: <тип_поля1>;

[<имя_поля2>: <тип_поля2>;]

[...]

end;

const <имя_константы>: <имя_типа> = <начальное_значение>;

 

Начальное значение для переменной типа запись задается перечислением в круглых скобках начальных значений для всех полей (соответствующих типов!) с обязательным указанием имени задаваемого поля. Имя поля от его начального значения отделяется двоеточием, значения соседних полей разделяются точкой с запятой:

 

(<имя_поля1>: <значение_поля1>; _; <имя_поляN>: <значение_поляN>);

 

Например:

 

type data = record day: 1..31;

month: 1..12;

year: 1900..2100;

end;

const my_birthday: data = (day:17; month:3; year:2004);

 

Можно, конечно, не описывать тип константы отдельно, а объединить оба определения:

 

const my_birthday: record day: 1..31;

month: 1..12;

year: 1900..2100;

end;

= (day:17; month:3; year:2004);

 

Если описана двумерная таблица, то ее начальные значения задаются как вектор, каждый компонент которого является записью. Таким образом, правила задания типизированной константы-таблицы сочетают в себе правила задания массива и записи:

 

type family = (mother, father, child);

const birthdays : array[family] of data

= ((day: 8; month: 3; year: 1975),

(day: 23; month: 2; year: 1970),

(day: 1; month: 9; year: 2000));

 

 

Обратиться к полю записи можно следующим способом:

 

<имя_записи>.<имя_поля>

 

Например:

 

month:= my_birthday.month +1;

 

Как уже было упомянуто, коллизий между переменной с именем month и полем записи my_birthday.month не возникает.

 

Доступ к полю двумерной таблицы осуществляется аналогичным образом (жирные скобки являются обязательным элементом синтаксиса):

 

<имя_таблицы>[<индекс>].<имя_поля>

 

Эту запись можно трактовать так:

 

(<имя_таблицы>[<индекс>]).<имя_поля>

 

Например:

 

birthdays[mother].day := 9;

 



<== предыдущая лекция | следующая лекция ==>
ЛЕКЦИЯ 8 | Лекция 8


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.255 сек.