Математика | ||||
Как программировать на C++-Харви Дейтел М.: ЗАО «Издательство БИНОМ», 1998 г. - 1024 с.: ил. | ||||
Харви Дейтел, Пол Дейтел
Как программировать на C++: Пер. с англ. — М.: ЗАО «Издательство БИНОМ», 1998 г. - 1024 с.: ил. Книга предлагает полный курс изучения наиболее популярного и перспективного языка программирования — C++ и рассчитана как на начинающих, не владеющих никаким языком программирования, так и на опытных пользователей. Для начинающих — это полноценный курс, в котором изучается все, начиная с устройства компьютера и кончая новейшими достижениями C++: шаблонами функций и классов, обработкой исключений и т.п. Опытный программист может пропустить часть известного ему материала, но получит множество полезных сведений в остальных частях книги. Особое внимание авторы уделяют современным методикам разработки программного обеспечения: наследованию, полиморфизму, объектно-ориентированному проектированию и объектно-ориентированному программированию, не забывая и о классическом структурном программировании. Приведено множество полезных советов. Книга рассчитана на широкий круг читателей, от начинающих осваивать азы программирования до опытных разработчиков. Содержание Предисловие.............................. 15 Введение в объектное ориентирование начинается с главы 1! ... 16 Об этой книге.......................... 16 Обзор книги .......................... 21 Глава 1. Введение в компьютеры и программирование на C++ .... 31 1.1. Введение......................... 32 1.2. Что такое компьютер?................... 35 1.3. Организация компьютера................. 36 1.4. Эволюция операционных систем.............. 37 1.5. Персональные вычисления, распределенные вычисления и вычисления на платформе клиент/сервер.......... 38 1.6. Машинные языки, языки ассемблера и языки высокого уровня.......................... 38 1.7. История C++....................... 40 1.8. Библиотеки классов C++ и стандартная библиотека С ... 41 1.9. Параллельный C++.................... 42 1.10. Другие языки высокого уровня .............. 43 1.11. Структурное программирование .............. 43 1.12. Общее описание типичной среды программирования на C++.......................... 44 1.13. Общие замечания о C++ и об этой книге.......... 47 1.14. Введение ъ программирование на C++........... 48 1.15. Простая программа: печать строки текста......... 48 1.16. Другая простая программа: сложение двух целых чисел . . 52 1.17. Концепции памяти.................... 56 1.18. Арифметика........................ 57 1.19. Принятие решений: операции проверки на равенство и отношения................. 61 1.20. Размышления об объектах................. 65 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по мобильности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения Глава 2. Управляющие структуры...................87 2.1. Введение......................... 89 2.2. Алгоритмы........................ 89 2.3. Псевдокод......................... 89 2.4. Управляющие структуры.................. 90 2.5. Структура выбора if (ЕСЛИ)................ 93 2.6. Структура выбора if/else (ЕСЛИ-ИНАЧЕ).......... 95 2.7. Структура повторения while (ПОКА)............ 99 2.8. Разработка алгоритмов: учебный пример 1 (повторение, управляемое счетчиком).................. 100 2.9. Нисходящая разработка алгоритмов с пошаговой детализацией: учебный пример 2 (повторение, управляемое меткой) ...................102 2.10. Нисходящая разработка алгоритмов с пошаговой детализацией: учебный пример 3 (вложенные управляющие структуры).................109 2.11. Операции присваивания..................114 2.12. Операции инкремента и декремента............115 2.13. Основы повторения, управляемого счетчиком........117 2.14. Структура повторения for (ЦИКЛ).............120 2.15. Пример использования структуры for ...........124 2.16. Структура множественного выбора switch..........128 2.17. Структура повторения do/while...............134 2.18. Операторы break и continue................136 2.19. Логические операции...................138 2.20. Ошибки случайной подмены операций проверки равенства (==) и присваивания (=).............140 2.21. Заключение по структурному программированию......143 2.22. Размышления об объектах: идентификация объектов задачи ..........................148 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы, по повышению эффективности • Замечания по мобильности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения Глава 3. Функции . ..........................177 3.1. Введение.........................178 3.2. Программные модули в C++................179 3.3. Математические библиотечные функции..........180 3.4. Функции.........................181 3.5. Определения функций...................182 3.6. Прототипы функций....................187 3.7. Заголовочные файлы....................189 3.8. Генерация случайных чисел................189 3.9. Пример: азартная игра ..................195 3.10. Классы памяти......................198 3.11. Правила, определяющие область действия.........201 3.12. Рекурсия.........................205 3.13. Пример использования рекурсии: последовательность чисел Фибоначчи.....................208 3.14. Рекурсии или итерации..................211 3.15. Функции с пустыми списками параметров.........213 3.16. Встраиваемые функции.................. 214 3.17. Ссылки и ссылочные параметры..............216 3.18. Аргументы по умолчанию.................219 3.19. Унарная операция разрешения области действия......221 3.20. Перегрузка функций....................222 3.21. Шаблоны функции ....................223 3.22. Размышления об объектах: идентификация атрибутов объектов.........................226 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по мобильности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения Глава 4. Массивы...........................259 4.1. Введение.........................260 4.2. Массивы .........................261 4.3. Объявление массивов ...................263 4.4. Примеры использования массивов.............263 4.5. Передача массивов в функции...............276 4.6. Сортировка массивов....................280 4.7. Учебный пример: вычисление среднего значения, медианы и моды с использованием массивов........282 4.8. Поиск в массивах: линейный поиск и двоичный поиск . . . 285 4.9. Многомерные массивы...................290 4.10. Размышления об объектах: идентификация поведений объектов .........................297 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по мобильности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения • Упражнения на рекурсию Глава 5. Указатели и строки......................321 5.1. Введение.........................322 5.2. Объявления и инициализация переменных указателей . . . 323 5.3. Операции над указателями.................324 5.4. Вызов функций по ссылке.................326 5.5. Использование спецификатора const с указателями.....330 5.6. Пузырьковая сортировка, использующая вызов по ссылке.........................336 5.7. Выражения и арифметические действия с указателями . . .340 5.8. Взаимосвязи между указателями и массивами.......344 5.9. Массивы указателей....................348 5.10. Учебный пример: моделирование тасования и раздачи карт...........................349 5.11. Указатели на функции...................354 5.12. Введение в обработку символов и строк..........358 5.13. Размышления об объектах: взаимодействие объектов .... 367 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по мобильности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения • Специальный раздел: построение вашего собственного компьютера • Дополнительные упражнения на указатели • Упражнения на работу со строками • Специальный раздел: упражнения повышенной сложности на работу со строками • Головоломный проект работы со строками Глава в. Классы и абстрагирование данных..............405 6.1. Введение.........................406 6.2. Определения структур...................408 6.3. Доступ к элементам структуры...............408 6.4. Использование определенного пользователем типа Time с помощью Struct.....................409 6.5. Использование абстрактного типа данных Time с помощью класса.....................411 6.6. Область действия класс и доступ к элементам класса .... 418 6.7. Отделение интерфейса от реализации............419 6.8. Управление доступом к элементам.............423 6.9. Функции доступа и обслуживающие функции-утилиты . . . 426 6.10. Инициализация объектов класса: конструкторы.......429 6.11. Использование конструкторов с аргументами по умолчанию.......................429 6.12. Использование деструкторов................433 6.13. Когда вызываются конструкторы и деструкторы......433 6.14. Использование данных-элементов и функций-элементов . . . 436 6.15. Тонкий момент: возвращение ссылки на закрытые данные-элементы .....................441 6.16. Присваивание побитовым копированием по умолчанию . . . 443 6.17. Повторное использование программного обеспечения .... 445 6.18. Размышления об объектах: программирование классов для моделирования лифта.................445 Резюме • Терминология • Типичные ошибки программировани • Хороший стиль программирования • Советы по повышению эффективности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения Глава 7. Классы: часть II....................., . 459 7.3. Композиция: классы как элементы других классов.....467 7.4. Дружественные функции и дружественные классы.....471 7.5. Использование указателя this...............474 7.6. Динамическое распределение памяти с помощью операций new и delete...................479 7.7. Статические элементы класса...............480 7.8. Абстракция данных и скрытие информации........485 7.9. Классы контейнеры и итераторы..............489 7.10. Размышления об объектах: использование композиции и динамического управления объектом в модели лифта . . . 489 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения Глава 8. Перегрузка операций.....................497 8.1. Введение.................. . ...... 498 8.2. Основы перегрузки операций................ 499 8.3. Ограничения на перегрузку операции........... 501 8.4. Функции-операции как элементы класса и как дружественные функции.................. 502 8.5. Перегрузка операций поместить в поток и взять из потока.........................504 8.6. Перегрузка унарных операций...............506 8.7. Перегрузка бинарных операций..............507 8.8. Учебный пример: класс массив...............508 8.9. Преобразования типов...................519 8.10. Учебный пример: класс строка...............520 8.11. Перегрузка ++ и --....................531 8.12. Учебный пример: класс дата................532 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения Глава 9. Наследование.........................551 9.1. Введение.........................552 9.2. Базовые классы и производные классы...........554 9.3. Защищенные элементы..................556 9.4. Приведение типов указателей базовых классов к указателям производных классов............556 9.5. Использование функций-элементов.............562 9.6. Переопределение элементов базового класса в производном классе................... 562 9.7. Открытые, защищенные и закрытые базовые классы .... 566 9.8. Прямые и косвенные базовые классы ...........568 9.9. Использование конструкторов и деструкторов в производных классах..................568 Цена: 300руб. |
||||