Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
41-46.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
31.87 Кб
Скачать

41 Оператор While.Вложенные записи

Операторы описывают те алгоритмические действия, которые

должны выполняться. Операторам могут предшествовать метки, кото-

рые можно использовать для ссылок в операторах перехода goto.

Оператор with используется для сокращения записи при обращении к полям записи или к свойствам и методам объекта. В этих случаях применение with позволяет избежать повторных ссылок на объект в последующих операторах.

Оператор with

В операциях над записями оператор with удобно использовать

для краткого обращения к полям записи. В операторе with к полям

одной или более конкретных переменных типа запись можно обращать-

ся, используя только идентификаторы полей.

В операторе with сначала производится проверка каждой ссылки

на переменную, а именно: можно ли ее интерпретировать, как поле

записи. Если это так, то она всегда интерпретируется именно таким

образом, даже если имеется доступ к переменной с тем же именем.

Допустим описаны следующие переменные:

X между ключевыми словами with и dо относится к переменной типа

указатель, а в составном операторе x и y ссылаются на x.x и y.y.

Оператор:

with V1,V2,...Vn do s;

Если выборка переменной типа запись связана с индексировани-

ем массива или разыменованием указателя, то эти действия произво-

дятся до того, как будет выполняться составной оператор.

 Запись - это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.    Структура объявления типа записи такова

Вложенные записи

Бывают случаи, когда компонент записи сам является записью, или, говоря иначе, требуется использование вложенных записей. Например:

type Point is record

X : Integer;

Y : Integer;

end record

В этом случае, доступ к полям переменной R типа Rect может быть выполнен следующим образом:

R.Left_Hight_Corner.X := 0;

R.Left_Hight_Corner.Y := 0;

R.Right_Low_Corner := P;

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

R_1 : Rect := ( (0, 0), (100, 100) );

R_2 : Rect := (

Left_Hight_Corner => (Y => 0, X => 0),

Right_Low_Corner => (100, 100)

);

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

42Применение файлового типа данных. Процедура Assign

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

 Assign  (процедура)

Назначает файловой переменной имя внешнего файла.

Объявление

 Procedure Assign(Var F; Name : String);

Замечания

Параметр F - файловая переменная любого файлового типа, а Name - выражение со строковым типом или выражение типа PChar, если допускается расширенный синтаксис. Все дальнейшие операции с переменной F на самом деле происходят с внешним файлом с именем Name.

После обращения к Assign, связь между переменной F и внешним файлом продолжает существовать до тех пор, пока для переменной F не будет сделано еще одно переназначение.

.Максимальная длина всего имени файла вместе с путем - 79 символов.

Если String - пустая строка, то есть когда Length(Name) равно нулю, то возникает специальный случай и переменная F становится связанной со стандартным файлом ввода или вывода. Эти специальные файлы позволяют программе использовать возможность операционной системы DOS - возможность переназначения ввода/вывода.

Если переменной F назначено пустое имя, то после обращения к Reset(F), F относится к стандартному устройству ввода, а после обращения к ReWrite(F), F относится к стандартному устройству вывода.

Ограничения

Не может использоваться для открытых файлов.