C/C++. Структурное и объектно-ориентированное программирование. Практикум
Т.А. Павловская, Ю.А. Щупак
Практикум предназначен для изучения языка программирования С++ на семинарах или самостоятельно. Издание дополняет и расширяет учебник Т.А.Павловской «С/С++. Программирование на языке высокого уровня», но может использоваться и как отдельное пособие.
На примерах, сопровождаемых теоретическими сведениями, рассматриваются: основные конструкции, массивы, строки, структуры, функции, шаблоны, динамические структуры данных, классы, наследование, исключения, стандартная библиотека, UML, концепции программной инженерии и паттерны проектирования.
Обсуждаются алгоритмы, приемы отладки, вопросы качества и стиля. По каждой теме приведено несколько комплектов заданий для лабораторных работ.
Издательство: Питер, 2011 г.
ISBN 978-5-459-00613-1
Количество страниц: 352.
Содержание книги «C/C++. Структурное и объектно-ориентированное программирование. Практикум»:
- 10 Предисловие
- 13 Часть I. Структурное программирование
- 14 Семинар 1. Линейные программы
- 14 Задача 1.1. Расчет по формуле
- 18 Вывод кириллицы
- 18 Отладка программы
- 21 Описание переменных
- 22 Задача 1.2. Временной интервал
- 23 Итоги
- 24 Задания
- 26 Семинар 2. Ветвления и циклы
- 26 Разветвляющиеся программы
- 26 Задача 2.1. Вычисление значения функции, заданной графически
- 29 Задача 2.2. Выстрел по мишени
- 31 Задача 2.3. Клавиши курсора
- 32 Циклы
- 33 Задача 2.4. Таблица значений функции
- 35 Задача 2.5. Вычисление суммы ряда
- 37 Итоги
- 37 Задания
- 40 Семинар 3. Одномерные массивы и указатели
- 42 Задача 3.1. Количество элементов между минимумом и максимумом
- 45 Задача 3.2. Сумма элементов правее последнего отрицательного
- 47 Задача 3.3. Быстрая сортировка массива
- 50 Итоги
- 50 Задания
- 55 Семинар 4. Двумерные массивы
- 58 Задача 4.1. Среднее арифметическое и количество положительных элементов массива
- 60 Задача 4.2. Номер столбца из положительных элементов
- 61 Задача 4.3. Упорядочивание строк матрицы
- 64 Итоги
- 64 Задания
- 68 Семинар 5. Строки и файлы
- 68 Описание строк
- 71 Операции со строками
- 72 Работа с символами
- 73 Задача 5.1. Поиск подстроки
- 75 Задача 5.2. Подсчет количества вхождений слова в текст
- 78 Задача 5.3. Вывод вопросительных предложений
- 81 Итоги
- 81 Задания
- 83 Семинар 6. Структуры
- 84 Задача 6.1. Поиск в простой базе (массив структур)
- 89 Задача 6.2. Сортировка массива структур
- 90 Задача 6.3. Структуры и бинарные файлы
- 92 Задача 6.4. Структуры в динамической памяти
- 93 Итоги
- 94 Задания
- 99 Семинар 7. Функции
- 101 Задача 7.1. Передача в функцию параметров стандартных типов
- 105 Задача 7.1-а. Передача в функцию имени функции
- 107 Задача 7.2. Передача массивов в функцию
- 108 Задача 7.3. Передача строк в функцию
- 109 Задача 7.4. Передача структур в функцию
- 111 Задача 7.5. Рекурсивные функции
- 113 Многофайловые проекты
- 113 Что и как следует размещать в заголовочном файле
- 115 Задача 7.6. Многофайловый проект — форматирование текста
- 119 Итоги
- 120 Задания
- 120 Функции и массивы
- 120 Функции, строки и файлы
- 120 Функции, структуры и бинарные файлы
- 121 Семинар 8. Перегрузка и шаблоны функций
- 121 Перегрузка функций
- 122 Задача 8.1. Перегрузка функций
- 124 Шаблоны функций
- 125 Задача 8.2. Шаблоны функций
- 126 Итоги
- 127 Задания
- 128 Семинар 9. Динамические структуры данных
- 128 Задача 9.1. Стек
- 131 Задача 9.2. Линейный список
- 138 Задача 9.3. Бинарное дерево
- 150 Итоги
- 151 Задания
- 159 Часть II. Объектно-ориентированное программирование
- 160 Семинар 10. Классы
- 160 Появление объектно-ориентированного программирования
- 161 Критерии качества декомпозиции проекта
- 162 Что принесло с собой ООП
- 163 От структуры – к классу
- 163 Задача 10.1. Поиск в простой базе (массив объектов)
- 170 Конструктор по умолчанию
- 170 Инициализаторы конструктора
- 171 Конструктор копирования
- 172 Перегрузка операций
- 173 Перегрузка операций инкремента
- 174 Перегрузка операции присваивания
- 175 Статические элементы класса
- 175 Задача 10.2. Реализация класса треугольников
- 177 Этап 1
- 182 Этап 2
- 184 Этап 3
- 187 Этап 4
- 189 Итоги
- 189 Задания
- 194 Семинар 11. Наследование
- 194 Наследование классов
- 195 Замещение функций базового класса
- 196 Конструкторы и деструкторы в производном классе
- 196 Устранение неоднозначности при множественном наследовании
- 197 Доступ к объектам иерархии
- 198 Виртуальные методы
- 199 Абстрактные классы. Чисто виртуальные методы
- 199 Отношения между классами. Диаграммы классов на языке UML
- 200 Ассоциация
- 201 Наследование
- 201 Агрегация
- 202 Зависимость
- 202 Паттерны проектирования
- 204 Паттерн Стратегия (Strategy)
- 205 Проектирование программы с учетом будущих изменений
- 207 Задача 11.1. Функциональный калькулятор
- 215 Задача 11.2. Продвинутый функциональный калькулятор
- 221 Задача 11.3. Работа с объектами символьных и шестнадцатеричных строк
- 231 Итоги
- 232 Задания
- 232 Общая часть заданий для вариантов 1–20
- 232 Варианты 1–10
- 234 Варианты 11–20
- 194 Наследование классов
- 235 Семинар 12. Шаблоны классов. Обработка исключительных ситуаций
- 235 Шаблоны классов
- 235 Определение шаблона класса
- 236 Использование шаблона класса
- 237 Организация исходного кода
- 238 Параметры шаблонов
- 238 Специализация
- 239 Использование функциональных объектов для настройки шаблонных классов
- 241 Разработка шаблонного класса для представления разреженных массивов
- 241 Задача 12.1. Шаблонный класс для разреженных массивов
- 246 Обработка исключительных ситуаций
- 247 Определение исключений
- 248 Перехват исключений
- 249 Неперехваченные исключения
- 250 Классы исключений. Иерархии исключений
- 251 Спецификации исключений
- 252 Исключения в конструкторах
- 254 Исключения в деструкторах
- 255 Задача 12.2. Шаблонный класс векторов
- 263 Итоги
- 264 Задания
- 235 Шаблоны классов
- 266 Семинар 13. Стандартные потоки
- 266 Потоковые классы
- 267 Классы стандартных потоков
- 267 Заголовочные файлы библиотеки ввода-вывода C++
- 267 Объекты и методы стандартных потоков ввода-вывода
- 269 Обработка ошибок потоков
- 270 Перегрузка операций извлечения и вставки для типов, определенных программистом
- 271 Задача 13.1. Первичный ввод и поиск информации в базе данных
- 276 Итоги
- 276 Задания
- 266 Потоковые классы
- 283 Семинар 14. Файловые и строковые потоки. Строки класса string
- 283 Файловые потоки
- 286 Строковые потоки
- 287 Строки класса string
- 290 Задача 14.1. Подсчет количества вхождений слова в текст
- 291 Задача 14.2. Вывод вопросительных предложений
- 293 Итоги
- 293 Задания
- 294 Семинар 15. Стандартная библиотека шаблонов
- 294 Основные концепции стандартной библиотеки
- 294 Контейнеры
- 295 Итераторы
- 297 Общие свойства контейнеров
- 298 Алгоритмы
- 299 Использование последовательных контейнеров
- 301 Задача 15.1. Сортировка вектора
- 302 Шаблонная функция print для вывода содержимого контейнера
- 303 Адаптеры контейнеров
- 303 Стек
- 304 Очередь
- 304 Очередь с приоритетами
- 305 Использование алгоритмов
- 305 Алгоритмы count и find
- 306 Алгоритмы count_if и find_if
- 306 Алгоритм for_each
- 306 Алгоритм search
- 307 Алгоритм sort
- 308 Функциональные объекты
- 309 Обратные итераторы
- 309 Итераторы вставки и алгоритм copy
- 310 Алгоритм merge
- 311 Использование ассоциативных контейнеров
- 311 Множества
- 313 Словари
- 313 Задача 15.2. Формирование частотного словаря
- 315 Задача 15.3. Морской бой
- 326 Итоги
- 326 Задания
- 332 Приложение. Основные приемы работы в Microsoft Visual C++.NET 2005
- 332 Запуск интегрированной среды. Создание пустого проекта
- 333 Добавление файлов к проекту
- 334 Многофайловые проекты
- 334 Редактирование текста программы
- 335 Сохранение проекта и программы, завершение работы
- 335 Продолжение работы над проектом
- 335 Компиляция и компоновка программы
- 336 Выполнение и отладка программы
- 337 Работа со справочной системой
- 339 Литература
- 341 Алфавитный указатель
Инструкция как скачать книгу Т.А. Павловская, Ю.А. Щупак: C/C++. Структурное и объектно-ориентированное программирование. Практикум в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.