
- •Лекция 1 Основы алгоритмизации
- •1.1 Языки программирования
- •1.2 Этапы решения задач на компьютере
- •1.3 Понятие алгоритма и его свойства
- •1.4 Графическое описание алгоритмов. Схемы алгоритмов
- •Блоки для изображения схем алгоритмов и программ
- •1.5 Типы алгоритмов
- •Лекция 2 Начальные сведения о языке
- •2.3 Компиляция и выполнение программы
- •Лекция 3 Имена, переменные и константы
- •3.1 Имена
- •3.2 Переменные
- •3.3 Константы
- •Лекция 4 Операции и выражения
- •4.1 Выражения
- •4.2 Операция присваивания
- •4.3.1 Арифметические операции
- •4.3.2 Операции сравнения
- •4.4 Порядок вычисления выражений
- •Лекция 5 Операторы
- •5.1 Что такое оператор
- •5.1.1 Операторы-выражения
- •5.1.2 Объявления имен
- •5.1.3 Операторы управления
- •5.1.3.1 Условные операторы
- •5.1.3.2 Операторы цикла
- •5.1.3.3 Оператор возврата
- •5.1.3.4 Оператор перехода
- •Лекция 6 Функции
- •6.1 Вызов функций
- •6.2 Имена функций
- •6.3 Необязательные аргументы функций
- •6.4 Рекурсия
- •Лекция 7 Встроенные типы данных
- •7.1 Общая информация
- •7.2 Целые числа
- •7.3 Вещественные числа
- •7.4 Логические величины
- •7.5 Символы и байты
- •7.6 Кодировка, многобайтовые символы
- •7.7 Наборы перечисляемых значений
- •Лекция 8 Классы и объекты
- •8.1 Понятие класса
- •8.2 Определение методов класса
- •8.3 Переопределение операций
- •8.4 Подписи методов и необязательные аргументы
- •8.4.1 Запись классов
- •Лекция 9 Производные типы данных
- •9.1 Массивы
- •9.2 Структуры
- •9.2.1 Битовые поля
- •9.3 Объединения
- •9.4 Указатели
- •9.4.1 Адресная арифметика
- •9.4.2 Связь между массивами и указателями
- •9.4.3 Бестиповый указатель
- •9.4.4 Нулевой указатель
- •9.5 Строки и литералы
- •Лекция 10 Распределение памяти
- •10.1 Автоматические переменные
- •10.2 Статические переменные
- •10.3 Динамическое выделение памяти
- •10.4 Выделение памяти под строки
- •10.5 Рекомендации по использованию указателей и динамического распределения памяти
- •10.6 Ссылки
- •10.6 Распределение памяти при передаче аргументов функции
- •10.6.1 Рекомендации по передаче аргументов
- •Лекция 11 Производные классы, наследование
- •11.1 Виртуальные методы
- •11.1.1 Виртуальные методы и переопределение методов
- •11.2 Преобразование базового и производного классов
- •11.3 Внутреннее и защищенное наследование
- •11.4 Абстрактные классы
- •11.5 Множественное наследование
- •11.5.1 Виртуальное наследование
- •15.2 Проблема использования общих функций и имен
- •15.3 Использование включаемых файлов
- •15.4 Препроцессор
- •15.4.1 Определение макросов
- •Условная компиляция
- •15.4.2 Дополнительные директивы препроцессора
- •Лекция 16 Определение, время жизни и области видимости переменных в больших программах
- •16.1 Файлы и переменные
- •16.1.1 Общие данные
- •16.1.2 Глобальные переменные
- •16.1.3 Повышение надежности обращения к общим данным
- •16.2 Область видимости имен
- •16.3 Оператор определения контекста namespace
- •Лекция 17 Обработка ошибок
- •17.1 Виды ошибок
- •17.2 Возвращаемое значение как признак ошибки
- •17.3 Исключительные ситуации
- •17.3.1 Обработка исключительных ситуаций
- •17.3.2 Примеры обработки исключительных ситуаций
- •Лекция 18 Bвод-вывод
- •18.1 Потоки
- •18.3 Манипуляторы и форматирование ввода-вывода
- •18.4 Строковые потоки
- •18.5 Ввод-вывод файлов
- •Лекция 19 Шаблоны
- •19.1 Назначение шаблонов
- •19.2 Функции-шаблоны
- •19.3 Шаблоны классов
- •19.3.1 "Интеллигентный указатель"
- •19.3.2 Задание свойств класса
- •Список использованных источников
- •Содержание
Содержание
Лекция 1 Основы алгоритмизации 3
1.1 Языки программирования 3
1.2 Этапы решения задач на компьютере 4
1.3 Понятие алгоритма и его свойства 5
1.4 Графическое описание алгоритмов. Схемы алгоритмов 6
1.5 Типы алгоритмов 8
Лекция 2 Начальные сведения о языке 11
2.1 История и назначение языка C++ 11
2.2 Простейшая программа на языке C++ 12
2.3 Компиляция и выполнение программы 12
2.4 Описание типичной среды программирования на C++ 13
Лекция 3 Имена, переменные и константы 14
3.1 Имена 14
3.2 Переменные 15
3.3 Константы 15
Лекция 4 Операции и выражения 17
4.1 Выражения 17
4.2 Операция присваивания 17
4.3 Все операции языка C++ 19
4.3.1 Арифметические операции 19
4.3.2 Операции сравнения 20
4.3.3 Логические операции 20
4.3.4 Битовые операции 20
4.3.5 Условная операция 21
4.3.6 Последовательность 21
4.3.7 Операции присваивания 21
4.4 Порядок вычисления выражений 21
Лекция 5 Операторы 23
5.1 Что такое оператор 23
5.1.1 Операторы-выражения 23
5.1.2 Объявления имен 23
5.1.3 Операторы управления 23
5.1.3.1 Условные операторы 24
5.1.3.2 Операторы цикла 26
5.1.3.3 Оператор возврата 28
5.1.3.4 Оператор перехода 28
Лекция 6 Функции 30
6.1 Вызов функций 30
6.2 Имена функций 31
6.3 Необязательные аргументы функций 32
6.4 Рекурсия 33
Лекция 7 Встроенные типы данных 35
7.1 Общая информация 35
7.2 Целые числа 35
7.3 Вещественные числа 37
7.4 Логические величины 38
7.5 Символы и байты 39
7.6 Кодировка, многобайтовые символы 40
7.7 Наборы перечисляемых значений 41
Лекция 8 Классы и объекты 43
8.1 Понятие класса 43
8.2 Определение методов класса 43
8.3 Переопределение операций 44
8.4 Подписи методов и необязательные аргументы 45
8.4.1 Запись классов 46
Лекция 9 Производные типы данных 47
9.1 Массивы 47
9.2 Структуры 49
9.2.1 Битовые поля 49
9.3 Объединения 49
9.4 Указатели 51
9.4.1 Адресная арифметика 53
9.4.2 Связь между массивами и указателями 55
9.4.3 Бестиповый указатель 55
9.4.4 Нулевой указатель 56
9.5 Строки и литералы 57
Лекция 10 Распределение памяти 60
10.1 Автоматические переменные 60
10.2 Статические переменные 60
10.3 Динамическое выделение памяти 61
10.4 Выделение памяти под строки 62
10.5 Рекомендации по использованию указателей и динамического распределения памяти 62
10.6 Ссылки 63
10.6 Распределение памяти при передаче аргументов функции 64
10.6.1 Рекомендации по передаче аргументов 67
Лекция 11 Производные классы, наследование 68
11.1 Виртуальные методы 71
11.1.1 Виртуальные методы и переопределение методов 73
11.2 Преобразование базового и производного классов 74
11.3 Внутреннее и защищенное наследование 74
11.4 Абстрактные классы 75
11.5 Множественное наследование 76
11.5.1 Виртуальное наследование 79
Лекция 12 Контроль доступа к объекту 80
Лекция 13 Классы – конструкторы и деструкторы 81
Лекция 14 Дополнительные возможности классов 82
Лекция 15 Компоновка программ, препроцессор 83
15.1 Компоновка нескольких файлов в одну программу 83
15.2 Проблема использования общих функций и имен 83
15.3 Использование включаемых файлов 85
15.4 Препроцессор 87
15.4.1 Определение макросов 87
Условная компиляция 88
15.4.2 Дополнительные директивы препроцессора 89
Лекция 16 Определение, время жизни и области видимости переменных в больших программах 90
16.1 Файлы и переменные 90
16.1.1 Общие данные 91
16.1.2 Глобальные переменные 92
16.1.3 Повышение надежности обращения к общим данным 93
16.2 Область видимости имен 95
16.3 Оператор определения контекста namespace 97
Лекция 17 Обработка ошибок 99
17.1 Виды ошибок 99
17.2 Возвращаемое значение как признак ошибки 100
17.3 Исключительные ситуации 102
17.3.1 Обработка исключительных ситуаций 103
17.3.2 Примеры обработки исключительных ситуаций 104
Лекция 18 Bвод-вывод 108
18.1 Потоки 108
18.2 Операции << и >> для потоков 109
18.3 Манипуляторы и форматирование ввода-вывода 110
18.4 Строковые потоки 111
18.5 Ввод-вывод файлов 112
Лекция 19 Шаблоны 115
19.1 Назначение шаблонов 115
19.2 Функции-шаблоны 115
19.3 Шаблоны классов 116
19.3.1 "Интеллигентный указатель" 118
19.3.2 Задание свойств класса 120
Список использованных источников 123