
- •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: работа с системной датой и временем, функции для обработки параметров командной строки.
19.Нелинейные списки. Создание и удаление динамических переменных.
Нелинейным разветвленным списком является список, элементами которого могут быть тоже списки. Если один из указателей каждого элемента списка задает порядок обратный к порядку, устанавливаемому другим указателем, то такой двусвязный список будет линейным. Если же один из указателей задает порядок произвольного вида, не являющийся обратным по отношению к порядку, устанавливаемому другим указателем, то такой список будет нелинейным.
В обработке нелинейный список определяется как любая последовательность атомов и списков (подсписков), где в качестве атома берется любой объект, который при обработке отличается от списка тем, что он структурно неделим.
Статической переменной (статически размещенной) называется описанная явным образом в программе переменная, обращение к ней осуществляется по имени. Место в памяти для размещения статических переменных определяется при компиляции программы.
В отличие от таких статических переменных в программах, написанных на языке BP, могут быть созданы динамические переменные. Основное свойство динамических переменных заключается в том, что они создаются, и память для них выделяется во время выполнения программы. Размещаются динамические переменные в динамической области памяти (heap-области). Доступ к таким переменным осуществляется с помощью указателей и ссылок.
Динамическое выделение памяти и указатели стоит использовать только при большом количестве данных, подлежащих обработке.
В соответствии с двумя типами указателей существуют два метода работы с динамически распределяемой областью памяти:
- С помощью процедур New и Dispose;
- С помощью процедур Get Mem и FreeMem(p, size); для нетипизированных указателей.
Процедура New(p) создает новую динамическую переменную того типа, на который ссылается указатель, и устанавливает значение переменной Р таким образом, чтобы оно указывало на новую динамическую переменную.Например:
new (р1); new (р2); new(pmas);
После того как указатель стал указывать на конкретный физический байт памяти, по этому адресу можно размещать любое значение с соответствующим типом.
Процедура Dispose (р) уничтожает динамическую переменную на которую ссылается указатель Р. Во избежание ошибки при повторном применении процедуры, освободившийся указатель нужно пометить словом NIL, которое означает, что указатель не ссылается ни к какому объекту. Константа NIL используется для любых указателей.
Dispose (р);
P:=nil;
Для работы с нетипизированными указателями испол. ф-и:
GetMem(p,size) – резервирует фрагмент динамической памяти требуемого размера.
Р - нетипизированный указатель;
Size - размер в байтах.
FreeMem( р, size) – освобождает фрагмент динам. памяти, кот. был ранее зарезервирован за нетипизированным указателем.
При выделении динам. памяти полезными явл. следующие ф-и:
- MemAvail – возвращает общий размер свободной памяти в байтах;
- MaxAvail – возвращает размер наибольшего непрерывного участка свободной памяти.