На главную | Где купить | Авторам и заказчикам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты | Прайс листы

C++. Мастер-класс в задачах и примерах

Автор Кузнецов М., Симдянов И.
Название C++. Мастер-класс в задачах и примерах
Серия В задачах и примерах
ISBN 978-5-94157-953-2
Формат 70х100 1/16
Объем 480
Тематика
Оптовая цена 399 руб.
    Вернуться к описанию книги

Полное содержание

Оглавление Введение 13
Для кого предназначена книга? 17
ЧАСТЬ I. ЗАДАЧИ ПО ОСНОВАМ ЯЗЫКА 19

Глава I.1. Базовые конструкции языка

21
I.1.1.0 Включение заголовочных файлов 22
I.1.2.0 Сколько байтов занимает каждый из базовых типов? 22
I.1.3.0 Сколько байтов занимает тип void? 23
I.1.4.0 Равны ли числа? 23
I.1.5.0 Результат сравнения? 23
I.1.6.0 Сравнение инкремента и постинкремента 24
I.1.7.0 Четное или нечетное? 25
I.1.8.0 Имя программы 25
I.1.9.0 Чем отличается switch от конструкции if-else-if? 25
I.1.10. Вывод случайного числа символов 27
I.1.11. Вывод четных чисел 27
I.1.12. Вывод всех видимых ASCII-символов 27
I.1.13. Поиск простых чисел 27
I.1.14. Упаковка цикла for 27
I.1.15. Преобразование десятичного числа в двоичное 29
I.1.16. Преобразование двоичного числа в десятичное 29
I.1.17. Преобразование десятичного числа в восьмеричное 29
I.1.18. Преобразование восьмеричного числа в десятичное 29
I.1.19. Преобразование десятичного числа в шестнадцатеричное 29
I.1.20. Преобразование шестнадцатеричного числа в десятичное 29
I.1.21. Исключающее ИЛИ 29
I.1.22. Возведение числа в степень 30
I.1.23. Смена знака числа 30
I.1.24. Изменение регистра строки 30
I.1.25. Глобальные переменные 30
I.1.26. Статическая глобальная переменная 31
I.1.27. Оператор "запятая" 31
I.1.28. Использование структур и перечислений 32
I.1.29. Объединение и битовые поля 32
I.1.30. Преобразование арабского числа в римское 32

Глава I.2. Указатели, ссылки, массивы, строки

33
I.2.1.0 Укоротить строку 34
I.2.2.0 Объявление строки 34
I.2.3.0 Размер строки 35
I.2.4.0 Количество элементов массива 35
I.2.5.0 Увеличение размера строки 35
I.2.6.0 Чередование символов строки и пробелов 36
I.2.7.0 Сравнение строк 36
I.2.8.0 Упаковка IP-адреса 36
I.2.9.0 Адрес переменной 37
I.2.10. Обход массива при помощи указателей 37
I.2.11. Получение старшего и младшего разрядов 38
I.2.12. Новый тип 38
I.2.13. Блочный вывод строки 39
I.2.14. Разбивка строки по пробелу 39
I.2.15. Найдите ошибку 39
I.2.16. Допустимо ли выражение ****k=56? 40
I.2.17. Массив строк 40
I.2.18. Динамический массив 40
I.2.19. Динамический многомерный массив 40
I.2.20. Заполнение элементов массива 40
I.2.21. Чем отличается int * const от int const *? 41
I.2.22. Отличие ссылки от указателя 41
I.2.23. Указатель и ссылка на структуру 41
I.2.24. Указатель на структуру 42
I.2.25. Использование структур для хранения строк 42
I.2.26. Односвязный список 43

Глава I.3. Функции

45
I.3.1.0 Подсчет числа вызовов функции 45
I.3.2.0 Подсчет среднего значения 45
I.3.3.0 Обработка одномерного массива в функции 46
I.3.4.0 Указатель на последний элемент массива 46
I.3.5.0 Функция обмена значений двух переменных 46
I.3.6.0 Рекурсивный вызов 47
I.3.7.0 Переменная сумма 47
I.3.8.0 Допустимо ли выражение f() = 10.0 ? 47
I.3.9.0 Предотвращение выхода за границы массива 47
I.3.10. Вывод строки в стандартный поток 47
I.3.11. Функции abs(), labs() и fabs() 48
I.3.12. Ошибка в перегрузке функции 48
I.3.13. Функция с переменным количеством параметров 49
I.3.14. Указатель на функцию 49
I.3.15. Обработка функцией элементов массива 49
I.3.16. Односвязный список 50
I.3.17. Двухсвязный список 50
I.3.18. Создание файла с уникальным именем 51
I.3.19. Количество строк в файле 51
I.3.20. Вывод случайной строки из файла 51
I.3.21. Вывод трех случайных строк файла 51
I.3.22. Последние три строки файла 52
I.3.23. Поиск строки в файле 52
I.3.24. Самая длинная и самая короткая строка в файле 52
I.3.25. Список слов заданной длины 52
I.3.26. Поиск слов по первым символам 52
I.3.27. Изменение порядка следования строк в файле 52
I.3.28. Разбиение файла на части 53
I.3.29. Шаблоны функций 53
I.3.30. Перегрузка шаблона функций 53

Глава I.4. Объекты и классы

55
I.4.1.0 Чем отличается структура struct от класса class? 55
I.4.2.0 Чем отличается объединение union от класса class? 56
I.4.3.0 Константы в классах 56
I.4.4.0 Подсчет количества созданных объектов 56
I.4.5.0 Найдите ошибку 56
I.4.6.0 Использование объекта в нескольких файлах 57
I.4.7.0 Инициализация объекта при помощи = 58
I.4.8.0 Класс с динамическим массивом 58
I.4.9.0 Класс-интерфейс к файлу 58
I.4.10. Постраничная навигация 59
I.4.11. Алфавитная навигация 60
I.4.12. Дружественная функция 60
I.4.13. Блокировка файла по статическому члену класса 61
I.4.14. Блокировка файла двумя классами 61
I.4.15. Копирующий конструктор 62
I.4.16. Перегрузка оператора = 63
I.4.17. Перегрузка логических операторов 63
I.4.18. Перегрузка операторов +, –, / и * 63
I.4.19. Перегрузка операторов ++ и -- 63
I.4.20. Перегрузка оператора [] 64
I.4.21. Перегрузка оператора () 64
I.4.22. Наследование одного класса другим 65
I.4.23. Расширение функциональности класса 65
I.4.24. Перегрузка метода базового класса 65
I.4.25. Виртуальный класс 66
I.4.26. Указатель на объект базового типа 66
I.4.27. Чем отличается виртуальная функция от чисто виртуальной функции? 67
I.4.28. Динамическая идентификация типов 67
I.4.29. Приведение типов 67
I.4.30. Обобщенный класс безопасного массива 67
I.4.31. Использование параметров в шаблонах классов 67
I.4.32. Перегрузка шаблонов 68
I.4.33. Обобщенный двухсвязный список 68

Глава I.5. Исключения

69
I.5.1. Генерация исключений 69
I.5.2. Перехват исключений в иерархии классов 69
I.5.3. Перехват всех исключений 70
I.5.4. Функция, генерирующая исключение 70
I.5.5. Выделение динамической памяти 70
I.5.6. Перегрузка операторов new и delete 71

Глава I.6. Стандартная библиотека

73
I.6.1.0 Стандартное пространство имен 73
I.6.2.0 Класс auto_ptr 74
I.6.3.0 Присваивание и класс auto_ptr 75
I.6.4.0 Какие типы контейнеров поддерживаются в STL? 76
I.6.5.0 Работа с вектором 76
I.6.6.0 Работа с деком 76
I.6.7.0 Работа со списком 77
I.6.8.0 Работа с множеством 77
I.6.9.0 Работа с отображением 77
I.6.10. Преобразование одной коллекции в другую 78
I.6.11. Допускается ли сравнение коллекций друг с другом? 78
I.6.12. Сортировка строк 78
I.6.13. Поиск максимального и минимального значений коллекции 78
I.6.14. Обращение порядка следования элементов 78
I.6.15. Сортировка содержимого файла 79
I.6.16. Создание копии коллекции 79
I.6.17. Удаление элементов коллекции 79
I.6.18. Вывод содержимого произвольной коллекции 81
I.6.19. Преобразование коллекции при копировании 81
I.6.20. Что такое предикат? 81
I.6.21. Что такое объект-функция? 81
I.6.22. В чем особенность контейнера vector? 81

Глава I.7. Ввод/вывод

83
I.7.1. Что такое поток? 83
I.7.2. Выравнивание строк по правому краю 83
I.7.3. Выравнивание строк по правому и левому краям 84
I.7.4. Ввод строк пользователем 84
I.7.5. Перегрузка операторов >> и << 84
I.7.6. Собственный манипулятор 85

Глава I.8. Разное

87
I.8.1. Кривая Безье 87
I.8.2. Преобразование строк в массив 88
I.8.3. Разгрузка баржи 89
I.8.4. Длительность жизни ученого 90
I.8.5. Выгода предпринимателя 90
ЧАСТЬ II. ОТВЕТЫ 91

Глава II.1. Базовые конструкции языка

93
II.1.1.0 Включение заголовочных файлов 93
II.1.2.0 Сколько байтов занимает каждый из базовых типов? 94
II.1.3.0 Сколько байтов занимает тип void? 96
II.1.4.0 Равны ли числа? 97
II.1.5.0 Результат сравнения 99
II.1.6.0 Сравнение инкремента и постинкремента 99
II.1.7.0 Четное или нечетное? 100
II.1.8.0 Имя программы 101
II.1.9.0 Чем отличается switch от конструкции if-else-if? 102
II.1.10. Вывод случайного числа символов 104
II.1.11. Вывод четных чисел 106
II.1.12. Вывод всех видимых ASCII-символов 107
II.1.13. Поиск простых чисел 108
II.1.14. Упаковка цикла for 109
II.1.15. Преобразование десятичного числа в двоичное 109
II.1.16. Преобразование двоичного числа в десятичное 117
II.1.17. Преобразование десятичного числа в восьмеричное 118
II.1.18. Преобразование восьмеричного числа в десятичное 123
II.1.19. Преобразование десятичного числа в шестнадцатеричное 126
II.1.20. Преобразование шестнадцатеричного числа в десятичное 130
II.1.21. Исключающее ИЛИ 132
II.1.22. Возведение числа в степень 132
II.1.23. Смена знака числа 133
II.1.24. Изменение регистра символов строки 134
II.1.25. Глобальные переменные 136
II.1.26. Статическая глобальная переменная 137
II.1.27. Оператор "запятая" 137
II.1.28. Использование структур и перечислений 138
II.1.29. Объединение и битовые поля 140
II.1.30. Преобразование арабского числа в римское 143

Глава II.2. Указатели, ссылки, массивы, строки

147
II.2.1.0 Укоротить строку 147
II.2.2.0 Объявление строки 149
II.2.3.0 Размер строки 150
II.2.4.0 Количество элементов массива 152
II.2.5.0 Увеличение размера строки 153
II.2.6.0 Чередование символов строки и пробелов 154
II.2.7.0 Сравнение строк 155
II.2.8.0 Упаковка IP-адреса 157
II.2.9.0 Адрес переменной 160
II.2.10. Обход массива при помощи указателей 160
II.2.11. Получение старшего и младшего разрядов 161
II.2.12. Новый тип 164
II.2.13. Блочный вывод строки 164
II.2.14. Разбивка строки по пробелу 165
II.2.15. Найдите ошибку 167
II.2.16. Допустимо ли выражение ****k=56? 167
II.2.17. Массив строк 169
II.2.18. Динамический массив 169
II.2.19. Динамический многомерный массив 172
II.2.20. Заполнение элементов массива 176
II.2.21. Чем отличается int * const от int const * ? 178
II.2.22. Отличие ссылки от указателя 179
II.2.23. Указатель и ссылка на структуру 180
II.2.24. Указатель на структуру 182
II.2.25. Использование структур для хранения строк 183
II.2.26. Односвязный список 183

Глава II.3. Функции

185
II.3.1.0 Подсчет числа вызовов функции 185
II.3.2.0 Подсчет среднего значения 188
II.3.3.0 Обработка одномерного массива в функции 189
II.3.4.0 Указатель на последний элемент массива 190
II.3.5.0 Функция обмена значений двух переменных 192
II.3.6.0 Рекурсивный вызов 196
II.3.7.0 Переменная сумма 197
II.3.8.0 Допустимо ли выражение f() = 10.0 ? 199
II.3.9.0 Предотвращение выхода за границы массива 199
II.3.10. Вывод строки в стандартный поток 200
II.3.11. Функции abs(), labs() и fabs() 203
II.3.12. Ошибка в перегрузке функции 204
II.3.13. Функция с переменным количеством параметров 205
II.3.14. Указатель на функцию 207
II.3.15. Обработка функцией элементов массива 208
II.3.16. Односвязный список 209
II.3.17. Двухсвязный список 217
II.3.18. Создание файла с уникальным именем 226
II.3.19. Количество строк в файле 233
II.3.20. Вывод случайной строки из файла 234
II.3.21. Вывод трех случайных строк файла 239
II.3.22. Последние три строки файла 240
II.3.23. Поиск строки в файле 243
II.3.24. Самая длинная и самая короткая строки в файле 244
II.3.25. Список слов заданной длины 246
II.3.26. Поиск слов по первым символам 247
II.3.27. Изменение порядка следования строк в файле 251
II.3.28. Разбить файл на части 254
II.3.29. Шаблоны функций 256
II.3.30. Перегрузка шаблона функций 258

Глава II.4. Объекты и классы

261
II.4.1.0 Чем отличается структура struct от класса class? 261
II.4.2.0 Чем отличается объединение union от класса class? 263
II.4.3.0 Константы в классах 265
II.4.4.0 Подсчет количества созданных объектов 269
II.4.5.0 Найдите ошибку 272
II.4.6.0 Использование объекта в нескольких файлах 273
II.4.7.0 Инициализация объекта при помощи = 274
II.4.8.0 Класс с динамическим массивом 276
II.4.9.0 Класс-интерфейс к файлу 278
II.4.10. Постраничная навигация 285
II.4.11. Алфавитная навигация 288
II.4.12. Дружественная функция 295
II.4.13. Блокировка файла по статическому члену класса 296
II.4.14. Блокировка файла двумя классами 298
II.4.15. Копирующий конструктор 303
II.4.16. Перегрузка оператора = 306
II.4.17. Перегрузка логических операторов 309
II.4.18. Перегрузка операторов +, –, / и * 311
II.4.19. Перегрузка операторов ++ и -- 318
II.4.20. Перегрузка оператора [] 319
II.4.21. Перегрузка оператора ( ) 320
II.4.22. Наследование одного класса другим 321
II.4.23. Расширение функциональности класса 325
II.4.24. Перегрузка метода базового класса 326
II.4.25. Виртуальный класс 328
II.4.26. Указатель на объект базового типа 330
II.4.27. Чем отличается виртуальная функция от чисто виртуальной функции? 331
II.4.28. Динамическая идентификация типов 335
II.4.29. Приведение типов 337
II.4.30. Обобщенный класс безопасного массива 341
II.4.31. Использование параметров в шаблонах классов 343
II.4.32. Перегрузка шаблонов 345
II.4.33. Обобщенный двухсвязный список 347

Глава II.5. Исключения

353
II.5.1. Генерация исключений 353
II.5.2. Перехват исключений в иерархии классов 356
II.5.3. Перехват всех исключений 358
II.5.4. Функция, генерирующая исключение 359
II.5.5. Выделение динамической памяти 362
II.5.6. Перегрузка операторов new и delete 364

Глава II.6. Стандартная библиотека

369
II.6.1.0 Стандартное пространство имен 369
II.6.2.0 Класс auto_ptr 371
II.6.3.0 Присваивание и класс auto_ptr 373
II.6.4.0 Какие типы контейнеров поддерживаются в STL? 374
II.6.5.0 Работа с вектором 375
II.6.6.0 Работа с деком 380
II.6.7.0 Работа со списком 382
II.6.8.0 Работа с множеством 385
II.6.9.0 Работа с отображением 391
II.6.10. Преобразование одной коллекции в другую 394
II.6.11. Допускается ли сравнение коллекций друг с другом? 395
II.6.12. Сортировка строк 396
II.6.13. Поиск максимального и минимального значений коллекции 401
II.6.14. Обращение порядка следования элементов 403
II.6.15. Сортировка содержимого файла 406
II.6.16. Создание копии коллекции 409
II.6.17. Удаление элементов коллекции 414
II.6.18. Вывод содержимого произвольной коллекции 417
II.6.19. Преобразование коллекции при копировании 420
II.6.20. Что такое предикат? 422
II.6.21. Что такое объект-функция? 425
II.6.22. В чем особенность контейнера vector? 434

Глава II.7. Ввод/вывод

435
II.7.1. Что такое поток? 435
II.7.2. Выравнивание строк по правому краю 438
II.7.3. Выравнивание строк по правому и левому краям 445
II.7.4. Ввод строк пользователем 449
II.7.5. Перегрузка операторов >> и << 452
II.7.6. Собственный манипулятор 454

Глава II.8. Разное

459
II.8.1. Кривая Безье 459
II.8.2. Преобразование строк в массив 460
II.8.3. Разгрузка баржи 464
II.8.4. Длительность жизни ученого 466
II.8.5. Выгода предпринимателя 468
Заключение 471
Приложение. Описание компакт-диска 473
Предметный указатель 475
10 Оглавление 11 Оглавление


На главную | Где купить | Авторам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты
© 2001–2017 Издательство «БХВ-Петербург».
Все права защищены. Частичное или полное копирование текстов, слоганов и фотоизображений без письменного согласия Правообладателя запрещено.