- •1.Концепция типов данных.
- •3.Множества. Операции над множествами.
- •Множество имеет зарезервированное слово set of.
- •Сравнение множеств
- •Проверка включения
- •4.Записи. Записи с вариантами.
- •2.Структурированные типы данных
- •5.Файлы. Виды файлов. Доступ к файлам. Описание файлового типа. Файловая переменная. Общая схема работы с файлами.
- •30. Файлы
- •6.Текстовые файлы. Процедуры и функции для работы с текстовыми файлами.
- •Способы обмена с текстовыми файлами
- •II Операции записи в файл
- •III Логическая функция Eoln
- •IV Процедура открытия файла для дополнения
- •7.Процедуры и функции модуля dos для работы с файлами.
- •8.Типизированные файлы. Процедуры и функции для типизированных файлов.
- •Процедуры и функции для работы с типизированными файлами
- •Функция ioResult
- •9.Нетипизированные файлы. Процедуры и функции для нетипизированных файлов.
- •11.Модульное программирование: понятие, принципы.
- •12.Модуль crt: процедуры и функции управления экраном, работа с окнами, задержка выполнения программы.
- •Процедуры работы с экраном
- •13.Модуль graph: общ.Сведения, перекл. В граф. Режим и обратно, вывод текста в граф. Реж., система координат граф. Экрана.
- •15.Динамические структуры данных. Распределение памяти для программы и её данных.
- •16.Динамически формируемые массивы и строки.
- •18.Линейные списки.
- •19.Нелинейные списки. Создание и удаление динамических переменных.
- •23.Объектно – ориентированное программирование (ооп): понятие, принципы
- •24.Технология программирования
- •25.Этапы решения задач на эвм
- •26.Жизненный цикл программы
- •17.Структуры данных на основе указателей.
- •20.Связанные списки: общие сведения. Действия со списками.
- •21.Двоичные поисковые деревья: общие сведения, индексы, пример построения двоичного поискового дерева.
- •22.Внешние и внутренние сортировки.
- •14.Модуль dos: работа с системной датой и временем, функции для обработки параметров командной строки.
Множество имеет зарезервированное слово set of.
Объединение множеств (+)
Объединением 2-х множеств называется третье множество, которое содержит элементы, которые принадлежат хотя бы одному из множеств операндов, при этом каждый элемент входит в множество только один раз.
Разность множеств (-)
Разностью 2-х множеств является третье множество, которое содержит элементы 1-го множества, не входящие во 2-е множество.
Пересечение множеств
Пересечением множеств называется множество, содержащее элементы одновременно входящие в оба множества операндов. Операция обозначается знаком умножения.
Логические операции над множествами: проверка принадлежности элемента множеству, проверка включения элемента в множество, сравнение множеств.
Сравнение множеств
Множества считаются равными, если все элементы, содержащиеся в одном множестве присутствуют в другом, и наоборот.
Проверка включения
Одно множество считается входящим в другое, если все элементы содержатся во втором, при этом обратное в общем случае может быть несправедливо.
Проверка принадлежности
Логическая операция проверки принадлежности элемента множеству записывается через оператор in.
4.Записи. Записи с вариантами.
Запись представляет собой совокупность ограниченного числа логически связанных компонент, принадлежащих к разным типам. Компоненты записи называются полями, каждое из которых определяется именем. Поле записи содержит имя поля, вслед за которым через двоеточие указывается тип этого поля. Поля записи могут относиться к любому типу, допустимому в языке Паскаль, за исключением файлового типа.
Описание записи в языке ПАСКАЛЬ осуществляется с помощью служебного слова RECORD, вслед за которым описываются компоненты записи. Завершается описание записи служебным словом END.
Например, записная книжка содержит фамилии, инициалы и номера телефона, поэтому отдельную строку в записной книжке удобно представить в виде следующей записи:
type Row=Record
FIO: String[20] ; TEL: String[7] end;
var str: Row;
Описание записей возможно и без использования имени типа, например:
var str: Record
FIO: String.[20] ; TEL: String(7] end;
Обращение к записи в целом допускается только в операторах присваивания, где слева и справа от знака присваивания используются имена записей одинакового типа. Во всех остальных случаях оперируют отдельными полями записей. Чтобы обратиться к отдельной компоненте записи, необходимо задать имя записи и через точку указать имя нужного поля.
Такое имя называется составным. Компонентой записи может быть так- же запись, в таком случае составное имя будет содержать не два, а большее количество имен.
Обращение к компонентам записей можно упростить, если воспользоваться оператором присоединения with.
Он позволяет заменить составные имена, характеризующие каждое поле, просто на имена полей, а имя записи определить в операторе присоединения:
Записи с вариантами в различных ситуациях могут иметь различную структуру.
Предположим, что написана программа для введения списка библиографических ссылок. Если известно, что все входы в этом списке – ссылки на книги, то можно использовать следующее описание:
Const
Kol = 1000;
Type
Entry = Record
Autor, Title, Publisher, City : String;
Year : 1..2000; End;
Var List : Array[1..Kol] of Entry;
Если ограничиваться только записями с фиксированными частями, то следует описать различные массивы для каждого вида записей. Использование записей с вариантами позволяет образовать структуру, каждый вход которой соответствует содержанию записи.
Это описание делится на две части: фиксированную и вариантную. Поля Autor, Title, Year составляют фиксированную часть. Оставшаяся часть описания Entry образует вариантную часть, структура которой, подобно хамелеону, может меняться в пределах двух альтернативных определений.
Первая строка вариантной части представляет оператор Case, который отличается тем, что в качестве селектора применяется идентификатор типа. Значения EntryType используются в качестве имен двух альтернатив определения записи. Когда эта компонента имеет значение Book, можно обращаться к следующим полям:
Autor, Title, Year, Publisher, City
С другой стороны, когда она принимает значение Magazine, то можно обращаться к таким полям:
Autor, Title, Year, MagName, Volume, Issue
Для определения состояния записи с вариантами достаточно проверить значение поля тега.
Вариантная часть может содержать произвольное число альтернатив. Хотя перечисляемые типы предпочтительнее, так как они более понятны, тем не менее для именования альтернатив записи с вариантами могут использоваться идентификаторы произвольного порядкового типа.
Очевидно, что один и тот же идентификатор поля не может дважды использоваться при описании записи, даже если он применяется в определении различных альтернатив записи с вариантами. Если же это условие не выполняется, то обращение к такому идентификатору приведет к непредсказуемому результату.