- •1. Оформление кода. Венгерская нотация и нотация Lower Case.
- •2. Автоматические системы документирования. Команды
- •3. Понятие контроля версий проекта. Основные системы контроля версий.
- •4. Система Git. Основные команды Git.
- •5. Модели разработки программного обеспечения. Водопад.
- •6. Модели разработки программного обеспечения. Спираль.
- •7. Модели разработки программного обеспечения. V-образная модель.
- •10. Google Test. Нефатальные утверждения.
- •8. Google Test. Утверждения Google Test.
- •9. Google Test. Фатальные утверждения.
- •11. Разработка через тестирование.
- •12. Объектно-ориентирование программирование.
- •13. Парадигмы объектно-ориентированного программирования.
- •14. Классы и объекты.
- •15. Поля и методы класса.
- •16. Методы класса. Методы set и get.
- •17. Правила доступа и оформления при ооп.
- •18. Конструкторы и деструкторы.
- •19. Конструктор по умолчанию.
- •Пример Конструктора по умолчанию
- •20. Использование спецификаторов доступа.
- •21. Инкапсуляция. Разделение интерфейса и реализации в проекте.
- •22. Защита от повторной компиляции. Назначение. Пример.
- •23. Одиночное и множественное наследование.
- •24. Виртуальная функция. Чистая виртуальная функция.
- •25. Абстрактный класс.
- •26. Полиморфизм.
- •27. Перегрузка бинарных операторов.
- •28. Перегрузка унарных операторов.
- •29. Перегрузка функций.
- •30. Перегрузка операторов. Постфиксная и префиксные формы.
- •31. Технология rad.
- •32. Интегрированная среда разработки.
- •33. Rad. Свойства, события и методы.
- •34. Rad. Стандартная библиотека компонент vcl. Иерархия vcl.
- •35. Rad. События мыши.
- •36. Canvas. Основные методы Canvas.
- •37. Canvas. Основные свойства tBrush.
- •38. Canvas. Основные свойства tPen.
- •39. Пользовательские диалоги.
- •40. Диалог InputBox.
- •InputBox
- •InputBox(prompt[, title] [, default] [, xpos] [, ypos]),
- •41. Тип данных UnicodeString. Основные методы UnicodeString.
- •42. Понятие ошибочной ситуации.
- •43. Исключительная ситуация. Генерация, раскручивание стека и перехват при возникновении исключений.
- •1. Обработка ошибок
- •2. Генерация и перехват исключений
- •45. Понятие структуры данных. Состав элемента структуры.
- •46. Структуры данных: стек, очередь, список.
- •47. Структуры данных: множества, мультимножества, дерево.
- •48. Алгоритмы, контейнеры и итераторы.
- •49. Контейнер как структура данных.
- •Как выбрать контейнер?
- •50. Методы контейнеров.
- •51. Stl. Контейнер list.
- •52. Stl. Контейнер vector.
- •53. Slt. Контейнер map.
- •54. Stl. Контейнер set.
- •55. Основные алгоритмы stl. Алгоритм find.
- •56. Основные алгоритмы stl. Алгоритм max_element.
- •57. Основные алгоритмы stl. Алгоритм sort.
- •58. Основные алгоритмы stl. Алгоритм reverse.
47. Структуры данных: множества, мультимножества, дерево.
Дерево как структура данных. Каждый элемент имеет родителя и потомков. В общем случае дерево начинается с корня, каждый элемент можно отнести к какому-то уровню, связи внутри дерева не пересекаются.
Бинарное дерево — количество потомков не более 2. Это имеет свои преимущества. Например в данном случае дерево отсортировано и можно простыми операциями сравнения найти нужный элемент, ища из корня.
Сбалансированное дерево — такое дерево, в котором все кроме одного последнего уровня обязательно заполнены. Такое дерево позволяет осуществить гарантированный поиск за log2(N) операций.
Реализация деревьев также может быть статической и динамической. В первом случае отношения между элементами описываются с помощью математических формул, а во втором случае посредством указателей.
Виды проходов деревьев (pre-order, in-order, post-order, level-order).
Множества. Могут быть реализованы по-разному, как статически, так и динамически, так и через другие структуры данных. В множестве элемент встречается только один раз или не встречается вообще, а операции для него определяются из математического определения множества.
48. Алгоритмы, контейнеры и итераторы.
Алгоритмы основной части стандартной библиотеки шаблонов. Алгоритмы не работают с контейнерами, а сами с итераторами. Следовательно, один и тот же алгоритм может использоваться, если не все большинством контейнеров STL. В этом подразделе содержатся соглашения и терминология алгоритмов STL.
Библиотека стандартных шаблонов (STL) ISO предоставляет контейнеры для хранения коллекций связанных объектов. Контейнеры — это классы шаблонов, которые содержат спецификацию объектов, разрешенных в контейнерах.
Средства STL, широко распространённое использование итераторов посредничать в разных алгоритмов и последовательностей, на которых они являются. Имя типа итераторов (или ее префикса) указывает категорию итераторов. для этого типа. Категории перечислены в порядке возрастания мощности:
Выходные данные. Итератор X выходных данных может иметь только косвенно хранящиеся значения V, Входные данные. Итератор X ввода может представлять исключительное значение,
Поиск. Передний итератор X может использоваться вместо итератора вывода для записи или итератора ввода для чтения.
Двунаправленный. Двунаправленный итератор X может использоваться вместо переднего итератора.
Прямой доступ. Произвольно-доступный итератор X может использоваться вместо двунаправленного итератора.
49. Контейнер как структура данных.
Контейнер - это некоторая сущность, которая хранит большое количество однотипных объектов.
Контейнеры — это фактически те структуры данных, которые мы рассматривали ранее, но на языке С++, и они уже готовы к применению. Итераторы — специальные объекты для доступа к элементам структуры данных, близкая аналогия — указатели. Алгоритмы — готовый набор функциональных действий, позволяющий получить что-то полезное.
Каждый контейнер представляет собой упорядоченную последовательность элементов. Т.е. все элементы можно выстроить в одну цепочку друг за другом. Если мы хотим перебрать все элементы контейнера (распечатать их, найти какой-то и др.), что является типичной операцией, то это делается через итерационный перебор. Пример перебора. Понятие end-of-sequence (элемент за последним, но не последний).
