
- •1. Роль вычислительной техники в решении прикладных задач.
- •2. Задачи, особенности и основные инструменты прикладного программирования
- •3.Языки программирования: классификация, особенности, критерии выбора.
- •4. Архитектура прикладных информационных систем.
- •5. Процедурная и объектно-ориентированная декомпозиция.
- •6. Основные принципы объектно-ориентированного программирования: абстрагирование, инкапсуляция, наследование, полиморфизм, модульность, сохраняемость, параллелизм.
- •7. Объекты и типы объектов. Атрибуты объектов и типы атрибутов. Методы объектов.
- •9. Директивы препроцессора: #include, #define, #error, #pragma, операции # и ##
- •11. Компиляция программы и сборка исполняемого модуля.
- •12. Размещение программы и данных в памяти.
- •13. Структура исполняемого модуля.
- •14. Переменные: объявление, определение, инициализация
- •15. Переменные: значение, указатель, ссылка.
- •16.Время жизни и области видимости переменных.
- •19. Составные типы данных.
- •20. Встроенные массивы: размещение в памяти, доступ к элементам. Размещение массива в памяти
- •Элементы массива
- •22. Условные конструкции выбора if/else , select.
- •23. Конструкции циклов for, while, do/ while; операторы break и continue.
- •24. Логические операции.
- •25. Функции: объявление, определение, передача аргументов по ссылке и по значению; входные и выходные параметры, возвращаемое значение, инструкция return.
- •26. Перегрузка функций.
- •27. Библиотека стандартного потокового ввода/вывода. Форматированный ввод/вывод. Файловые потоки, потоки в памяти.
- •28. Обработка строк, класс string.
- •29. Классы. Инкапсуляция. Сокрытие данных и видимость членов класса. Идиома «pimpl».
- •30. Конструктор класса. Конструктор с параметрами и конструктор по умолчанию. Конструкторкопирования.Операторприсваивания.Деструктор.
- •31.Наследование и полиморфизм классов: виртуальные функции.
- •32.Абстрактные базовыеклассы.
- •33.Множественное наследование.
- •34.Перегрузка операторов.
- •35.Объекты-владельцы. «Интеллектуальные» указатели.
- •36. Объекты-владельцы с частной копией ресурса.
- •37. Объекты-владельцы с совместным владением ресурсом.
- •38. Приведениетипов. Операторыstatic_cast, reinterpret_cast, dynamic_cast.
- •39. Константные и не-константные переменные. Оператор const_cast.
- •40. Шаблоны функций и шаблоны классов.
- •41. КонтейнерыстандартнойбиблиотекиStl.
- •42. Итераторы контейнеров.
- •43. Динамический массив на примере контейнера vector.
- •44. Связный список на примере контейнера list.
- •45. Контейнер deque библиотеки stl.
- •46. Ассоциативные контейнеры: map, multimap, set, multiset.
- •47. Стандартные алгоритмы: алгоритм sort; объекты-функции.
- •48. Взаимодействие прикладных программ с базами данных. Протокол odbc.
- •49. Оконный интерфейс. Организация графического оконного интерфейса при помощи оконных сообщений в ос Windows.
- •50. Работа с объектами графического интерфейса gdi.Кисти и перья; контекст устройства вывода («devicecontext»)
9. Директивы препроцессора: #include, #define, #error, #pragma, операции # и ##
#pragma - это директива препроцессора, которая реализует возможности компилятора. Эти особенности могут быть связанны с типом компилятора.Разные типы компиляторов могут поддерживать разные директивы. #include "имя. файла " заменяет эту строку полным содержимым файла имя. файла. Если не указан путь то файл сначала ищется в директории исходного файла , затем в директории заданной в опциях компилятора(обычно директория Include). #include <имя. файла> включение файла(в заголовок) ищет файл только в директории заданной в опциях компилятора.
#define идентификатор строка символов заменяет все последующие вхождения идентификатора строкой символов. #define можно применять также для определения макросов #error сообщение об ошибке останавливает работу компилятора и выдает сообщение об ошибке #pragma - это директива препроцессора, которая реализует возможности компилятора. Эти особенности могут быть связанны с типом компилятора.Разные типы компиляторов могут поддерживать разные директивы.
Операция # и ##
#-ставит последующий за ней текст в «».
##-?
10. Структура проекта в среде Visual C++.
Программы в Visual C++, состоят из совокупности нескольких файлов, называемых одним словом — проект. Программа на языке C, это совокупность функций, т.е кода понятного среде программирования, и структурированного по определенным принципам языка C, а приложение — главная функция, внутри которой помещаются переменные, константы, в обшем операторы которые реализуют сам алгоритм приложения.Выполнение любой программы начинаеться с главной функции, которая содержит в себе всю остальную часть программы. Основные функции написаны самим программистом, другие содержаться в среде программирования и подключаються с помощью специальных операторов, это так называемы библиотечные функции. Изучая C/C++ мы будем использовать консольные приложения, которые формируються в виде шаблонов, присутствующих в среде программирования.
Есть разница между решением в целом и проэктом
Решение –это отдельный проэкт в рамках решения. В него входит файл исходного кода h.cpp и файлы ресурсов( любая информация , которая присоединяется к исполняемому файлу).
1 2 3 4 5 6 7 |
// pro_1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" int _tmain() {
|
11. Компиляция программы и сборка исполняемого модуля.
компиляции - здесь осуществляется перевод программы на язык машинных команд;
линковки (компоновки, сборки) - здесь происходит сборка выполняемой программы из откомпилированных модулей, подключение необходимых библиотек (модулей) и еще ряд операций.
Во время компиляции каждый cpp файл компилируется отдельно а затем происходит сборка (компановка).когда отдельные модули объектные с расширением (obj) объединяются в исполняемый файл exe. (или другой).
12. Размещение программы и данных в памяти.
Программа загружается в адресное пространство.При запуске программы операционная система выделяет адресное пространство.В него загружается из образа файла (exe) загружается программа с развертыванием по тем правилам , которые описаны в exe. файле. В результате мы получаем несколько секторов (сектор кода-сектор статических данных).Во время запуска статические данные выделяются из фиксированной памяти. Далее запускается сама программа, отрабатывает запуски всех dll. Файлов , замем файлы исполняющей среды, затем
запускается весь код , который мы не контролируем, далее запускается программа с функцией main.
Размещение в памяти
Появляются локальные переменные внутри тела функции и для них выделяется место в стеке .
Все динамические объекты(массивы данных) хранятся в динамической памяти.