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

I1, i2, I: Set Of 1..10; {Используется задание базового типа}

B: Boolean;

В данном примере Den, L1, L, I1, I2, I – это множественные переменные

(переменные-множества).

17.Множественные выражения. Операции и встроенные процедуры над множествами. Ввод-вывод множественных переменных.

Для ввода значения множественной переменной используется операция

объединения множеств. Во входном файле необходимо подряд записать все значения,

составляющие значение данной множественной переменной.Если очередное значение переменной B не относится к базовому типу множества, то оно в множество Mn не занесется.

Для вывода значения множественной переменной используется операция

проверки вхождения элемента в множество.

Пример 4.8.

Ввод значения переменной типа множества больших латинских букв из

входного файла. Признак окончания ввода множества – точка.

Var

B: Char;

Mn: Set Of ‘A’..‘Z’; {Тип элементов вводимого множества}

Begin

Mn := []; {Начальное значение множества – пустое множество}

Repeat

Read (B); {Чтение очередного элемента множества}

77

Mn := Mn + [B] {Объединение множеств}

Until B = ’.’; {‘.’ – признак конца текста}

...

Пример 4.9.

Продолжение примера 4.8. Вывод значения переменной типа множества

латинских букв.

For B := ’A’ To ‘Z’ Do {Организация цикла по базовому типу множества}

If b In Mn Then {Анализ вхождения очередного значения базового

типа в значение множественной переменной}

Write (B: 5);

18. Типизованные константы-записи (с вариантами и без) и константы-множества. Назначение. Синтаксис задания. Примеры использования.

Типизованная константа-множество представляет собой, с точки зрения

синтаксиса, конструктор множества, то есть значение множественной

величины.Синтаксис константы-множества определяет рисунок 4.6.

Синтаксическая диаграмма <Константы_элемент> (см. рисунок 4.6) имеет

вид, который иллюстрирует рисунок 4.7.Таким образом, <Константа_элемент> представляет собой значения или диапазоны значений базового типа множества.

Константа-множество может использоваться как инициированная

переменная типа множество.

Пример 4.10.

Объявление типизованной константы-множества.

Const

Dig: Set Of 0..9 = [1, 3, 5];

Dig1: Set Of 0..9 = [];

Ch: Set Of ‘A’..‘Z’ = [‘A’..‘E’, ‘I’, ‘P’, ‘T’];

19.Файлы. Логический и физический файл. Способы доступа к элементам файла. Типы файлов. Синтаксис задания.

Для всех рассмотренных ранее производных типов было характерно

наличие заранее заданного числа компонент.Файловый тип – это произвольная последовательность элементов, длина которой заранее не определена, а конкретизируется в процессе выполнения программы.Это определение логического файла, т.е. того, который используется в программе (файл с точки зрения программиста).

Физический файл (набор данных) – это поименованная область памяти

на внешнем носителе, в которой хранится некоторая информация (файл с точки

зрения пользователя).Элементы файла записаны в нем последовательно (рисунок 5.1).

В Паскале возможны два способа обращения к элементам файла:

последовательный доступ и прямой доступ.

При последовательном доступе по файлу можно двигаться только

последовательно, начиная с первого его элемента. У последовательного файла

доступен лишь очередной его элемент. Чтобы добраться до n-го элемента

файла, необходимо начать с первого элемента и пройти через предыдущие n – 1

элементов. При прямом доступе можно обратиться непосредственно к элементу

файла с номером n, минуя предварительный просмотр n - 1 элемента файла. Файловый тип - это единственный тип значений, посредством которого

данные, обрабатываемые программой, могут быть получены извне, а результаты могут быть переданы человеку. Это единственный тип значений,

который связывает программу с периферийными устройствами компьютера.

В Паскале имеется три типа файлов (три вида переменных файлового типа, т.е. файловых переменных):

текстовые файлы;• файлы с типом;• файлы без типа.

