Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 639001)
Контекстум
Электро-2024

Решение задач на современном C++. Станьте опытным программистом, решая практические задачи (4000,00 руб.)

0   0
Первый авторБансила
ИздательствоМ.: ДМК Пресс
Страниц303
ID795285
АннотацияЭта книга — сборник практических задач по языку С++17: от математических и вычислительных до архитектурных, построенных на базе шаблонов проектирования. Здесь собрано 100 задач, которые помогут вам применить на практике разнообразные возможности C++ и его стандартной библиотеки, а также опробовать множество сторонних, кроссплатформенных библиотек. Решения представлены в виде исходного кода, пояснений и рекомендаций к нему. Книга рекомендована сообществом разработчиков С++ России и Беларуси. Издание будет полезно студентам технических вузов, а также начинающим и опытным разработчикам.
ISBN978-5-97060-666-7
УДК4.4
ББК32.973.202-018.2
Бансила, М. Решение задач на современном C++. Станьте опытным программистом, решая практические задачи / М. Бансила .— Москва : ДМК Пресс, 2019 .— 303 с. — ISBN 978-5-97060-666-7 .— URL: https://rucont.ru/efd/795285 (дата обращения: 17.06.2024)

Предпросмотр (выдержки из произведения)

Решение_задач_на_современном_C++._Станьте_опытным_программистом,_решая_практические_задачи.pdf
УДК 004.4 ББК 32.973.202-018.2 Б23 Б23 Мариус Бансила Решение задач на современном C++ / пер. с англ. А. Н. Киселева – М.: ДМК Пресс, 2019. – 302 с.: ил. ISBN 978-5-97060-666-7 Эта книга – сборник практических задач по языку С++17: от математических и вычислительных до архитектурных, построенных на базе шаблонов проектирования. Здесь собрано 100 задач, которые помогут вам применить на практике разнообразные возможности C++ и его стандартной библиотеки, а также опробовать множество сторонних, кроссплатформенных библиотек. Решения представлены в виде исходного кода, пояснений и рекомендаций к нему. Книга рекомендована сообществом разработчиков С++ России и Беларуси. Издание будет полезно студентам технических вузов, а также начинающим и опытным разработчикам. УДК 004.4 ББК 32.973.202-018.2 Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-78899-386-9 (англ.) ISBN 978-5-97060-666-7 (рус.) Copyright © 2018 Packt Publishing. © Оформление, перевод на русский язык, издание, ДМК Пресс, 2019
Стр.5
Оглавление Вступительное слово от сообщества разработчиков России и Беларуси .... 12 Об авторе ................................................................................................................ 13 О рецензентах ........................................................................................................ 14 О чем рассказывается в книге ............................................................................. 15 Вступление .............................................................................................................. 17 Кому адресована эта книга .........................................................................................................18 Что необходимо, чтобы извлечь максимум пользы из книги .......................................18 Скачивание исходного кода примеров .................................................................................19 Сборка примеров ............................................................................................................................19 Как сгенерировать проекты для Visual Studio 2017 ..........................................................20 Как сгенерировать проекты для Xcode ...................................................................................20 Соглашения........................................................................................................................................21 Отзывы и пожелания .....................................................................................................................22 Список опечаток ..............................................................................................................................23 Нарушение авторских прав ........................................................................................................23 Глава 1. Математические задачи ......................................................................... 24 Задачи .................................................................................................................................................24 1. Сумма натуральных чисел, кратных 3 и 5 ..........................................................................24 2. Наибольший общий делитель .................................................................................................24 3. Наименьшее общее кратное ...................................................................................................24 4. Наибольшее простое число меньше заданного ..............................................................24 5. Простые числа, отличающиеся на шесть ............................................................................24 6. Избыточные числа .......................................................................................................................24 7. Дружественные числа .................................................................................................................25 8. Числа Армстронга ........................................................................................................................25 9. Простые множители числа .......................................................................................................25 10. Код Грея .........................................................................................................................................25 11. Преобразование десятичных чисел в римские ............................................................25 12. Наибольшая последовательность Коллатца ...................................................................25 13. Вычисление значения числа π ............................................................................................25 14. Проверка действительности номеров ISBN ...................................................................25 Решения ..............................................................................................................................................25 1. Сумма натуральных чисел, кратных 3 и 5 ..........................................................................25 2. Наибольший общий делитель .................................................................................................26 3. Наименьшее общее кратное ...................................................................................................27
Стр.6
6  Оглавление 4. Наибольшее простое число меньше заданного ..............................................................27 5. Простые числа, отличающиеся на шесть ............................................................................28 6. Избыточные числа .......................................................................................................................29 7. Дружественные числа .................................................................................................................30 8. Числа Армстронга ........................................................................................................................31 9. Простые множители числа .......................................................................................................32 10. Код Грея .........................................................................................................................................33 11. Преобразование десятичных чисел в римские ............................................................34 12. Наибольшая последовательность Коллатца ...................................................................36 13. Вычисление значения числа π ............................................................................................37 14. Проверка действительности номеров ISBN ...................................................................38 Глава 2. Особенности языка ................................................................................. 40 Задачи .................................................................................................................................................40 15. Тип данных IPv4 .........................................................................................................................40 16. Перечисление адресов IPv4 в заданном диапазоне ..................................................40 17. 2-мерный массив с поддержкой базовых операций ..................................................40 18. Функция выбора минимального значения с переменным числом аргументов ...................................................................................................................................40 19. Добавление диапазона значений в контейнер ............................................................40 20. Проверка наличия в контейнере любого, всех и ни одного из указанных значений .......................................................................................................................................41 21. Обертка для системных дескрипторов.............................................................................41 22. Литералы разных температурных шкал ...........................................................................41 Решения ..............................................................................................................................................41 15. Тип данных IPv4 .........................................................................................................................41 16. Перечисление адресов IPv4 в заданном диапазоне ..................................................43 17. 2-мерный массив с поддержкой базовых операций ..................................................45 18. Функция выбора минимального значения с переменным числом аргументов ...................................................................................................................................47 19. Добавление диапазона значений в контейнер ............................................................48 20. Проверка наличия в контейнере любого, всех и ни одного из указанных значений .......................................................................................................................................49 21. Обертка для системных дескрипторов.............................................................................50 22. Литералы разных температурных шкал ...........................................................................54 Глава 3. Строки и регулярные выражения ......................................................... 59 Задачи .................................................................................................................................................59 23. Преобразование чисел в строки .........................................................................................59 24. Преобразование строк в числа ...........................................................................................59 25. Преобразование в верхний регистр первых букв слов ............................................59 26. Объединение строк через разделитель ...........................................................................59 27. Разбиение строк на лексемы по разделителям из списка ........................................60 28. Наибольшая подстрока-палиндром ..................................................................................60 29. Проверка номерного знака ...................................................................................................60 30. Извлечение частей URL ..........................................................................................................60
Стр.7
Оглавление  7 31. Преобразование дат в строках ............................................................................................60 Решения ..............................................................................................................................................60 23. Преобразование чисел в строки .........................................................................................60 24. Преобразование строк в числа ...........................................................................................61 25. Преобразование в верхний регистр первых букв слов ............................................63 26. Объединение строк через разделитель ...........................................................................64 27. Разбиение строк на лексемы по разделителям из списка ........................................65 28. Наибольшая подстрока-палиндром ..................................................................................66 29. Проверка номерного знака ...................................................................................................68 30. Извлечение частей URL ..........................................................................................................69 31. Преобразование дат в строках ............................................................................................71 Глава 4. Потоки данных и файловые системы .................................................. 72 Задачи .................................................................................................................................................72 32. Треугольник Паскаля ................................................................................................................72 33. Табличный вывод списка процессов .................................................................................72 34. Удаление пустых строк из текстового файла .................................................................72 35. Определение размера каталога ..........................................................................................72 36. Удаление файлов старше заданной даты ........................................................................73 37. Поиск файлов в каталоге, соответствующих регулярному выражению ..............73 38. Временные файлы журналов ...............................................................................................73 Решения ..............................................................................................................................................73 32. Треугольник Паскаля ................................................................................................................73 33. Табличный вывод списка процессов .................................................................................74 34. Удаление пустых строк из текстового файла .................................................................76 35. Определение размера каталога ..........................................................................................77 36. Удаление файлов старше заданной даты ........................................................................78 37. Поиск файлов в каталоге, соответствующих регулярному выражению ..............80 38. Временные файлы журналов ...............................................................................................81 Глава 5. Дата и время ............................................................................................ 83 Задачи .................................................................................................................................................83 39. Измерение времени выполнения функции ....................................................................83 40. Число дней между двумя датами .......................................................................................83 41. День недели .................................................................................................................................83 42. День и неделя года ...................................................................................................................83 43. Время встречи для нескольких часовых поясов ..........................................................83 44. Календарь на месяц .................................................................................................................83 Решения ..............................................................................................................................................84 39. Измерение времени выполнения функции ....................................................................84 40. Число дней между двумя датами .......................................................................................85 41. День недели .................................................................................................................................86 42. День и неделя года ...................................................................................................................87 43. Время встречи для нескольких часовых поясов ..........................................................88 44. Календарь на месяц .................................................................................................................90
Стр.8
8  Оглавление Глава 6. Алгоритмы и структуры данных ........................................................... 92 Задачи .................................................................................................................................................92 45. Приоритетная очередь ............................................................................................................92 46. Циклический буфер ..................................................................................................................92 47. Двойной буфер ...........................................................................................................................93 48. Самый часто встречающийся элемент в диапазоне ...................................................93 49. Текстовая гистограмма ............................................................................................................93 50. Фильтрация списка телефонных номеров ......................................................................93 51. Преобразование списка телефонных номеров ............................................................93 52. Генерация всех перестановок символов в строке .......................................................94 53. Средний рейтинг фильмов ....................................................................................................94 54. Алгоритм объединения в пары ............................................................................................94 55. Алгоритм «сшивания» ..............................................................................................................94 56. Алгоритм выбора .......................................................................................................................94 57. Алгоритм сортировки ...............................................................................................................95 58. Кратчайший путь между узлами .........................................................................................95 59. Программа Weasel ....................................................................................................................96 60. Игра «Жизнь» ..............................................................................................................................96 Решения ..............................................................................................................................................97 45. Приоритетная очередь ............................................................................................................97 46. Циклический буфер ..................................................................................................................99 47. Двойной буфер ........................................................................................................................ 103 48. Самый часто встречающийся элемент в диапазоне ................................................ 105 49. Текстовая гистограмма ......................................................................................................... 107 50. Фильтрация списка телефонных номеров ................................................................... 108 51. Преобразование списка телефонных номеров ......................................................... 109 52. Генерация всех перестановок символов в строке .................................................... 111 53. Средний рейтинг фильмов ................................................................................................. 113 54. Алгоритм объединения в пары ......................................................................................... 114 55. Алгоритм «сшивания» ........................................................................................................... 115 56. Алгоритм выбора .................................................................................................................... 117 57. Алгоритм сортировки ............................................................................................................ 117 58. Кратчайший путь между узлами ...................................................................................... 121 59. Программа Weasel ................................................................................................................. 125 60. Игра «Жизнь» ........................................................................................................................... 128 Глава 7. Конкуренция ...........................................................................................133 Задачи ..............................................................................................................................................133 61. Алгоритм параллельного преобразования .................................................................. 133 62. Параллельные алгоритмы поиска максимального и минимального значений с использованием потоков............................................................................. 133 63. Параллельные алгоритмы поиска максимального и минимального значений с использованием асинхронных функций .............................................. 133 64. Параллельный алгоритм сортировки ............................................................................. 133 65. Потокобезопасное журналирование в консоль ......................................................... 134 66. Система обслуживания клиентов .................................................................................... 134
Стр.9
Оглавление  9 Решения ...........................................................................................................................................134 61. Алгоритм параллельного преобразования .................................................................. 134 62. Параллельные алгоритмы поиска максимального и минимального значений с использованием потоков............................................................................. 136 63. Параллельные алгоритмы поиска максимального и минимального значений с использованием асинхронных функций .............................................. 138 64. Параллельный алгоритм сортировки ............................................................................. 140 65. Потокобезопасное журналирование в консоль ......................................................... 142 66. Система обслуживания клиентов .................................................................................... 143 Глава 8. Шаблоны проектирования ..................................................................148 67. Проверка пароля ..................................................................................................................... 148 68. Генерация случайных паролей ......................................................................................... 148 69. Генерация номеров социального страхования .......................................................... 148 70. Система одобрений ............................................................................................................... 149 71. Контейнер с наблюдателями ............................................................................................. 149 72. Вычисление стоимости заказа с учетом скидок ........................................................ 149 Решения ...........................................................................................................................................150 67. Проверка пароля ..................................................................................................................... 150 68. Генерация случайных паролей ......................................................................................... 154 69. Генерация номеров социального страхования .......................................................... 158 70. Система одобрений ............................................................................................................... 162 71. Контейнер с наблюдателями ............................................................................................. 166 72. Вычисление стоимости заказа с учетом скидок ........................................................ 171 Глава 9. Сериализация данных ..........................................................................177 Задачи .............................................................................................................................................. 177 73. Сериализация и десериализация данных в формате XML.................................... 177 74. Выборка данных из XML с помощью XPath ................................................................ 177 75. Сериализация данных в формат JSON ........................................................................... 178 76. Десериализация данных из формата JSON ................................................................. 178 77. Вывод списка фильмов в файл PDF ................................................................................ 178 78. Создание документа PDF из коллекции изображений ........................................... 179 Решения ...........................................................................................................................................179 73. Сериализация и десериализация данных в формате XML.................................... 179 74. Выборка данных из XML с помощью XPath ................................................................ 183 75. Сериализация данных в формат JSON ........................................................................... 185 76. Десериализация данных из формата JSON ................................................................. 187 77. Вывод списка фильмов в файл PDF ................................................................................ 189 78. Создание документа PDF из коллекции изображений ........................................... 193 Глава 10. Архивы, изображения и базы данных.............................................196 Задачи ..............................................................................................................................................196 79. Поиск файлов в архиве ZIP ................................................................................................ 196 80. Упаковка и извлечение файлов из архива ZIP ........................................................... 196 81. Упаковка и извлечение файлов из архива ZIP с защитой паролем .................. 196
Стр.10
10  Оглавление 82. Создание файла PNG с изображением национального флага ............................ 196 83. Создание изображения PNG с контрольным текстом ............................................. 197 84. Генератор штрихкодов EAN-13 ....................................................................................... 197 85. Чтение информации о фильмах из базы данных SQLite ....................................... 198 86. Добавление информации о фильмах в базу данных SQLite ................................ 198 87. Обработка изображений для фильмов в базе данных SQLite ............................. 198 Решения ...........................................................................................................................................199 79. Поиск файлов в архиве ZIP ................................................................................................ 199 80. Упаковка и извлечение файлов из архива ZIP ........................................................... 201 81. Упаковка и извлечение файлов из архива ZIP с защитой паролем .................. 204 82. Создание файла PNG с изображением национального флага ............................ 207 83. Создание изображения PNG с контрольным текстом ............................................. 208 84. Генератор штрихкодов EAN-13 ....................................................................................... 211 85. Чтение информации о фильмах из базы данных SQLite ....................................... 217 86. Добавление информации о фильмах в базу данных SQLite ................................ 223 87. Обработка изображений для фильмов в базе данных SQLite ............................. 227 Глава 11. Криптография ......................................................................................236 Задачи ..............................................................................................................................................236 88. Шифр Цезаря ........................................................................................................................... 236 89. Шифр Виженера ...................................................................................................................... 236 90. Кодирование и декодирование Base64 ........................................................................ 236 91. Проверка учетных данных пользователя ..................................................................... 236 92. Вычисление хеш-суммы файла ........................................................................................ 236 93. Шифрование и расшифровывание файлов ................................................................ 237 94. Подписывание файлов ......................................................................................................... 237 Решения ........................................................................................................................................... 237 88. Шифр Цезаря ........................................................................................................................... 237 89. Шифр Виженера ...................................................................................................................... 239 90. Кодирование и декодирование Base64 ........................................................................ 241 91. Проверка учетных данных пользователя ..................................................................... 246 92. Вычисление хеш-суммы файла ........................................................................................ 250 93. Шифрование и расшифровывание файлов ................................................................ 252 94. Подписывание файлов ......................................................................................................... 254 Глава 12. Сети и службы......................................................................................258 Задачи ..............................................................................................................................................258 95. Поиск IP-адреса хоста .......................................................................................................... 258 96. Клиент-серверная игра Fizz-Buzz .................................................................................... 258 97. Обменный курс биткойна .................................................................................................... 258 98. Получение почты по протоколу IMAP ............................................................................ 258 99. Перевод текста на любой язык ......................................................................................... 259 100. Определение лиц на изображениях ............................................................................ 259 Решения ...........................................................................................................................................259 95. Поиск IP-адреса хоста .......................................................................................................... 259 96. Клиент-серверная игра Fizz-Buzz .................................................................................... 261
Стр.11
Оглавление  11 97. Обменный курс биткойна .................................................................................................... 265 98. Получение почты по протоколу IMAP ............................................................................ 270 99. Перевод текста на любой язык ......................................................................................... 274 100. Определение лиц на изображениях ............................................................................ 279 Библиография ......................................................................................................291 Статьи ................................................................................................................................................291 Документация к библиотекам ................................................................................................293 Предметный указатель .......................................................................................295
Стр.12

Облако ключевых слов *


* - вычисляется автоматически
Периодика по подписке
Антиплагиат система Руконтекст