| Введение | 6
|
| Глава 1. Элементы структурного программирования | 9
|
| 1.1. История языка С++ | 9
|
| 1.2. Структурное программирование | 12
|
| 1.3. Алгоритмизация вычислительных процессов | 14
|
| 1.4. Системы программирования | 16
|
| 1.5. Средства изображения алгоритмов | 17
|
| 1.6. Базовые канонические структуры алгоритмов | 22
|
| Глава 2. Основы языка С++ | 24
|
| 2.1. Простейшие программы на языке С++ | 24
|
| 2.2. Создание и компиляция проекта в среде программирования Visual C++ | 25
|
| 2.3. Состав языка | 30
|
| 2.4. Типы данных в С++ | 35
|
| 2.5. Выражения | 37
|
| 2.6. Пример. Линейные программы | 39
|
| Глава 3. Базовые конструкции структурного программирования | 44
|
| 3.1. Операторы ветвления | 44
|
| 3.2. Оператор выбора | 47
|
| 3.3. Операторы цикла | 50
|
| 3.4. Операторы передачи управления | 55
|
| Глава 4. Массивы | 58
|
| 4.1. Статические одномерные массивы | 58
|
| 4.2. Статические многомерные массивы | 61
|
| 4.3. Указатели и динамические массивы | 63
|
| 4.3.1. Инициализация указателей | 64
|
| 4.3.2. Создание динамического многомерного массива | 67
|
| 4.4. Операции с указателями | 70
|
| 4.5. Ссылки | 71
|
| Глава 5. Строковые типы | 73
|
| 5.1. Массивы символов | 73
|
| 5.2. Ввод-вывод строк | 74
|
| 5.3. Функции для обработки строк | 76
|
| 5.4. Работа с символами | 76
|
| Глава 6. Типы данных, определяемые пользователем | 78
|
| 6.1. Переименование типов (typedef) | 78
|
| 6.2. Перечисления (enum) | 79
|
| 6.3. Структуры (struct) | 80
|
| 6.4. Объединения (union) | 83
|
| Глава 7. Ввод-вывод на языке С++ | 84
|
| 7.1. Ввод с клавиатуры и вывод на экран | 84
|
| 7.1.1. Библиотеки языка С | 84
|
| 7.1.2. Использование потокового ввода-вывода | 85
|
| 7.1.3. Форматирование данных при обмене с потоками | 88
|
| 7.2. Чтение и запись в файл | 90
|
| 7.3. Пример считывания из файла строковой информации | 94
|
| Глава 8. Функции в С++ | 97
|
| 8.1. Объявление и определение функций | 97
|
| 8.1.1. Способы передачи параметров в функцию | 101
|
| 8.1.2. Передача массивов в качестве параметров | 102
|
| 8.1.3. Передача имен функций в качестве параметров | 104
|
| 8.1.4. Параметры со значением по умолчанию | 107
|
| 8.2. Рекурсивные функции | 108
|
| 8.3. Сортировка | 111
|
| Глава 9. Статистические испытания | 115
|
| 9.1. Описание метода Монте-Карло | 115
|
| 9.2. Генерация случайных чисел | 116
|
| 9.3. Пример использования метода Монте-Карло | 116
|
| 9.4. Имитация случайных событий с заданным законом распределения | 117
|
| 9.4.1. Разработка алгоритма | 118
|
| 9.4.2. Вызывающая программа | 119
|
| 9.4.3. Пример выполнения программы | 121
|
| Глава 10. Препроцессорные средства | 123
|
| 10.1. Директива #include | 123
|
| 10.2. Директива #define | 124
|
| 10.3. Директивы условной компиляции | 126
|
| 10.4. Предопределенные макросы | 127
|
| Глава 11. Области действия и пространства имен | 128
|
| Глава 12. Аргументы командной строки | 130
|
| Глава 13. Динамические структуры данных | 131
|
| 13.1. Линейные списки | 132
|
| 13.2. Стеки | 148
|
| 13.3. Очереди | 150
|
| 13.4. Бинарные деревья | 152
|
| Глава 14. Варианты семестровых заданий | 157
|
| 14.1. Обязательное задание | 157
|
| 14.2. Дополнительные задачи | 181
|
| Геометрия | 181
|
| Матрицы, векторы | 185
|
| Последовательности, тексты, предложения и слова | 189
|
| Задачи с целыми числами | 191
|
| Приложение. Рекомендации по проектированию и оформлению программ | 194
|
| Виды работ, составляющие задание | 194
|
| Рекомендации по разработке алгоритма, представлению данных и набора тестов | 195
|
| Библиографический список | 214
|
Макаровских Татьяна Анатольевна Доктор физико-математических наук, доцент, профессор кафедры «Системное программирование» Южно-Уральского государственного университета. В 2003 г. с отличием окончила ЮУрГУ по специальности «Прикладная математика». В 2006 г. защитила кандидатскую диссертацию по специальности «Теоретические основы информатики» в Вычислительном центре имени А. А. Дородницына РАН. В 2020 г. защитила докторскую диссертацию по той же специальности в ЮУрГУ. Является автором более 100 научных публикаций, 7 учебных пособий, монографии «Маршруты-покрытия специального вида в графах: Теоретические основы и применение в ресурсосберегающих технологиях» (М.: URSS), а также более 10 зарегистрированных программ для ЭВМ.
Панюков Анатолий Васильевич Доктор физико-математических наук, профессор, заслуженный работник высшей школы РФ. В 1980 г. окончил Челябинский политехнический институт (ныне ЮУрГУ) по специальности «Прикладная математика». В 1986 г. защитил кандидатскую диссертацию в Институте кибернетики АН УССР (Киев), в 1999 г. — докторскую диссертацию в области математического моделирования в ВЦ РАН им. А. А. Дородницына (Москва). С 2001 г. заведует кафедрой «Экономико-математические методы и статистика» в Южно-Уральском государственном университете. Автор более 220 публикаций. Награжден нагрудными знаками «Изобретатель СССР» и «Почетный работник высшего образования», имеет звание «Соросовский доцент». Член Ассоциации математического программирования, член диссертационных советов в ЮУрГУ и Пермском государственном университете, а также Научно-методического совета Территориального органа Федеральной службы государственной статистики по Челябинской области.