Синтаксис задания файлового типа имеет вид, который представляет

рисунок 5.2.

Рисунок 5.2 – Синтаксическая диаграмма

задания фалового типа

Над значениями файлового типа не определены никакие операции (даже

присваивание файловой переменной значения другой файловой переменной).

Все операции могут производиться лишь с элементами файлов.

Множество операций над элементами файла определяется типом элементов.

Для доступа к отдельным элементам файлов в Паскале существуют

специальные стандартные процедуры и функции. Их называют процедурами и

функциями ввода-вывода. Обращение к ним осуществляется обычным

образом.Для удобства описания действия этих процедур используется понятие

«окно файла» («окно», текущая позиция файла, указатель файла). Окно

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

чтения или для записи.Позиция файла, следующая за последним элементом файла (или первая

позиция пустого файла) помечается специальным маркером конца файла

(Ctrl - Z при создании текстового файла с клавиатуры). С помощью этого

маркера определяется конец файла.

20.Процедура AssignFile. Назначение. Формат. Логические имена устройств ввода-вывода.

Любым другим процедурам ввода-вывода предшествует процедура

Assign.Формат ее заголовка:

Assign (Var F; Name: String)

Здесь F – имя файловой переменной любого типа; Name – выражение строкового типа.Назначение процедуры – организует связь между конкретным

физическим файлом на внешнем устройстве (конкретным набором данных) и

файловой переменной программы (логическим файлом) F. Имя конкретного набора данных определяется переменной Name. Name –

это полное имя физического файла. В общем случае оно имеет вид:

<Диск>:\<Имя_каталога>\…\<Имя_каталога>\<Имя_файла> <Диск> задается символом от A до Z (символ логического устройства).

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

умолчанию.

\<Имя_каталога>\…\<Имя_каталога>\ - это путь через подкаталоги к

фактическому имени файла. Если они опущены, то считается, что файл

находится в текущем каталоге.

<Имя_файла> - фактическое имя файла. Оно может иметь максимально 8

символов. Затем может идти уточнение (тип файла) – максимально 3 символа,отделенное от имени точкой.

Например, можно определить такие имена файлов:

Rez Rez.pas Rez.exe Rez.txt Rez.dat

Уточнение помогает программисту, пользователю, системе программирования или операционной системе работать с файлами. Пример полного имени файла:

A:\Katalog1\Katalog2\Rez.pas

Максимальная длина полного имени файла – 79 символов.Чтобы связать файловую переменную (логический файл) F с физическим

файлом Rez.dat нужно записать процедуру Assign со следующими параметрами:

Assign (F, ‘Rez.dat’);

или организовать связь в диалоге:

Var

St: String;

...

Begin

...

Writeln (‘Введите имя файла’);

Readln (St);

Assign (F, St);

Вместо имени физического файла в качестве параметра Name в списке фактических параметров процедуры Assign может использоваться любое устройство ввода-вывода (клавиатура, печать, дисплей и т. п.) В этом случае Name – это символическое (логическое) имя устройства ввода-вывода.Для использования доступны следующие символические имена устройств.1)Con – устройство консоли (при вводе – это клавиатура, при выводе –экран дисплея).Например, процедура

Assign (F, ‘Con’);означает ввод в переменную F с клавиатуры или вывод из F на экран. По умолчанию стандартные текстовые файлы Input и Output связаны с

консолью, что соответствует следующему фрагменту программы: Assign (Input, ‘Con’);

Assign (Output, ‘Con’);2)Lpt1, Lpt2, Lpt3 – устройства печати. Если подключено одно устройство печати, то используется либо имя Lpt1 либо Prn: Assign (F, ‘Prn’);

Assign (Output, ‘Prn’); С данными логическими устройствами может использоваться только имя

выходного файла. 3)Com1, Com2 – устойства последовательного ввода-вывода, используемые

для обмена данными между компьютерами. Вместо Com1 может быть использовано имя ‘Aux’.

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