- •Содержание
- •Раздел 1.Подпрограммы Общие сведения
- •Процедуры Описание процедур
- •Вызов процедур
- •Процедуры без параметров
- •Процедуры с параметрами
- •Параметры-значения
- •Параметры-переменные
- •Параметры-константы
- •Параметры-переменные без типа
- •Параметры процедурного типа
- •Использование производных типов в качестве параметров подпрограмм
- •Принцип локализации имен
- •Функции Описание функций
- •Вызов функции
- •Рекурсивные подпрограммы
- •Директивы
- •Библиотечные модули пользователя Общие сведения
- •Структура модуля Unit
- •Особенности работы с модулями
- •Подключение к программе внешнего файла
- •Раздел 2.Простейший ввод-вывод Процедуры ввода из стандартного текстового файла Input
- •248 15 4 70 Значения 1-й строки
- •11 Значения 2-й строки
- •Процедуры вывода в стандартный текстовый файл Output
- •Раздел 3.Записи Структура записи
- •Записи без вариантной части
- •Записи с вариантами
- •Оператор присоединения With
- •Константа-запись
- •Раздел 4.Множества Общие сведения
- •Конструктор множества
- •Задание множественного типа
- •Операции над множествами
- •Ввод / вывод значения множественной переменной
- •Типизованные константы-множества
- •Раздел 5.Файлы Общие сведения
- •Процедура Assign
- •Файлы с типом
- •Процедура Assign
- •Процедура Rewrite (f)
- •Процедура Write (f, v1 [, v2, … , vn])
- •Процедура Reset (f)
- •Процедура Read (f, V [, v2, …, vn])
- •Функция Eof(f)
- •Процедура Seek (f, n)
- •Функция Filepos (f)
- •Функция Filesize(f)
- •Процедура Close (f)
- •Текстовые файлы
- •Процедура Assign (f, Name)
- •Процедура AssignСrt(f)
- •Процедура Append (f)
- •Процедура Rewrite (f)
- •Процедура Reset (f)
- •Процедура Read ([f,] v1 [, v2, …, vn])
- •Процедура Readln [([f] [,] [v1, v2, …, vn])]
- •Процедура Write ([f,] e1 [, e2, …, en])
- •Процедура Writeln([f,][e1,e2, …,en])
- •Процедура Close(f)
- •Процедура SetTextBuf (f, Buf [, Size])
- •Процедура Flush (f)
- •Сравнительная характеристика представления информации в файлах с типом и текстовых файлах
- •I. Представление числовой информации.
- •II. Представление текстовой информации.
- •Файлы без типа
- •Процедуры Reset и Rewrite
- •Процедура Blockread
- •Процедура Blockwrite
- •Проверка операций ввода-вывода
- •Раздел 6.Ссылочный тип (тип указатель) Общие сведения
- •Методы работы с динамическими переменными
- •Процедуры New и Dispose
- •Процедуры Getmem и Freemem
- •Процедуры Mark и Release
- •Раздел 7.Динамические структуры данных Динамические цепочки Структура динамической цепочки
- •Формирование цепочки
- •Поиск элемента в цепочке
- •Удаление элемента из цепочки
- •Вставка элемента в цепочку
- •Линейный однонаправленный список
- •Двунаправленные списки
- •Вставка элемента
- •Создание двунаправленного кольцевого списка с заглавным звеном
- •Удаление элемента
- •Поиск элемента
- •Очереди и стеки
- •Очередь lifo
- •Очередь fifo
- •Общие сведения
- •Способы организации таблиц
- •Однонаправленный список.
- •Однонаправленный список с упорядоченными записями.
- •Однонаправленный список с отдельным хранением текста записи.
- •Представление в виде массива.
- •Двоичное дерево.
- •Двоичные деревья Структура двоичного дерева
- •Построение дерева
- •Поиск записи в дереве
- •Включение записи в дерево
- •Удаление записи из дерева
- •Раздел 8.Оверлеи Общие сведения
- •Правила оформления оверлейных программ
- •Инициализация работы оверлеев
- •Включение администратора оверлеев
- •Обработка ошибок администратора
- •Размещение оверлейного файла в ems-памяти
- •Управление оверлейным буфером
- •Литература Основная и дополнительная литература
- •Перечень наглядных пособий, методических указаний, методических материалов и используемых в учебном процессе технических средств
Ввод / вывод значения множественной переменной
Для ввода значения множественной переменной используется операция объединения множеств.
Пример 4.8.
Ввод значения переменной типа множества больших латинских букв из входного файла. Признак окончания ввода множества – точка.
Var
B: Char;
Mn: Set Of ‘A’..‘Z’; {Тип элементов вводимого множества}
Begin
Mn := []; {Начальное значение множества – пустое множество}
Repeat
Read (B); {Чтение очередного элемента множества}
Mn := Mn + [B] {Объединение множеств}
Until B = ’.’; {‘.’ – признак конца текста}
...
Во входном файле необходимо подряд записать все значения, составляющие значение данной множественной переменной.
Если очередное значение переменной B не относится к базовому типу множества, то оно в множество Mn не занесется.
Для вывода значения множественной переменной используется операция проверки вхождения элемента в множество.
Пример 4.9.
Продолжение примера 4.8. Вывод значения переменной типа множества латинских букв.
For B := ’A’ To ‘Z’ Do {Организация цикла по базовому типу множества}
If B In Mn Then {Анализ вхождения очередного значения базового
типа в значение множественной переменной}
Write (B: 5);
…
Типизованные константы-множества
Типизованная константа-множество представляет собой, с точки зрения синтаксиса, конструктор множества, то есть значение множественной величины.
Синтаксис константы-множества определяет Рисунок 4 .34.
Синтаксическая диаграмма <Константы_элемент> (см. Рисунок 4 .34) имеет вид, который иллюстрирует Рисунок 4 .35.
Таким образом, <Константа_элемент> представляет собой значения или диапазоны значений базового типа множества.
Константа-множество может использоваться как инициированная переменная типа множество.
Рисунок 4.34 – Синтаксическая диаграмма константы-множества
Рисунок 4.35 – Синтаксическая диаграмма константы-элемента
Пример 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’];
Раздел 5.Файлы Общие сведения
Для всех рассмотренных ранее производных типов было характерно наличие заранее заданного числа компонент.
Файловый тип – это произвольная последовательность элементов, длина которой заранее не определена, а конкретизируется в процессе выполнения программы.
Это определение логического файла, т.е. того, который используется в программе (файл с точки зрения программиста).
Физический файл (набор данных) – это поименованная область памяти на внешнем носителе, в которой хранится некоторая информация (файл с точки зрения пользователя).
Элементы файла записаны в нем последовательно (Рисунок 5 .36).
Рисунок 5.36 – Структура файла
В Паскале возможны два способа обращения к элементам файла: последовательный доступ и прямой доступ.
При последовательном доступе по файлу можно двигаться только последовательно, начиная с первого его элемента. У последовательного файла доступен лишь очередной его элемент. Чтобы добраться до n-го элемента файла, необходимо начать с первого элемента и пройти через предыдущие n – 1 элементов.
При прямом доступе можно обратиться непосредственно к элементу файла с номером n, минуя предварительный просмотр n - 1 элемента файла.
Файловый тип - это единственный тип значений, посредством которого данные, обрабатываемые программой, могут быть получены извне, а результаты могут быть переданы человеку. Это единственный тип значений, который связывает программу с периферийными устройствами компьютера.
В Паскале имеется три типа файлов (три вида переменных файлового типа, т.е. файловых переменных):
текстовые файлы;
файлы с типом;
файлы без типа.
Синтаксис задания файлового типа имеет вид, который представляет Рисунок 5 .37.
Рисунок 5.37 – Синтаксическая диаграмма задания фалового типа
Над значениями файлового типа не определены никакие операции (даже присваивание файловой переменной значения другой файловой переменной).
Все операции могут производиться лишь с элементами файлов. Множество операций над элементами файла определяется типом элементов.
Для доступа к отдельным элементам файлов в Паскале существуют специальные стандартные процедуры и функции. Их называют процедурами и функциями ввода-вывода. Обращение к ним осуществляется обычным образом.
Для удобства описания действия этих процедур используется понятие «окно файла» («окно», текущая позиция файла, указатель файла). Окно определяет позицию доступа, т.е. тот элемент файла, который доступен для чтения или для записи.
Позиция файла, следующая за последним элементом файла (или первая позиция пустого файла) помечается специальным маркером конца файла (Ctrl - Z при создании текстового файла с клавиатуры). С помощью этого маркера определяется конец файла.