- •1. Оформление кода. Венгерская нотация и нотация Lower Case.
- •2. Автоматические системы документирования. Команды
- •3. Понятие контроля версий проекта. Основные системы контроля версий.
- •4. Система Git. Основные команды Git.
- •5. Модели разработки программного обеспечения. Водопад.
- •6. Модели разработки программного обеспечения. Спираль.
- •7. Модели разработки программного обеспечения. V-образная модель.
- •8. Google Test. Утверждения Google Test.
- •9. Google Test. Фатальные утверждения.
- •10. 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.
1. Оформление кода. Венгерская нотация и нотация Lower Case.
2. Автоматические системы документирования. Команды Doxygen.
3. Понятие контроля версий проекта. Основные системы контроля версий.
4. Система Git. Основные команды Git.
5. Модели разработки программного обеспечения. Водопад.
6. Модели разработки программного обеспечения. Спираль.
7. Модели разработки программного обеспечения. V-образная модель.
8. Google Test. Утверждения Google Test.
9. Google Test. Фатальные утверждения.
10. 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.
41. Тип данных UnicodeString. Основные методы UnicodeString.
42. Понятие ошибочной ситуации.
43. Исключительная ситуация. Генерация, раскручивание стека и перехват при возникновении исключений.
44. Стандартные исключения C++ и Builder.
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.
1. Оформление кода. Венгерская нотация и нотация Lower Case.
Нотация – это свод правил, описывающий и типизирующий все этапы написания программного кода.
Правили оформления:.
1) мнемоническое значение, он должен легко запоминаться.
2) смысловое значение – роль идентификатора должна быть ясна из его названия.
3) приемственность – похожие обьекты должны иметь похожие идентификаторы
4) скорость решения – придумывание, ввод, редактирование идентификатора не должны занимать много времени.
5) язык обозначения – все идентификаторы должны быть привязаны только к однму языку
Венге́рская нота́ция в программировании — соглашение об именовании переменных, констант и прочих идентификаторов в коде программ. Своё название венгерская нотация получила благодаря программисту компании Microsoft венгерского происхождения Чарльзу Симони (венг. Simonyi Károly), предложившему её ещё во времена разработки первых версий MS-DOS. Эта система стала внутренним стандартом Майкрософт[1].
Суть венгерской нотации сводится к тому, что имена идентификаторов предваряются заранее оговорёнными префиксами, состоящими из одного или нескольких символов. При этом, как правило, ни само наличие префиксов, ни их написание не являются требованием языков программирования, и у каждого программиста (или коллектива программистов) они могут быть своими.
Применяемая система префиксов зависит от многих факторов:
языка программирования (чем более «либеральный» синтаксис, тем больше контроля требуется со стороны программиста, а значит, тем более развита система префиксов. К тому же использование в каждом из языков программирования своей терминологии также вносит особенности в выбор префиксов);
стиля программирования (объектно-ориентированный код может вообще не требовать префиксов, в то время как в «монолитном» для разборчивости они зачастую нужны);
предметной области (например, префиксы могут применяться для записи единиц измерения);
доступных средств автоматизации (генератор документации, навигация по коду, предиктивный ввод текста, автоматизированный рефакторинг и т. д.).
2. Автоматические системы документирования. Команды
Doxygen.
Doxygen — это кросплатформенная система для получения документации на основе исходных текстов. Система поддерживает C++, C, Java, Objective-C, Python, IDL(CORBA и MIDL), Fortran, VHDL, PHP, C# и, частично, D.
Doxygen выбирает документацию из комментариев сделанных в коде, но может быть полезен и при работе с недокументированными исходными текстами, оформив структуру кода: он строит прекрасные диаграммы классов и графы зависимостей, а также оформляет код гиперссылками. Вывод можно получить в HTML или LaTeX и может легко быть сконвертирован в CHM или PDF. Кроме этого, doxygen имеет встроенную поддержку генерации документации в формате man, RTF и XML.
Чтобы получить документацию требуется совсем немного усилий.
Во-первых, код должен содержать комментарии, оформленные надлежащим образом, во-вторых, нужен сам генератор документации Doxygen.
Документация кода
Специальные комментарии
Специальный комментарий помечается символом '!' сразу после начала комментария. Такой комментарий должен стоять перед конструкцией которую он описывает. Пустая строка создает новый абзац.
Если требуется поставить специальный комментарий после конструкции, используется последовательность '!<' сразу после начала комментария. Кстати, кроме символа '!', для обозначения специальных комментариев, можно использовать последовательность символов '/**' для многострочного комментария, а для однострочного — последовательность '///'.
Документация функций
Для оформления документации параметров функции и возвращаемого значения используются команды param и return.
Списки
Чтобы представить список в документации, используется символ '-', отделенный пробелом от строки.
Вложенность списков задается отступами: строки с одинаковым количеством отступов относятся к одному уровню вложенности.
При помощи комбинации '-#' можно получить нумерованные списки.
Группы
При помощи групп, несколько выражений можно вынести в отдельную страницу документации и вставлять перекрестные ссылки на эту страницу.
Группа создается при помощи команды \defgroup <имя_группы> <Заголовок страницы> и выделяется парами символов '@{' и '@}'.
