русс | укр

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

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

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

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


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

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


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


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

WITH <список перем_записей, полей> DO <оператор>.

Имена переменных-записей и полей, указанные в заголовке оператора присоединения, можно опускать при обращении к компонентам записей в области действия оператора WITH:

Пример: Обращение: with сотф do Оклад:=1344;

или

with сотф do begin

Оклад:=1344;

Адрес.Ндом:=12;

Адрес.Нкв:=34;

end;

При определении того или иного комбинированного типа имена отдельных полей могут совпадать с именами переменных. Путаницы при использовании этих переменных и соответствующих полей записи не происходит в силу того, что в частичной переменной-записи указывается и имя собственной переменной-записи. Однако при использовании оператора присоединения может возникнуть недоразумение, связанное с тем, что внутри него имена переменных-записей опускаются. Возникает вопрос: что обозначает имя внутри оператора присоединения, если и у соответствующей переменной-записи присутствует поле с таким именем, и в разделе переменных введена в употребление переменная с таким же именем? В языке Паскаль этот конфликт решается так: предпочтение отдаётся именам полей записи, т.е. считается, что внутри оператора присоединения соответствующий идентификатор обозначает имя поля, а не имя переменной.

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

Type студ=record

Фам,Имя,Отч:array [1..16] of char;

Пол: (муж,жен);

Группа:101..520;

Стип:boolean;

End;

сотр=record

Фам,Имя,Отч:array [1..16] of char;

Пол: муж..жен;

Должность:(мнс,нс,снс,асс,доц,проф);

Зарплата:integer;

End;

Var X:Студ;

Y:Сотр;

Тогда в следующем фрагменте программы, использующем оператор присоединения:



With X,Y do begin

Пол:=муж;

Имя:=’Александр’;

Стипендия:=true;

Группа:=108;

End;

Поля Пол и Имя относятся к переменной Y типа Сотр, так как эта переменная в списке переменных-записей заголовка оператора присоединения фигурирует после переменной X типа Студ, имеющей одноимённые поля Пол и Имя. Кроме того, в этом фрагменте имя Степендия в теле оператора присоединения трактуется как имя поля переменной X, а вне его как имя переменной целого типа.

Приведём ещё один пример, иллюстрирующий трактовку оператора присоединения. Пусть имеются описания переменных:

Var R1:record A,B,C:integer; end;

R2:record A,D:integer;

B:record C,E:integer;end;

end;

Тогда оператор присоединения

 

With R1,B,R2 do

Begin A:=1; B:=2; C:=3; D:=4; E:=5; end;

 

эквивалентен составному оператору

 

begin R1.A:=1; R1.B:=2; R1.C:=3; R2.D:=4; R2.B.E:=5; end;

 

Рекомендуется внимательно проанализировать каждый оператор присваивания и чётко понять, почему именно такие частичные переменные фигурируют в составном операторе, эквивалентном оператору присоединения.



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


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


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

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

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


 


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

 
 

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

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