КАТЕГОРИИ: Архитектура-(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; Просмотров: 429; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |