چه کسانی این کتاب را می‌خوانند

دانشجوعلاقه‌مند یادگیری
کتابخوان حرفه‌ایلذت مطالعه
نویسندهالهام‌گیری

Как программировать на C++

Харви Дейтел и Пол Дейтел

قیمت نهایی

۴۰٬۰۰۰ تومان۴۹٬۰۰۰ تومان۱۸٪ تخفیف
  • تخفیف زمان‌دار−۹٬۰۰۰ تومان

۹٬۰۰۰ تومان صرفه‌جویی نسبت به قیمت اصلی

بلافاصله پس از خرید، فایل کتاب روی دستگاه شما آمادهٔ دانلود است.

تحویل فوری
پرداخت امن
ضمانت فایل
پشتیبانی

نسخه اصلی و اورجینال

فایل دیجیتال کامل و بدون دستکاری — همان نسخه‌ای که پس از خرید دریافت می‌کنید.

مشخصات کتاب

ناشر
2008
سال انتشار
۲۰۰۸
فرمت
DJVU
زبان
روسی
حجم فایل
۱۹٫۳ مگابایت

دربارهٔ کتاب

Книга предлагает полный курс изучения наиболее популярного и перспективного языка программирования ? C++ и рассчитана как на начинающих, не владеющих никаким языком программирования, так и на опытных пользователей. Для начинающих ? это полноценный курс, в котором изучается все, начиная с устройства компьютера и кончая новейшими достижениями C++: шаблонами функций и классов, обработкой исключений и т.п. Опытный программист может пропустить часть известного ему материала, но получит множество полезных сведений в остальных частях книги. Особое внимание авторы уделяют современным методикам разработки программного обеспечения: наследованию, полиморфизму, объектно-ориентированному проектированию и объектно-ориентированному программированию, не забывая и о классическом структурном программировании. Приведено множество полезных советов. Книга рассчитана на широкий круг читателей, от начинающих осваивать азы программирования до опытных разработчиков. От себя: в сети был скан в формате .pdf (114 Мб), затем кто-то перевёл в DjVu и добавил OCR Содержание ......Page 2 Предисловие ......Page 12 Об этой книге ......Page 13 Обзор книги ......Page 18 Глава 1. Введение в компьютеры и программирование на C++ ......Page 28 1.1. Введение ......Page 29 1.2. Что такое компьютер? ......Page 32 1.3. Организация компьютера ......Page 33 1.4. Эволюция операционных систем ......Page 34 1.6. Машинные языки, языки ассемблера и языки высокого уровня ......Page 35 1.7. История C++ ......Page 37 1.8. Библиотеки классов C++ и стандартная библиотека С ......Page 38 1.9. Параллельный C++ ......Page 39 1.11. Структурное программирование ......Page 40 1.12. Общее описание типичной среды программирования на C++ ......Page 41 1.13. Общие замечания о C++ и об этой книге ......Page 44 1.15. Простая программа: печать строки текста ......Page 45 1.16. Другая простая программа: сложение двух целых чисел ......Page 49 1.17. Концепции памяти ......Page 53 1.18. Арифметика ......Page 54 1.19. Принятие решений: операции проверки на равенство и отношения ......Page 58 1.20. Размышления об объектах ......Page 62 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по мобильности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 64 Глава 2. Управляющие структуры ......Page 84 2.3. Псевдокод ......Page 86 2.4. Управляющие структуры ......Page 87 2.5. Структура выбора if (ЕСЛИ) ......Page 90 2.6. Структура выбора if/else (ЕСЛИ-ИНАЧЕ) ......Page 91 2.7. Структура повторения while (ПОКА.) ......Page 96 2.8. Разработка алгоритмов: учебный пример 1 (повторение, управляемое счетчиком) ......Page 97 2.9. Нисходящая разработка алгоритмов с пошаговой детализацией: учебный пример 2 (повторение, управляемое меткой) ......Page 99 2.10. Нисходящая разработка алгоритмов с пошаговой детализацией: учебный пример 3 (вложенные управляющие структуры) ......Page 106 2.11. Операции присваивания ......Page 110 2.12. Операции инкремента и декремента ......Page 111 2.13. Основы повторения, управляемого счетчиком ......Page 113 2.14. Структура повторения for (ЦИКЛ) ......Page 116 2.15. Пример использования структуры for ......Page 119 2.16. Структура множественного выбора switch ......Page 124 2.17. Структура повторения do/while ......Page 130 2.18. Операторы break и continue ......Page 132 2.19. Логические операции ......Page 134 2.20. Ошибки случайной подмены операций проверки равенства (==) и присваивания (=) ......Page 136 2.21. Заключение по структурному программированию ......Page 138 2.22. Размышления об объектах: идентификация объектов задачи ......Page 144 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по мобильности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 146 Глава 3. Функции ......Page 174 3.1. Введение ......Page 175 3.2. Программные модули в C++ ......Page 176 3.3. Математические библиотечные функции ......Page 177 3.4. Функции ......Page 178 3.5. Определения функций ......Page 179 3.6. Прототипы функций ......Page 184 3.8. Генерация случайных чисел ......Page 186 3.9. Пример: азартная игра ......Page 192 3.10. Классы памяти ......Page 195 3.11. Правила, определяющие область действия ......Page 198 3.12. Рекурсия ......Page 202 3.13. Пример использования рекурсии: последовательность чисел Фибоначчи ......Page 205 3.14. Рекурсии или итерации ......Page 208 3.15. Функции с пустыми списками параметров ......Page 210 3.16. Встраиваемые функции ......Page 211 3.17. Ссылки и ссылочные параметры ......Page 213 3.18. Аргументы по умолчанию ......Page 216 3.19. Унарная операция разрешения области действия ......Page 218 3.20. Перегрузка функций ......Page 219 3.21. Шаблоны функции ......Page 221 3.22. Размышления об объектах: идентификация атрибутов объектов ......Page 223 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по мобильности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 225 Глава 4. Массивы ......Page 256 4.1. Введение ......Page 257 4.2. Массивы ......Page 258 4.4. Примеры использования массивов ......Page 260 4.5. Передача массивов в функции ......Page 273 4.6. Сортировка массивов ......Page 277 4.7. Учебный пример: вычисление среднего значения, медианы и моды с использованием массивов ......Page 279 4.8. Поиск в массивах: линейный поиск и двоичный поиск ......Page 282 4.9. Многомерные массивы ......Page 287 4.10. Размышления об объектах: идентификация поведений объектов ......Page 294 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по мобильности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения • Упражнения на рекурсию ......Page 295 Глава 5. Указатели и строки ......Page 317 5.1. Введение ......Page 318 5.2. Объявления и инициализация переменных указателей ......Page 319 5.3. Операции над указателями ......Page 320 5.4. Вызов функций по ссылке ......Page 322 5.5. Использование спецификатора const с указателями ......Page 326 5.6. Пузырьковая сортировка, использующая вызов по ссылке ......Page 332 5.7. Выражения и арифметические действия с указателями ......Page 336 5.8. Взаимосвязи между указателями и массивами ......Page 340 5.9. Массивы указателей ......Page 344 5.10. Учебный пример: моделирование тасования и раздачи карт ......Page 345 5.11. Указатели на функции ......Page 350 5.12. Введение в обработку символов и строк ......Page 354 5.13. Размышления об объектах: взаимодействие объектов ......Page 363 Резюме • Терминология • Типичные ошибки программирования • Хороший • стиль программирования • Советы по повышению эффективности • Замечания по мобильности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения • Специальный раздел: построение вашего собственного компьютера Дополнительные упражнения на указатели • Упражнения на работу со строками • Специальный раздел: упражнения повышенной сложности на работу со строками • Головоломный проект работы со строками ......Page 365 Глава 6. Классы и абстрагирование данных ......Page 400 6.1. Введение ......Page 401 6.3. Доступ к элементам структуры ......Page 403 6.4. Использование определенного пользователем типа Time с помощью Struct ......Page 404 6.5. Использование абстрактного типа данных Time с помощью класса ......Page 406 6.6. Область действия класс и доступ к элементам класса ......Page 413 6.7. Отделение интерфейса от реализации ......Page 414 6.8. Управление доступом к элементам ......Page 418 6.9. Функции доступа и обслуживающие функции-утилиты ......Page 421 6.11. Использование конструкторов с аргументами по умолчанию ......Page 424 6.13. Когда вызываются конструкторы и деструкторы ......Page 428 6.14. Использование данных-элементов и функций-элементов ......Page 431 6.15. Тонкий момент: возвращение ссылки на закрытые данные-элементы ......Page 436 6.16. Присваивание побитовым копированием по умолчанию ......Page 438 6.18. Размышления об объектах: программирование классов для моделирования лифта ......Page 440 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 441 Глава 7. Классы: часть II ......Page 454 7.1. Введение ......Page 455 7.2. Константные объекты и функции-элементы ......Page 456 7.3. Композиция: классы как элементы других классов ......Page 462 7.4. Дружественные функции и дружественные классы ......Page 466 7.5. Использование указателя this ......Page 469 7.6. Динамическое распределение памяти с помощью операций new и delete ......Page 474 7.7. Статические элементы класса ......Page 475 7.8. Абстракция данных и скрытие информации ......Page 480 7.10. Размышления об объектах: использование композиции и динамического управления объектом в модели лифта ......Page 484 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 485 Глава 8. Перегрузка операций ......Page 492 8.1. Введение ......Page 493 8.2. Основы перегрузки операций ......Page 494 8.3. Ограничения на перегрузку операции ......Page 496 8.4. Функции-операции как элементы класса и как дружественные функции ......Page 497 8.5. Перегрузка операций поместить в поток и взять из потока ......Page 499 8.6. Перегрузка унарных операций ......Page 501 8.7. Перегрузка бинарных операций ......Page 502 8.8. Учебный пример: класс массив ......Page 503 8.9. Преобразования типов ......Page 514 8.10. Учебный пример: класс строка ......Page 515 8.11. Перегрузка ++ и — ......Page 526 8.12. Учебный пример: класс дата ......Page 527 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы, по повышению эффективности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 532 Глава 9. Наследование ......Page 545 9.1. Введение ......Page 546 9.2. Базовые классы и производные классы ......Page 548 9.4. Приведение типов указателей базовых классов к указателям производных классов ......Page 550 9.6. Переопределение элементов базового класса в производном классе ......Page 556 9.7. Открытые, защищенные и закрытые базовые классы ......Page 560 9.9. Использование конструкторов и деструкторов в производных классах ......Page 562 9.10. Неявное преобразование объектов производных классов в объекты базовых классов ......Page 565 9.11. Проектирование программного обеспечения с помощью наследования ......Page 567 9.12. Композиция и наследование ......Page 568 9.14. Учебный пример: точка, круг, цилиндр ......Page 569 9.15. Множественное наследование ......Page 574 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 581 Глава 10. Виртуальные функции и полиморфизм ......Page 589 10.1. Введение ......Page 590 10.3. Виртуальные функции ......Page 591 10.4. Абстрактные базовые классы и конкретные классы ......Page 593 10.5. Полиморфизм ......Page 594 10.6. Учебный пример : система расчета заработной платы ......Page 596 10.7. Новые классы и динамическое связывание ......Page 606 10.8. Виртуальные деструкторы ......Page 607 10.9. Учебный пример : интерфейс наследования и его реализация ......Page 608 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 615 Глава 11. Потоки ввода-вывода в C++ ......Page 622 11.1. Введение ......Page 624 11.2. Потоки ......Page 625 11.3. Вывод потоков ......Page 628 11.4. Ввод потоков ......Page 632 11.5. Неформатированный ввод-вывод с использованием read, gcount и write ......Page 638 11.6. Манипуляторы потоков ......Page 639 11.7. Состояния формата потоков ......Page 643 11.8. Состояния ошибок потока ......Page 653 11.9. Ввод-вывод определенных пользователем типов данных ......Page 654 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 657 Глава 12. Шаблоны ......Page 675 12.1. Введение ......Page 676 12.2. Шаблоны функций ......Page 677 12.3. Перегрузка шаблонных функций ......Page 680 12.4. Шаблоны классов ......Page 681 12.5. Шаблоны классов и нетиповые параметры ......Page 686 12.7. Шаблоны и друзья ......Page 687 Резюме • Терминология • Типичные ошибки программирования • Советы по повышению эффективности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 688 Глава 13. Обработка исключений ......Page 695 13.1. Введение ......Page 696 13.3. Другие методы обработки ошибок ......Page 700 13.4. Основы обработки исключений в C++ ......Page 701 13.5. Простой пример обработки исключений: деление на нуль ......Page 702 13.7. Генерация исключений ......Page 705 13.8. Перехват исключений ......Page 706 13.9. Повторная генерация исключений ......Page 710 13.11. Спецификация исключений ......Page 711 13.12. Обработка непредусмотренных исключений ......Page 712 13.13. Конструкторы, деструкторы и обработка исключений ......Page 713 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по мобильности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 714 Глава 14. Обработка файлов и ввод-вывод потоков строк ......Page 728 14.1. Введение ......Page 729 14.2. Иерархия данных ......Page 730 14.3. Файлы и потоки ......Page 732 14.1. Создание файла последовательного доступа ......Page 733 14.5. Чтение данных из файла последовательного доступа ......Page 737 14.6. Обновление файлов последовательного достуна ......Page 741 14.7. Файлы произвольного доступа ......Page 742 14.8. Создание файла произвольного доступа ......Page 744 14.9. Произвольная запись данных в файл произвольного доступа ......Page 745 14.10. Последовательное чтение данных из файла произвольного доступа ......Page 747 14.11. Пример: программа обработки запросов ......Page 749 14.12. Обработка потоков строк ......Page 754 14.13. Ввод-вывод объектов ......Page 758 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 759 Глава 15. Структуры данных ......Page 771 15.1. Введение ......Page 772 15.2. Классы с самоадресацией ......Page 773 15.3. Динамическое выделение памяти ......Page 774 15.4. Связные списки ......Page 776 15.5. Стеки ......Page 789 15.6. Очереди ......Page 794 15.7. Деревья ......Page 797 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по мобильности • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения • Специальный раздел: создание вашего собственного компилятора ......Page 804 Глава 16. Биты, символы, строки и структуры ......Page 837 16.1. Введение ......Page 838 16.2. Описание структур ......Page 839 16.3. Инициализация структур ......Page 841 16.5. Создание синонимов ......Page 842 16.6. Пример: эффективное моделирование тасования и раздачи карт ......Page 843 16.7. Поразрядные операции ......Page 845 16.8. Битовые поля ......Page 853 16.9. Библиотека обработки символов ......Page 856 16.10. Функции преобразования строк ......Page 862 16.11. Функции поиска из библиотеки обработки строк ......Page 866 16.12. Функции работы с памятью из библиотеки обработки строк ......Page 871 16.13. Другие функции библиотеки обработки строк ......Page 874 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Замечания по мобильности • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 875 Глава 17. Препроцессор ......Page 892 17.1. Введение ......Page 893 17.3. Директива препроцессора #define: символические константы ......Page 894 17.4. Директива препроцессора #define: макросы ......Page 895 17.5. Условная компиляция ......Page 897 17.7. Операции # и ## ......Page 899 17.9. Предопределенные символические константы ......Page 900 Резюме • Терминология • Типичные ошибки программирования • Хороший стиль программирования • Советы по повышению эффективности • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 901 Глава 18. Другие темы ......Page 907 18.1. Введение ......Page 908 18.2. Переназначение ввода-вывода в системах UNIX и DOS ......Page 909 18.3. Список параметров переменной длины ......Page 910 18.5. Замечания по компиляции программ, состоящих из нескольких исходных файлов ......Page 912 18.6. Завершение программы при помощи функций exit и atexit ......Page 915 18.7. Спецификатор типа volatile ......Page 916 18.9. Обработка сигналов ......Page 917 18.10. Динамическое выделение памяти: функции calloc и realloc ......Page 920 18.11. Безусловный переход: оператор goto ......Page 921 18.12. Объединения ......Page 922 18.13. Спецификации связывания ......Page 926 Резюме • Терминология • Типичные ошибки программирования • Советы по повышению эффективности • Замечания по мобильности • Замечания по технике программирования • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 927 Приложение А. Стандартная библиотека ......Page 936 Приложение Б. Таблица приоритета операций ......Page 975 Приложение В. Набор символов ASCII ......Page 976 Приложение Г. Системы счисления ......Page 977 Г. 1. Введение ......Page 978 Г. 2. Сокращенная запись двоичных чисел в восьмеричной и шестнадцатеричной системах счисления ......Page 981 Г. 4. Преобразование двоичных, восьмеричных и шестнадцатеричных чисел в десятичные ......Page 983 Г. 5. Преобразование десятичных чисел в двоичные, восьмеричные и шестнадцатеричные ......Page 984 Г. 6. Представление отрицательных двоичных чисел: дополнение до двух ......Page 985 Резюме • Терминология • Упражнения для самопроверки • Ответы на упражнения для самопроверки • Упражнения ......Page 986 Предметный указатель ......Page 993

قیمت نهایی

۴۰٬۰۰۰ تومان