2 семестр – Программирование на языке C++
Содержание курса
Тема 1. Рекурсия как метод решения задач
Содержание темы. Понятие рекурсии. Рекурсия в информатике. Рекурсивная триада. Рекурсивный спуск. Рекурсивный подъем. Алгоритмы теории чисел (факториал, степень, моделирование арифметических операций, распознавание простого числа, вычисление количества делителей натурального числа). Рекурсивный взрыв. Рекурсия с динамической базой. Классические задачи (Ханойские башни, Биномиальные коэффициенты, алгоритм Ламберта, функции Аккермана, Маккарти, Кадью). Классические задачи (Ханойские башни, Биномиальные коэффициенты, алгоритм Ламберта, функции Аккермана, Маккарти, Кадью).
Тема 2. Структуры данных
Содержание темы. Структуры. Объявление и определение структурных объектов. Инициализация структур. Присваивание значений. Доступ к элементам структур. Массивы структур. Указатели на структуры. Указатели как средство доступа к компонентам структур.
Тема 3. Классы
Содержание темы. Спецификаторы доступа к членам класса; объявление, спецификации, реализация класса; объявление объекта, доступ к членам объектов. Конструкторы и деструкторы класса. Указатель this. Статические и константные данные и методы класса. Композиции
Тема 4. Шаблоны
Содержание темы. Шаблоны.Понятие обобщённого программирования и введение в стандартную библиотеку шаблонов (STL). Программирование простейших шаблонов функций. Понятие шаблона как средства параметризации алгоритмов. Шаблоны функций. Назначение и состав стандартной библиотеки С++, преимущества использования стандартной библиотеки шаблонов (STL).
Тема 5. Ввод-вывод и исключения
Содержание темы. Классификация способов ввода-вывода. Принципы работы с потоками и файлами. Стандартные классы потоков. Манипуляторы. Анализ состояния потока. Форматированный, файловый и неформатированный ввод-вывод. Основы и управление обработкой исключений.
Результаты освоения курса
Выпускник знает:
- Источники информации, необходимой для профессиональной деятельности
- Современный отечественный и зарубежный опыт в профессиональной деятельности, понятие методов программирования; принципы организации, описания, инициализации и доступа к структурам данных; алгоритмы создания экземпляров класса, работы конструктора и деструктора класса, работы со статическими и константными методами класса; принципы реализации механизма наследования; принципы использования шаблонов.
- Умеет:
- Контролировать исполнение поручений, выбирать метод программирования в зависимости от разработанной математической модели и модели данных; осуществлять форматированный, файловый и неформатированный ввод-вывод данных в файл и в поток; реализовывать алгоритмы средствами языка программирования процедурной парадигмы; представлять отчеты по результатам решения задач; использовать возможности Visual Studio для разработки приложений стандарта Windows
Владеет и (или) имеет опыт деятельности:
Контроль соответствия разработанного кода и процесса кодирования на языках программирования принятым в организации или проекте стандартам и технологиям