Вернуться наверх
aco.ifmo.ru photonic
вернуться в оглавление предыдущая глава предыдущий параграф следующий параграф следующая глава


Учебное пособие
"Прикладное программирование"


Программа дисциплины, pdf
Планирование результатов обучения (баллы), pdf
Критерии оценки для различных видов занятий, pdf

Конспект лекций

Материалы к лекциям:

Лекция 1. Введение. Основы языка С++. Стандартная библиотека С++: презентация лекции
Лекция 2. Составные типы данных (массивы, контейнеры): презентация лекции
Лекция 3. Абстрактные типы данных (классы): презентация лекции
Лекция 4. Наследование: презентация лекции
Лекция 5. Полиморфизм: презентация лекции

Примеры тестов:

Тест 1. Основы языка С++.
Тест 2. Массивы и контейнеры.
Тест 3. Классы и наследование.
Тест 4. Полиморфизм (STL).

Конспект лекций

1. Основы языка С++
     1.1 Самая простая программа на С++
          1.1.1 Пример программы, выводящей текст на экран (пример 1)
          1.1.2 Директивы препроцессору (подключение заголовочных файлов)
          1.1.3 Комментарии
          1.1.4 Функции
          1.1.5 Ввод и вывод на экран
     1.2 Переменные и их объявление
          1.2.1 Пример программы cложения целых чисел (пример 2)
          1.2.2 Переменные и их объявление
     1.3 Арифметические операторы
          1.3.1 Примеры арифметических операций (пример 3)
          1.3.2 Группировка подвыражений с помощью скобок
     1.4 Логические выражения и оператор if
          1.4.1 Условные конструкции. Пример условных конструкций (пример 4)
          1.4.2 Логические выражения. Логические операции И, ИЛИ, НЕ (пример 5)
          1.4.3 Типичные ошибки
          1.4.4 Вложенные условия
     1.5 Арифметический логический оператор
     1.6 Селективные конструкции
          1.6.1 Селективные конструкции. Пример определения оценки в зависимости от количества баллов (пример 6)
          1.6.2 Оператор Switch. Пример меню с выбором действия (пример 7)
     1.7 Циклы while и do…while
          1.7.1 Цикл с предусловием while. Пример возведения в степень в цикле (пример 8)
          1.7.2 Цикл с постусловием do...while
     1.8 Пошаговый цикл for
          1.8.1 Пример работы оператора for - вычисление суммы чисел (пример 9)
          1.8.2 Пошаговый цикл for
          1.8.3 Операторы break и continue
          1.8.4 Пример вычисление факториала (пример 10)
     1.9 Функции
          1.9.1 Использование функций библиотеки STL (пример 11)
          1.9.2 Определение собственных функций
          1.9.3 Пример функции (пример 12)
     1.10 Размещение программ и данных в памяти (пример 13)
     1.11 Ссылки и указатели
          1.11.1 Ссылки (пример 14)
          1.11.2 Указатели (пример 15)
          1.11.3 Передача параметров в функцию по ссылке и указателю (пример 16)

2. Стандартная библиотека С++
     2.1 Состав стандартной библиотеки С++
     2.2 Организация ввода/вывода
     2.3 Строковые переменные и константы
     2.4 Математические функции

3. Массивы и контейнеры
     3.1 Массив
          3.1.1. Одномерный массив
          3.1.2. Динамическое размещение одномерного массива
          3.1.3. Передача массива в функцию (пример 3.1)
          3.1.4. Двумерный массив
          3.1.5. Динамическое размещение двумерного массива (пример 3.2)
     3.2 Контейнеры
     3.3 Вектор vector (пример 3.3)
     3.4 Список list
          3.4.1. Списки
          3.4.2. Итераторы
          3.4.3. Пример работы со списком с использованием итераторов (пример 3.4)
     3.5 Очереди и стек
          3.5.1. Двусторонняя очередь deque (пример 3.5)
          3.5.2. Стек stack (пример 3.6)
          3.5.3. Очередь queue
     3.6 Ассоциативные контейнеры
          3.6.1. Контейнер map (пример 3.7)
          3.6.2. Контейнер set (пример 3.8)
     3.7 Алгоритмы (пример 3.9)

4. Абстрактные типы данных
     4.1 Структуры
          4.1.1. Пример 4.1. Структура для работы с компонентами цвета
          4.1.2. Передача абстрактных типов в функцию
          4.1.3. Создание функций-членов для абстрактного типа данных. Пример 4.2. Структура для работы с компонентами цвета со встроенной функцией.
     4.2 Классы
          4.2.1. Пример 4.3. Класс Линза
          4.2.2. Директивы препроцессору # if ! defined, # endif (проверка на повторное подключение)
          4.2.3. Тип доступа к членам класса
          4.2.4. Принципы объектно-ориентированного проектирования
          4.2.5. Типы функций-членов класса
     4.3 Конструкторы и деструкторы класса
          4.3.1. Конструкторы
          4.3.2. Деструктор (пример 4.4. Конструктор и деструктор класса Матрица)
          4.3.3. Проверка правильности параметров. Исключительные ситуации
     4.4 Модификаторы, селекторы и другие члены класса
          4.4.1. Модификаторы и селекторы
          4.4.2. Ключевые слова const и inline
          4.4.3. Функции-утилиты
          4.4.4. Сохраняемость

5. Наследование
      5.1 Типы наследования. Видимость членов классов
         5.1.1. Наследование
         5.1.2. Пример 5.1. Линза и зеркало как оптические детали
         5.1.3. Последовательность вызова конструкторов
         5.1.4. Типы наследования. Видимость членов классов
         5.1.5. Множественное наследование
     5.2 Виртуальные функции. Абстрактные классы
         5.2.1. Виртуальные функции
         5.2.2. Абстрактные классы

6. Полиморфизм
     6.1 Перегрузка функций
         6.1.1. Перегрузка функций
         6.1.2. Преобразование типов
         6.1.3. Параметры функций по умолчанию      
     6.2 Перегрузка операторов.
         6.2.1. Пример 6.1 (класс Complex (комплексное число))
         6.2.2. Перегрузка бинарных операторов
         6.2.3. Перегрузка унарных операторов
         6.2.4. Перегрузка логических операторов
         6.2.5. Перегрузка оператора присваивания
         6.2.6. Перегрузка операторов с присваиванием
         6.2.7. Перегрузка преобразования типов
         6.2.8. Перегрузка оператора доступа по индексу
         6.2.9. Перегрузка операторов ввода/вывода
         6.2.10. Неперегружаемые операторы
      6.3 Шаблоны функций и классов.
         6.3.1. Шаблоны функций. Пример 6.2 (шаблон функции)
         6.3.2. Шаблоны функций с несколькими параметрами. Пример 6.3 (шаблон функции с несколькими параметрами)
         6.3.3. Шаблоны классов. Пример 6.4 (шаблон класса Комплексное число)
      6.4 Объекты-функции. Предикаты
         6.4.1. Объекты-функции. Пример 6.5 (использование объектов-функций)
         6.4.2. Предикаты. Пример 6.6 (использование предикатов)

Приложения
     Приложение 1. Приоритет операций в С++
     Приложение 2. Основные типы данных
     Приложение 3. Операторы, ключевые слова и стандартная библиотека (PDF)
     Приложение 4. Руководство по стилю программирования на С++ (PDF)
     Приложение 5. Описание контейнеров и алгоритмов библиотеки STL (PDF)

Литература