Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Указатели. агрегат, составляющие которого могут иметь различные атрибуты и содержать идентификатор

Записи с вариантами

Формат

Простые записи

 

ЗАПИСЬ (В ЯЗЫКЕ ПРОГРАММИРОВАНИЯ) – RECORD

агрегат, составляющие которого могут иметь различные атрибуты и содержать идентификатор.

Примечание: в некоторых языках программирования записи названы структурами.

СТ ИСО 2382/15 – 85

 

type <имя_типа>= record

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

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

………………

end;

var <идентификатор,…… >:<имя типа>;

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

Пример:

type car= record

Nomer:integer; {номер}

Marka:string[20]; {марка автомобиля}

FIO:string[40]; {ФИО владельца}

Adres:string[60]; {адрес владельца}

end;

var M,V:car;

Объем памяти, необходимый для записи, складывается из длин полей. По самому длинному полю выделяется количество байтов под хранение других полей. Обращение к значению поля осуществляется с помощью идентификатора переменной и идентификатора поля, разделенных точкой. Такая комбинация идентификаторов называется составным именем. Для присваивания полям значений используется оператор присваивания.

Примеры:

M.Nomer:=1678;

M.Marka:=’ГАЗ – 24’;

M.FIO:=’Орлов Д.Г.’;

M.Adres:=’ул. Пушкина 3-9’;

Составные имена можно использовать в операторах ввода-вывода:

readln (M.Nomer, M.Marka, M.FIO, M.Adres);

write (M.Nomer:4, M.Marka:7, M.FIO:12, M.Adres:25);

Обращение к полям в Паскале имеет вид:

with <переменная типа запись> do <оператор>;

Указав один раз переменную типа запись в операторе With, можно работать с именем полей как с обычными переменными.

Пример:

with M do

begin

nomer:=1678;

marka:= ’ГАЗ – 24;

FIO:= ’Орлов Д.Г.’;

Adres:= ’ул. Пушкина 3-9;

end ;

 

Вариантная часть формируется с помощью оператора case. Он задает особое поле записи – поле признака, которое определяет, какой из вариантов в данный момент будет активирован.

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

Формат вариантной части

type zap= record

case <поле признака>:<имя типа> of

<const выбора1>: (поле, …: тип);

<const выбора2>: (поле, …: тип);

……………….

end;

Объем памяти, необходимый для записи с вариантами, складывается из объемов полей фиксированной части и максимального по объему поля переменной части.

Пример:

type zap= record

Nomer:byte;

Articul:integer;

case flag:Boolean of

True: (cena1:integer);

False: (cena2: real);

end;

 

var pzap: zap;

 

При использовании записей с вариантами необходимо придерживаться следующих правил:

1. все имена полей должны отличаться друг от друга по крайней мере одним символом, даже если они встречаются в разных вариантах;

2. запись может иметь только одну вариантную часть и она должна размещаться в конце записи;

3. если поле, соответствующее какому-либо идентификатору, является пустым, то оно записывается следующим образом: <идентификатор>: ();

 

Указывают на какую-то другую переменную. Обозначение - ^.

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

 

Базовый тип
указатель

           
     
 
 

 


Описание указателя с помощью формы Бекуса-Наура:

- типизированный указатель:

var <имя_указателя>:^<тип_адресуемой_переменной>;

- нетипизированный указатель:

var < имя_указателя >: pointer;

 

Набор операций на Паскале:

1. определение адреса переменной @ <имя_переменной>;

2. разыменование <имя_указателя>:^

3. присваивание

p:=^integer;

q:=^byte;

t:=pointer;

p:=t;

q:=q;

4. сравнение =, <, >.

 


3 марта

 

<== предыдущая лекция | следующая лекция ==>
Текстовые файлы | Линейный список
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 402; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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