Студопедия

КАТЕГОРИИ:


Архитектура-(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)

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

ЗАПИСИ

Формат описания типа данных:

TYPE < имя типа > = RECORD

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

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

END;

VAR

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

Например,

TYPE

STR = RECORD

FAM: STRING [35];

B1, B2, B3, B4, B5: 2..5;

sB: REAL

END;

VAR

ST1, ST2, ST3, ST4: STR;

Запись STR содержит семь компонент: фамилию студента, оценки по пяти предметам, средний балл.

Доступ к полям записи осуществляется через переменные ST1, ST2,ST3 и ST4 типа STR.

Описание переменных типа Запись в разделе описания переменных:

Например,

VAR

GRUPPA: ARRAY [1..30] OF RECORD

FAM: STRING [35];

NAME: STRING [15];

GOD_R: INTEGER;

END;

 

СОСТАВНОЕ ИМЯ:

ST1.FAM, ST1.B1, ST1.B2, ST1.B3, ST1.B4, ST1.B5, ST1.SB.

ST3.SB:= (ST3.B1 + ST3.B2 + ST3.B3 + ST3.B4 + ST3.B5) / 5;

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

READ (ST1.FAM, ST1.B1, ST1.B2, ST1.B3, ST1.B4, ST1.B5);

WRITELN (ST2.FAM, ST2.SB);

Присваивание полям записи значений:

ST1.FAM:= ‘Сидоров’;

ST2.FAM:= ‘Петров’;

Применение присваивания к записям в целом:

ST3: = ST2;

После выполнения этого оператора значения полей записи ST3 станут равны значениям соответствующих полей записи ST2. Т.е. оператор присваивания ST3: = ST2 эквивалентен следующей группе операторов:

ST3.FAM: = ST2.FAM; ST3.B4: = ST2.B4;

ST3.B1: = ST2.B1; ST3.B5: = ST2.B5;

ST3.B2: = ST2.B2; ST3.SB: = ST2.SB;

ST3.B3: = ST2.B3;

Массивы из записей:

TYPE

STR = RECORD

FAM: STRING [35];

B1, B2, B3, B4, B5: 2..5;

sB: REAL

END;

VAR

gruppa: array [1..30] of STR;

Составные имена в случае работы с массивом записей будут иметь вид:

GRUPPA[1].FAM; GRUPPA[1].B3; GRUPPA[25].FAM;

Формат оператора присоединения:

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

FOR I:= 1 TO 30 DO

WITH GRUPPA [I] DO

READLN (FAM, B1, B2, B3, B4, B5);

 

Вложение записей друг в друга:

WITH R1 DO

WITH R2 DO

WITH R3 DO

 

что эквивалентно записи

WITH R1R2R3 DO …

 

Для описания комплексных чисел могут быть использованы записи:

TYPE

COMPLEX = RECORD

DEYSTV: REAL; { действительная часть числа }

MNIM: REAL; { мнимая часть числа }

END;

VAR

A,B,C1,D2:COMPLEX;

BEGIN

A.DEYSTV:= 73.8;

A.MNIM:= 43.5;


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

Формат объявления записи с вариантами:

TYPE

ZAP = RECORD

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

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

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

 

END;

Компоненты каждого варианта (идентификаторы полей и их типы) заключаются в круглые скобки

TYPE

ПОЛ = (муж, жен);

ЧЕЛ = RECORD

ФАМ: SRRING [35];

ГОДРОЖД: 1970..2000;

МЖ: ПОЛ;

CASE МЖ: ПОЛ OF

МУЖ: (ВОЕН: BOOLEAN; СПЕЦ: STRING [30]);

ЖЕН: (ЗАМУЖ: BOOLEAN; ДЕТИ: BYTE)

END;

VAR

ST1, ST2, ST3, ST4: ЧЕЛ;

Поля ВОЕН и СПЕЦ используются только в том случае, если значение поля МЖ равно МУЖ, поля ЗАМУЖ и ДЕТИ – при значении поля МЖ – ЖЕН.

Замечания:

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

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

- Если поле, соответствующее какой-либо метке, является пустым, то оно записывается так

< метка >: ();


9.4. ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ ДАННЫХ ТИПА «ЗАПИСЬ»

<== предыдущая лекция | следующая лекция ==>
Протокол работы программы. Программа, удаляющая из вводимой с клавиатуры строки пробелы между словами и записывающая в массив N длину (число символов) каждого слова | Результат работы программы
Поделиться с друзьями:


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


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



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




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