Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kitkat_otvety.doc
Скачиваний:
3
Добавлен:
01.08.2019
Размер:
3.29 Mб
Скачать

Билет 13

  1. Объявление и использование объектов типа "запись". Записи с вариантами.

  2. Условный оператор.

Запись – структура данных, состоящая из компонент, называемых полями. Каждое поле (поля в записи именуются) может иметь свой тип. Благодаря этому в записи может храниться информация разного рода. Тип записи в общем виде объявляется следующим образом

type

<имя типа>=record

<имя поля1>:<тип>;

………

<имя поляN>:<тип>;

end;

Переменные типа записи описываются в разделе var обычным образом: <имя переменной> :<имя типа записи>; Переменную-запись можно было бы объявить и непосредственно в разделе var

var

<имя переменной>=record

<имя поля1>:<тип>;

………

<имя поляN>:<тип>;

end;

К каждому полю записи можно обратиться, используя составное имя, то есть имя переменной типа записи и имя поля, разделенных точкой: <имя переменной>.<имя поля>:=<значение>;Для вложенных полей приходится продолжать уточнение.

Чтобы упростить доступ к полям, следует использовать оператор присоединения With, который записывается в общем виде следующим образом: with <список переменных, записей, полей> do <оператор>; Например with <имя переменной типа запись> do <имя поля> := <значение>;.

Значение переменных типа записи можно присваивать другим переменным того же типа.

Object Pascal разрешает использовать записи с так называемым вариантными полями. В этом случае запись состоит из фиксированных полей и вариантной части, которая задается выражением case … of. Вариантная часть состоит и нескольких вариантов. Каждый вариант определяется константой выбора, за которой следует двоеточие и список полей, заключенных в круглые скобки. В любой записи может быть только одна вариантная часть и, если она есть, она должна располагаться за всеми фиксированными полями. Особенностью вариантной части является то, что всем заданным вариантам выделяется одна и та же область памяти. Это открывает возможности преобразования типов. Выражение case … of играет роль своеобразного служебного слова, обозначающего начало вариантной части. Поэтому в конце вариантной части не стоит ставить end. Ключ выбора фактически игнорируется компилятором; единственное требование к нему состоит в том, чтобы он определял некоторый стандартный или предварительно объявленный тип.

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

2) Условный оператор If предназначен для реализации разветвляющегося вычислительного процесса. В общем виде оператор записывается следующим образом

If <логическое выражение> then <оператор1> else <оператор2>; Перед else точка с запятой не ставится. В начале вычисляется значение логического выражения. Если значение логического выражения равно true, то выполняется оператор1, следующий за словом then.Если логическое выражение равно false, то выполняется оператор2, следующий за словом else. Если какое-либо действие должно быть выполнено только при выполнении определенного условия, то оператор if может быть записан в сокращенной форме If <логическое выражение> then <оператор1>; В случае false этот оператор просто пропускается. В отличие от других языков программирования в Object Pascal операции отношения имеют меньший приоритет, чем сложные логические операции, поэтому необходимо следить за правильной расстановкой скобок. При использовании вложенных конструкций if могут возникнуть неоднозначности. Компилятор всегда считает, что else относится к последней из конструкций if, в которой не было раздела else. Если после зарезервированных слов Then или Else необходимо использовать не один, а группу операторов, то следует использовать составной оператор.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]