
- •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: работа с системной датой и временем, функции для обработки параметров командной строки.
17.Структуры данных на основе указателей.
Структурированные типы данных, такие, как массивы, множества, записи, представляют собой статические структуры, так как их размеры неизменны в течение всего времени выполнения программы.
Часто требуется, чтобы структуры данных меняли свои размеры в ходе решения задачи. Такие структуры данных называются динамическими, к ним относятся стеки, очереди, списки, деревья и другие. Описание динамических структур с помощью массивов, записей и файлов приводит к неэкономному использованию памяти ЭВМ и увеличивает время решения задач.
Каждая компонента любой динамической структуры представляет собой запись, содержащую, по крайней мере, два поля: одно поле типа указатель, а второе - для размещения данных. В общем случае запись может содержать не один, а несколько укзателей и несколько полей данных. Поле данных может быть переменной, массивом, множеством или записью.
Стек (англ. stack — стопка) — структура данных с методом доступа к элементам LIFO (англ. LastIn — FirstOut, «последним пришел — первым вышел»). Чаще всего принцип работы стека сравнивают со стопкой тарелок: чтобы взять вторую сверху, нужно взять верхнюю.
Свя́зныйспи́сок — структура данных, состоящая из узлов, каждый из которых содержит как собственные данные, так и одну или две ссылки («связки») на следующее и/или предыдущее поле. Принципиальным преимуществом перед массивом является структурная гибкость: порядок элементов связного списка может не совпадать с порядком расположения элементов данных в памяти компьютера, а порядок обхода списка всегда явно задаётся его внутренними связями. Списки бывают однонаправленными, двунаправленными (дек), кольцевыми.
Небольшая особенностью кольцевых списков, в том что последний элемент указывает на первый — это означает, что все бывшие циклы, которые работали до nil (пустоты в конце или начале списка), теперь работают пока не встретится первый элемент.
Очередь строится также как и стек. Каждый элемент "видит" предшествующий ему элемент.Над очередью можно производить только операции добавления элемента в конец очереди, и удаления элемента из начала очереди, а просмотреть очередь нельзя.
Деревья в программировании имеют по своей сути очень и очень схожее строение с генеалогическим деревом: есть какой-то корень (обычно он располагается в самом верху, т.е. дерево "растёт" вниз) и у него есть потомки, а у тех потомков свои потомки и т.д."Двоичное дерево поиска"— часто используется для решения очень широкого круга задач, чаще всего для поиска и сортировки (при больших объёмах сортируемой информации, очень даже неплохие результаты показывает).
20.Связанные списки: общие сведения. Действия со списками.
В списке каждый элемент связан со следующим и, возможно, с предыдущим. В первом случае список называется односвязным, во втором — двусвязным. Также применяются термины «однонаправленный» и «двунаправленный». Если последний элемент связать указателем с первым, получится кольцевой список.
Каждый элемент списка содержит ключ, идентифицирующий этот элемент. Ключ обычно бывает либо целым числом, либо строкой и является частью поля данных. В качестве ключа в процессе работы со списком могут выступать разные части поля данных. Например, если создается линейный список из записей, содержащих фамилию, год рождения, стаж работы и пол, любая часть записи может выступать в качестве ключа: при упорядочивании списка но алфавиту ключом будет фамилия, а при поиске, например, ветеранов труда ключом будет стаж. Ключи разных элементов списка могут совпадать.
Над списками можно выполнять следующие операции:
начальное формирование списка (создание первого элемента);
добавление элемента в конец списка; □ чтение элемента с заданным ключом;
вставка элемента в заданное место списка (до или после эл-та с заданным ключом);
удаление элемента с заданным ключом;
упорядочивание списка по ключу.
Как можно заметить, стек и очередь представляют собой частные случаи линейного списка с ограниченным набором допустимых операций. При чтении элемент списка не удаляется, в отличие от элемента, выбираемого из стека и очереди. Для работы со списком в программе требуется определить указатель на его начало. Чтобы упростить добавление новых элементов в конец списка, можно также завести указатель на конец списка. { элемент списка }