русс | укр

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

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

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

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


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

Инициализация записи


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


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

Оператор присоединения WITH

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

Пример:

var Circle: TCircle;

Circle.color:= 0;

Circle.center.x:= 10;

Circle.center.y:= 5.5;

Circle.radius:= sqr(Circle.center.x)+ sqr(Circle.center.y);

Обращение к компонентам записи в таком случае можно упростить, если воспользоваться оператором присоединения with.

Оператор with позволяет заменить составные имена, характеризующие каждое поле, просто на имена полей, а имя записи определить в операторе присоединения:

WITHMDOOP;

Здесь М – имя записи, ОР – простой или составной оператор. Оператор ОР представляет собой область действия оператора присоединения, в пределах которой можно не использовать составные имена.

Пример: использование оператора with

var Circle: TCircle;

with Circle do

begin

color:= 0;

center.x:= 10;

center.y:= 5.5;

radius:= sqr(center.x)+ sqr(center.y);

end;

Если внутри оператора with требуется обратиться к глобальной переменной, которая имеет такое же имя, как и одно из полей записи, то перед ней нужно указать через точку имя программы (раздел program).

Если внутри оператора with для некоторого имени явно не указано имя записи, то компилятор пытается интерпретировать его в следующей последовательности:

1) если в записи есть поле с искомым именем, то поиск заканчивается;

2) если в записи поля с таким именем нет, а рассматриваемый оператор with является вложенным в другой оператор with, то поиск производится среди полей внешней записи;

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

Иногда содержимое отдельной записи зависит от значения одного из ее полей (например, одно из полей определяет тип оборудования, от которого может зависеть набор его характеристик). В языке Паскаль допускается описание записи, состоящей из общей и вариантной частей. Вариантная часть при этом задается с помощью конструкции



CASEPOF,

где Р – имя поля из общей части записи.

Возможные значения, принимаемые этим полем, перечисляются так же, как и в операторе выбора case. Однако вместо указания выполняемого действия, как это делается в операторе case, здесь указываются поля варианта, заключенные в круглые скобки. Описание вариантной части завершается служебным словом end.

Тип поля Р можно указать в заголовке вариантной части.

Пример: тип поля Р указан в заголовке вариантной части

case P: Integer of

Далее рассмотрим следующий пример: описать запись для хранения данных: имя, фамилия, дата рождения. Для граждан хранить место рождения, для иностранцев – страну, дату прибытия и дату отъезда.

Пример: описание записи с вариантной частью

record

firstName, lastName: string[40];

birthDate: Date;

case citizen: boolean of

True: (birthPlace: string[40]);

False: (country: string[20];

entryDate : Date;

exitDate : Date);

end;

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

Пример: описание записи в виде типизированной константы

type

RecType = Record

x,y: Word;

ch: Char;

dim: Array[1..3] of Byte

end;

const

Rec: RecType = ( x: 127; y: 255;

ch: 'A';

dim: (2, 4, 8) );

Описание записей в виде обычных (нетипизированных) констант недопустимо.



<== предыдущая лекция | следующая лекция ==>
Обращение к записям | Операции над множествами


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


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

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

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


 


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

 
 

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

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