Язык программирования C++. Лекции и упражнения

Язык программирования C++. Лекции и упражнения
sku: 12523996
ACCORDING TO OUR RECORDS THIS PRODUCT IS NOT AVAILABLE NOW
1,160.00 грн.
Shipping from: Ukraine
   Description
[html]Книга "Язык программирования C++. Лекции и упражнения" представляет собой тщательно проверенный, качественно составленный и полный учебник по одной из ключевых тем для программистов и разработчиков. Эта классическая работа по вычислительной технике обучает принципам программирования, среди которых структурированный код и нисходящее проектирование, а также использованию классов, наследования, шаблонов, исключений, лямбда-выражений, интеллектуальных указателей и семантики переноса.Автор и преподаватель Стивен Прата создал поучительное, ясное и строгое введение в C++. Фундаментальные концепции программирования излагаются вместе с подробными сведениями о языке C++. Множество коротких практических примеров иллюстрируют одну или две концепции за раз, стимулируя читателей осваивать новые темы за счет непосредственной их проверки на практике.Вопросы для самоконтроля и упражнения по программированию, предлагаемые в конце каждой главы, помогут читателям сосредоточиться на самой критически важной информации и систематизировать наиболее сложные концепции.Написанное в дружественном стиле, простое в освоении руководство для самостоятельного изучения подойдет как студентам, обучающимся программированию, так и разработчикам, имеющим дело с другими языками и стремящимся лучше понять фундаментальные основы этого ключевого языка программирования.Шестое издание этой книги обновлено и расширено с учетом последних тенденций в разработке на C++, а также для детального отражения нового стандарта C++11.Книга "Язык программирования C++. Лекции и упражнения" отличается следующими особенностями:- Всеобъемлющее обсуждение классического языка C и дополнительных средств языка C++- Строгое и ясное руководство по использованию каждой функциональной возможности- Практическое обучение на кратких и простых примерах, которые развивают понимание одной или двух концепций за раз- Сотни полезных примеров программ- Вопросы для самоконтроля и упражнения по программированию, приводимые в конце каждой главы для самостоятельной проверки степени усвоения материала- Освещение обобщенного языка C++ предоставляет максимально возможную гибкость- Обучение стандарту ISO, включая обсуждение шаблонов, стандартной библиотеки шаблонов (STL), класса string, исключений, RTTI и пространств именОб авторе книги "Язык программирования C++. Лекции и упражнения":Стивен Прата изучал астрономию, физику и вычислительную технику в Морском колледже (Кентфилд, Калифорния). Он получил степень бакалавра в Калифорнийском институте технологий и степень доктора философии в Университете Калифорнии в Беркли. Является автором и соавтором свыше десятка книг по программированию, среди которых New C Primer Plus, выигравшая в 1990 году номинацию лучшей справочной компьютерной книги (Computer Press Association's 1990 Best How-to Computer Book Award), и C++ Primer Plus, в 1991 году выдвинутая на номинацию Computer Press Association's Best How-to Computer Book Award.Содержание книги Стивена Прата "Язык программирования C++. Лекции и упражнения"Благодарности 20Об авторе 22От издательства 22Введение 23Принятый подход 23Примеры кода, используемые в книге 24Организация книги 24Примечание для преподавателей 28Соглашения, используемые в этой книге 29Системы, на которых разрабатывались примеры для книги 30Глава 1. Начало работы с C++ 31Изучение языка C++: с чем придется иметь дело 32Истоки языка C++: немного истории 33Язык программирования C 33Философия программирования на языке C 34Переход к C++: объектно-ориентированное программирование 35C++ и обобщенное программирование 37Происхождение языка программирования C++ 37Переносимость и стандарты 38Развитие языка 41Эта книга и стандарты C++ 41Порядок создания программы 41Создание файла исходного кода 42Компиляция и компоновка 43Компиляция и связывание в Unix 44Компиляция и связывание в Linux 45Компиляторы командной строки для режима командной строки Windows 45Компиляторы для Windows 46C++ в Macintosh 48Резюме 48Глава 2. Приступаем к изучению C++ 49Первые шаги в C++ 50Возможности функции main() 51Заголовок функции как интерфейс 52Почему функции main() нельзя назначать другое имя 54Комментарии в языке C++ 54Препроцессор C++ и файл iostream 55Имена заголовочных файлов 56Пространства имен 57Вывод в C++ с помощью cout 58Манипулятор endl 60Символ новой строки 60Форматирование исходного кода C++ 61Лексемы и пробельные символы в исходном коде 61Стиль написания исходного кода C++ 62Операторы в языке C++ 63Операторы объявления и переменные 63Операторы присваивания 65Новый трюк с объектом cout 66Другие операторы C++ 67Использование cin 67Конкатенация с помощью cout 68cin и cout: признак класса 68Функции 70Использование функции, имеющей возвращаемое значение 70Разновидности функций 74Функции, определяемые пользователем 75Использование определяемых пользователем функций, имеющих возвращаемое значение 78Местоположение директивы using в программах с множеством функций 80Резюме 81Вопросы для самоконтроля 82Упражнения по программированию 83Глава 3. Работа с данными 85Простые переменные 86Имена, назначаемые переменным 87Целочисленные типы 88Целочисленные типы short, int, long и long long 89Типы без знаков 94Выбор целочисленного типа 96Целочисленные литералы 97Определение компилятором C++ типа константы 99Тип char: символы и короткие целые числа 100Тип bool 109Квалификатор const 109Числа с плавающей точкой 111Запись чисел с плавающей точкой 111Типы чисел с плавающей точкой 112Константы с плавающей точкой 114Преимущества и недостатки чисел с плавающей точкой 115Арифметические операции в C++ 116Порядок выполнения операций: приоритеты операций и ассоциативность 117Операция нахождения остатка от деления 119Преобразования типов 120Объявления auto в C++11 126Резюме 127Вопросы для самоконтроля 128Упражнения по программированию 129Глава 4. Составные типы 131Введение в массивы 132Замечания по программе 134Правила инициализации массивов 135Инициализация массивов в C++11 136Строки 136Конкатенация строковых литералов 138Использование строк в массивах 138Риски, связанные с вводом строк 140Построчное чтение ввода 141Смешивание строкового и числового ввода 145Введение в класс string 146Инициализация строк в C++11 148Другие формы строковых литералов 153Введение в структуры 154Использование структур в программах 155Инициализация структур в C++11 158Может ли структура содержать член типа string? 158Прочие свойства структур 158Массивы структур 160Битовые поля в структурах 161Объединения 162Перечисления 163Установка значений перечислителей 165Диапазоны значений перечислителей 165Указатели и свободное хранилище 166Объявление и инициализация указателей 169Опасность, связанная с указателями 171Указатели и числа 172Выделение памяти с помощью операции new 172Освобождение памяти с помощью операции delete 175Использование операции new для создания динамических массивов 176Указатели, массивы и арифметика указателей 179Замечания по программе 180Указатели и строки 184Использование операции new для создания динамических структур 189Автоматическое, статическое и динамическое хранилище 192Комбинации типов 194Альтернативы массивам 196Шаблонный класс vector 196Шаблонный класс array (C++11) 197Сравнение массивов, объектов vector и объектов array 198Резюме 199Вопросы для самоконтроля 201Упражнения по программированию 202Глава 5. Циклы и выражения отношений 205Введение в циклы for 206Части цикла for 207Возврат к циклу for 213Изменение шага цикла 214Доступ внутрь строк с помощью цикла for 215Операции инкремента и декремента 216Побочные эффекты и точки следования 217Сравнение префиксной и постфиксной форм 218Операции инкремента и декремента и указатели 219Комбинация операций присваивания 220Составные операторы, или блоки 221Дополнительные синтаксические трюки - операция запятой 222Выражения отношений 225Присваивание, сравнение и вероятные ошибки 226Сравнение строк в стиле C 228Сравнение строк класса string 230Цикл while 231Замечания по программе 233Сравнение циклов for и while 234Построение цикла задержки 235Цикл do while 237Цикл for, основанный на диапазоне (C++11) 239Циклы и текстовый ввод 240Применение для ввода простого cin 240Спасение в виде cin.get(char) 242Выбор используемой версии cin.get() 243Условие конца файла 243Еще одна версия cin.get() 246Вложенные циклы и двумерные массивы 250Инициализация двумерного массива 251Использование двумерного массива 252Резюме 253Вопросы для самоконтроля 254Упражнения по программированию 255Глава 6. Операторы ветвления и логические операции 257Оператор if 258Оператор if else 259Форматирование операторов if else 261Конструкция if else if else 262Логические выражения 264Логическая операция "ИЛИ": || 264Логическая операция "И": && 265Логическая операция "НЕ": ! 270Факты, связанные с логическими операциями 271Альтернативные представления 272Библиотека символьных функций cctype 272Операция ?: 275Оператор switch 276Использование перечислителей в качестве меток 279Операторы switch и if else 280Операторы break и continue 281Замечания по программе 282Циклы для чтения чисел 283Замечания по программе 286Простой файловый ввод-вывод 287Текстовый ввод-вывод и текстовые файлы 287Запись в текстовый файл 288Чтение текстового файла 292Резюме 297Вопросы для самоконтроля 298Упражнения по программированию 300Глава 7. Функции как программные модули C++ 303Обзор функций 304Определение функции 305Прототипирование и вызов функции 307Аргументы функций и передача по значению 310Множественные аргументы 312Еще одна функция с двумя аргументами 314Функции и массивы 316Как указатели позволяют функциям обрабатывать массивы 318Последствия использования массивов в качестве аргументов 318Дополнительные примеры функций для работы с массивами 321Функции, работающие с диапазонами массивов 327Указатели и const 329Функции и двумерные массивы 332Функции и строки в стиле C 333Функции с аргументами - строками в стиле C 334Функции, возвращающие строки в стиле C 335Функции и структуры 337Передача и возврат структур 337Еще один пример использования функций со структурами 339Передача адресов структур 344Функции и объекты класса string 346Функции и объекты array 347Замечания по программе 349Рекурсия 349Рекурсия с одиночным рекурсивным вызовом 349Рекурсия с множественными рекурсивными вызовами 351Указатели на функции 352Основы указателей на функции 353Пример с указателем на функцию 355Вариации на тему указателей на функции 356Упрощение объявлений с помощью typedef 360Резюме 361Вопросы для самоконтроля 362Упражнения по программированию 363Глава 8. Дополнительные сведения о функциях 367Встроенные функции C++ 368Ссылочные переменные 371Создание ссылочных переменных 371Ссылки как параметры функций 374Свойства и особенности ссылок 377Временные переменные, ссылочные аргументы и квалификатор const 379Использование ссылок при работе со структурами 381Использование ссылок на объект класса 388Еще один урок ООП: объекты, наследование и ссылки 391Когда целесообразно использовать ссылочные аргументы 394Аргументы по умолчанию 395Перегрузка функций 398Пример перегрузки 400Когда целесообразно использовать перегрузку функций 403Шаблоны функций 404Перегруженные шаблоны 407Ограничения шаблонов 408Явные специализации 409Создание экземпляров и специализация 412Какую версию функции выбирает компилятор? 414Эволюция шаблонных функций 421Резюме 424Вопросы для самоконтроля 425Упражнения по программированию 426Глава 9. Модели памяти и пространства имен 429Раздельная компиляция 430Продолжительность хранения, область видимости и компоновка 435Область видимости и связывание 436Автоматическая продолжительность хранения 437Переменные со статической продолжительностью хранения 442Спецификаторы и классификаторы 452Функции и связывание 455Языковое связывание 456Схемы хранения и динамическое выделение памяти 457Инициализация с помощью операции new 458Когда new дает сбой 458new: операции, функции и заменяющие функции 458Операция new с размещением 459Пространства имен 463Традиционные пространства имен C++ 463Новое средство пространств имен 465Пример пространства имен 472Пространства имен и будущее 475Резюме 476Вопросы для самоконтроля 477Упражнения по программированию 479Глава 10. Объекты и классы 483Процедурное и объектно-ориентированное программирование 484Абстракции и классы 485Что такое тип? 486Классы в C++ 486Реализация функций-членов класса 492Использование классов 496Изменение реализации 498Обзор ситуации на текущий момент 499Конструкторы и деструкторы классов 500Усовершенствование класса Stock 505Обзор конструкторов и деструкторов 513Изучение объектов: указатель this 514Массив объектов 520Область видимости класса 522Абстрактные типы данных 526Резюме 530Вопросы для самоконтроля 531Упражнения по программированию 531Глава 11. Работа с классами 535Перегрузка операций 537Время в наших руках: разработка примера перегрузки операции 538Добавление операции сложения 540Ограничения перегрузки 543Дополнительные перегруженные операции 545Что такое друзья? 547Создание друзей 549Общий вид друга: перегрузка операции 998Состояния потока 1000Другие методы класса istream 1004Другие методы класса istream 1011Файловый ввод и вывод 1015Простой файловый ввод-вывод 1016Проверка потока и is_open() 1019Открытие нескольких файлов 1020Обработка командной строки 1020Режимы файла 1022Произвольный доступ 1032Внутреннее форматирование 1040Резюме 1042Вопросы для самопроверки 1044Упражнения по программированию 1045Глава 18. Новый стандарт C++ 1049Обзор уже известных функциональных средств C++11 1050Новые типы 1050Унифицированная инициализация 1050Объявления 1052nullptr 1054Интеллектуальные указатели 1054Изменения в спецификации исключений 1054Перечисления с областью видимости 1054Изменения в классах 1055Изменения в шаблонах и STL 1056Ссылка rvalue 1058Семантика переноса и ссылка rvalue 1059Необходимость в семантике переноса 1059Пример семантики переноса 1061Исследование конструктора переноса 1065Присваивание 1067Принудительное применение переноса 1067Новые возможности классов 1071Специальные функции-члены 1071Явно заданные по умолчанию и удаленные методы 1072Делегирование конструкторов 1074Наследование конструкторов 1074Управление виртуальными методами: override и final 1076Лямбда-функции 1077Как работают указатели на функции, функторы и лямбда 1077Более подробно о лямбда-функциях 1081Оболочки 1083Оболочка function и неэффективность шаблонов 1084Решение проблемы 1086Дополнительные возможности 1087Шаблоны с переменным числом аргументов 1088Пакеты параметров шаблонов и функций 1089Распаковка пакетов 1090Использование рекурсии в шаблонных функциях с переменным числом аргументов 1090Другие средства C++11 1093Параллельное программирование 1093Библиотечные дополнения 1094Низкоуровневое программирование 1094Смешанные средства 1095Языковые изменения 1096Проект Boost 1096Проект TR1 1097Использование Boost 1097Что дальше? 1098Резюме 1099Вопросы для самоконтроля 1100Упражнения по программированию 1102Приложение А. Основания систем счисления 1105Десятичные числа (основание 10) 1105Восьмеричные целые числа (основание 8) 1106Шестнадцатеричные числа (основание 16) 1106Двоичные числа (основание 2) 1107Двоичная и шестнадцатеричная формы записи 1107Приложение Б. Зарезервированные слова C++ 1109Ключевые слова С++ 1109Альтернативные лексемы 1110Зарезервированные имена библиотеки С++ 1110Идентификаторы со специальным назначением 1111Приложение В. Набор символов ASCII 1113Приложение Г. Приоритеты операций 1119Приложение Д. Другие операции 1123Битовые операции 1123Операции сдвига 1123Логические битовые операции 1125Альтернативные представления битовых операций 1127Примеры использования битовых операций 1128Операции разыменования членов 1129alignof (C++11) 1133noexcept (C++11) 1134Приложение Е. Шаблонный класс string 1135Тринадцать типов и константа 1136Информация о данных, конструкторы и вспомогательные элементы 1137Конструктор по умолчанию 1139Конструкторы, использующие строки в стиле C 1140Конструкторы, использующие часть строки в стиле C 1140Конструкторы, использующие ссылку lvalue 1140Конструкторы, использующие ссылку rvalue (C++11) 1142Конструктор, использующий n копий символа 1142Конструктор, использующий диапазон 1142Конструктор, использующий список инициализаторов (C++11) 1143Различные действия с памятью 1143Доступ к строке 1143Базовое присваивание 1145Поиск в строках 1145Семейство find() 1145Семейство rfind() 1146Семейство find_first_of() 1147Семейство find_last_of() 1147Семейство find_first_not_of() 1147Семейство find_last_not_of() 1148Методы и функции сравнения 1148Модификация строк 1149Методы присоединения и добавления 1150Дополнительные методы присваивания 1150Методы вставки 1151Методы очистки 1152Методы замены 1152Другие методы модификации: copy() и swap() 1153Ввод и вывод 1153Приложение Ж. Методы и функции стандартной библиотеки шаблонов 1155Библиотека STL и C++11 1155Новые контейнеры 1155Изменения в контейнерах C++98 1156Члены, общие для всех или большинства контейнеров 1157Дополнительные члены для контейнеров последовательностей 1160Дополнительные операции для множеств и карт 1164Неупорядоченные ассоциативные контейнеры (C++11) 1166Функции библиотеки STL 1168Операции, не модифицирующие последовательности 1169Операции, видоизменяющие последовательности 1174Операции сортировки и связанные с ними операции 1184Числовые операции 1197Приложение З. Рекомендуемая литература и ресурсы в Интернете 1201Рекомендуемая литература 1201Ресурсы в Интернете 1203Приложение И. Переход к стандарту ANSI/ISO C++ 1205Используйте альтернативы для некоторых директив препроцессора 1205Используйте const вместо #define для определения констант 1205Используйте inline вместо #define для определения коротких функций 1207Используйте прототипы функций 1208Используйте приведения типов 1208Знакомьтесь с функциональными возможностями C++ 1209Используйте новую организацию заголовочных файлов 1209Используйте пространства имен 1209Используйте интеллектуальные указатели 1211Используйте класс string 1211Используйте библиотеку STL 1211Приложение К. Ответы на вопросы для самоконтроля 1213[/html]
   Technical Details
categoryTitle: Научная и техническая литература
rating: 0
   Price history chart & currency exchange rate

Customers also viewed