
- •1. Основные этапы развития программирования как науки. Стихийное программирование.
- •2 Этап.
- •3 Этап.
- •4 Этап.
- •2. Структурный подход к программированию.
- •3. Объектный подход к программированию.
- •4. Процедуры с параметрами. Описание, пример.
- •5. Функции с параметрами. Описание, пример.
- •6. Область действия идентификаторов при использ. Проц. И функц.
- •7. Способы передачи параметров. Формальные и фактич. Параметры.
- •Параметры-значения
- •Параметры-константы
- •8. Параметры – значения. Механизм работы.
- •9. Параметры – переменные. Механизм работы.
- •10. Параметры – константы. Механизм работы.
- •11. Рекурсия. Понятия, пример.
- •12. Строки в delphi. Способы реализации строк. Основные процедуры. И функции.
- •13. Записи в delphi. Пример программы.
- •15. Модули в delphi. Понятие, описание, использование.
- •16. Программирование с использованием динамической памяти. Структура оперативной памяти. Понятие указателя.
- •17. Указатели. Описание в программе. Допустимые операции.
- •Операции над указателями
- •Нулевой указатель
- •18. Статические и динамические переменные. Динамические структуры данных.
- •19. Линейные списки. Основные операции над линейными списками.
- •20. Формы хранения информации. Их сравнение.
- •21. Стэк. Понятие, описание в программе, основные операции.
- •22. Очередь. Понятие, описание в программе, основные операции.
- •23. Списки. Понятие, описание в программе, основные операции.
- •25. Постфиксная, префиксная, инфиксная записи выражения.
- •26. Деревья. Понятия бинарного дерева. Способы представления д.
- •27. Бинарное дерево. Способы прохождения дерева.
- •28. Бинарное дерево поиска. Построение, использование.
- •Использование бинарных деревьев поиска Создание примеров деревьев поиска.
- •Симметричный метод прохождения.
- •Дублированные узлы
- •30. Графические средства delphi.
- •31.Понятие объекта. Основные свойства ооп.
- •32. Поля, методы и свойства объекта.
- •33. Использование конструктора и деструктора.
- •35. Основные операторы языка с.
- •36. Операторы инкремента и декремента. Операторы присваивания.
- •37. Функции scanf() и printf().
- •38. Способы задания развветвляющегося алгоритма в с. Пример.
- •39. Циклические алгоритмы. Виды циклов в с. Пример.
- •40. Табулирование функции одной переменной на заданном отрезке. Блок-схема. Программа.
- •41. Алгоритм вывода простых чисел меньше 100 в с.
- •42. Алгоритм разложения числа на простые множители в с.
- •43. Организация средства человеко-машинного интерфейса. Пользовательский интерфейс. Согласованность пи.
- •44. Стиль программирования. Критерии качества программы.
- •45. Тестирование программных продуктов.
27. Бинарное дерево. Способы прохождения дерева.
Бинарное дерево-это конечное множество элементов, которое либо пусто, либо содержит один элемент, а остальные элементы множества делятся на два непересекающихся подмножества, каждое из которых само является бинарным деревом. Эти подмножества называются левым и правым поддеревьями исходного дерева.
Глубина бинарного дерева - это максимальный уровень листа дерева, что равно длине самого длинного пути от корня к листу дерева.
Для дерева вводится понятие обхода – порядок просмотра элементов дерева.
Существует 6 способа обхода бинарного дерева.
КЛП – сверху вниз
ЛКП – слева направо
ПКЛ – справа налево
ЛПК – снизу вверх
ПЛК
КПЛ
28. Бинарное дерево поиска. Построение, использование.
Бинарное дерево поиска является нелинейной структурой для хранения множества элементов. Как и любая списковая структура, дерево должно допускать вставку, удаление и поиск элементов. Для поискового дерева требуется такая операция вставки, которая правильно располагает новый элемент. Рассмотрим, например, вставку узла 8 в дерево BinSTree_1. Начав с корневого узла 25, определяем, что узел 8 должен быть в левом поддереве узла 25 (8<25). В узле 10 определяем, что место узла 8 должно быть в левом поддереве узла 10, которое в данный момент пусто. Узел 8 вставляется в дерево в качестве левого сына узла 10.
До каждого вставляемого в дерево узла существует конкретный путь. Тот же путь может использоваться для поиска элемента. Поисковый алгоритм берет ключ и ищет его в левом или в правом поддереве каждого узла, составляющего путь.
В связанном списке операция удаления отсоединяет узел и соединяет предшествующий ему узел с следующим узлом. На бинарном дереве поиска подобная операция намного сложнее, так как узел может нарушить упорядочение элементов дерева. Рассмотрим задачу удаления корня из BinSTree_1. В результате появляются два разобщенных поддерева, которым требуется новый корень.
Класс BinSTree – это класс, реализующий функциональность бинарного поискового дерева. Он содержит деструктор, конструктор копирования и перегруженные операторы присваивания, позволяющие инициализировать объекты и играющие роль операторов присваивания. Деструктор отвечает за очистку списка. Он и операторы присваивания вместе с методом ClearList вызывают скрытый метод DeleteTree. Мы также включили сюда скрытый метод CopyTree для использования в конструкторе копирования и перегруженном операторе "=".
Использование бинарных деревьев поиска Создание примеров деревьев поиска.
Функция MakeCharTree использовалась для создания ряда бинарных деревьев с символьными данными.
Симметричный метод прохождения.
При симметричном прохождении бинарного дерева сначала посещается левое поддерево узла, затем - сам узел и наконец правое поддерево. Когда этот метод прохождения применяется к бинарному дереву поиска, узлы посещаются в сортированном порядке. Симметричное прохождение бинарного дерева гарантирует, что для каждого узла меньшие узлы находятся в левом поддереве, а большие – в правом. В результате узлы проходятся в порядке возрастания.