Practice C++: 160 Solved Exercises to Accelerate your Learning

Practice C++: 160 Solved Exercises to Accelerate your Learning

Practice C++: 160 Solved Exercises to Accelerate your Learning
Автор: Conceição Ruhan
Дата выхода: 2023
Издательство: Independent publishing
Количество страниц: 310
Размер файла: 12,2 МБ
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Часть VI. Работа с файлами, сериализация объектов и доступ к данным....19
Глава 20.Файловый ввод-вывод и сериализация объектов....20
Глава 21.Доступ к данным с помощью ADO.NET....61
Часть VII. Entity Framework Core....125
Глава 22.Введение в Entity Framework Core....126
Глава 23.Построение уровня доступа к данным с помощью Entity Framework Core....183
Часть VIII.Разработка клиентских приложений для Windows....265
Глава 24.Введение в Windows Presentation Foundation и XAML....266
Глава 25.Элементы управления, компоновки, события и привязка данных в WPF....302
Глава 26.Службы визуализации графики WPF....363
Глава 27.Ресурсы, анимация, стили и шаблоны WPF....399
Глава 28.Уведомления WPF, проверка достоверности, команды MVVM....439
Часть IX. ASP.NET Core....477
Глава 29.Введение в ASP.NET Core....478
Глава 30.Создание служб REST с помощью ASP.NET Core....530
Глава 31.Создание приложений MVC с помощью ASP.NET Core....555
Предметный указатель....627

Practice your C++ programming logic skills with this book!
The book presents 160 exercises and they are all solved.

The book is divided into many chapters according to programming topics:

  • Basic exercises
  • Mathematical formulas
  • Repetitive cycles
  • Arrays
  • Lines
  • Matrices
  • Recursive functions
  • Regular expressions
  • Sorting algorithms

Похожее:

Список отзывов:

  • В двух словах: Это сборник задач по программированию на C++ с готовыми решениями. Книга предлагает большой объём однотипных упражнений для отработки базовых конструкций языка — от «Hello World» до массивов, строк и простых алгоритмов. Однако качество представленных решений, оформление кода и методическая ценность вызывают серьёзные вопросы.

    О чём книга и для кого она?

    По замыслу автора, это практический тренажёр для начинающих, которые уже знакомы с основами и хотят «набить руку». Задачи разбиты по темам:

    1. Базовые упражнения (вывод, ввод имени, форматирование таблиц).
    2. Математические формулы (среднее, степень, корень, дискриминант, BMI, кинетическая энергия).
    3. Условные операторы (чёт/нечет, делимость, возрастные категории, налоги).
    4. Циклы (таблицы умножения, простые числа, сумма ряда, Фибоначчи).
    5. Массивы (обратный порядок, сумма, максимум, слияние, сдвиг нулей).
    6. Строки (конкатенация, замена символов, палиндромы, анаграммы).
    7. Матрицы (упоминаются, но в файле сами задачи не показаны, только заголовок).
    8. Рекурсия, регулярные выражения, алгоритмы сортировки – заявлены, но в предоставленном фрагменте отсутствуют.

    Всего в книге 160 упражнений. К каждому даётся полный код решения на C++ с #include <iostream> и main().

    Что понравилось (плюсы)

    1. Много задач. 160 упражнений – это действительно большой объём. Если решать по 5–10 в день, можно за пару недель получить приличную практику.
    2. Охват основных тем. От базового ввода-вывода до работы с массивами и строками – то, что нужно для первого курса или самообучения.
    3. Наличие ответов. Для самопроверки это удобно: не нужно искать решения в интернете.
    4. Некоторые полезные примеры: вычисление ряда Тейлора для e^x, sin(x), cos(x) (упражнения 81–85) – это уже ближе к вычислительной математике.
    5. Явное предупреждение о помощи ИИ. Автор честно говорит, что книга создана при участии AI, но отредактирована. Это лучше, чем скрывать.

    Что серьёзно разочаровало (минусы)

    1. Качество кода – крайне низкое.
    • Во многих решениях отсутствует #include <iomanip> при использовании std::setw (упражнение 9 – там нет этого include, хотя код его использует).
    • Используется using namespace std;? Нет, везде std::, но при этом синтаксис местами ломаный: например, в упражнении 18 std::cout << "The perimeter (circumference) of the circle with radius" << radius << "is:" << – строка обрывается, нет закрывающей скобки и точки с запятой.
    • В упражнении 85 используется int i=0; i<=END_POINT; i+=STEP_SIZE – так делать нельзя, потому что i целое, а STEP_SIZE дробное. Компилятор выдаст предупреждение, а логика цикла сломается.
    • В 66-м упражнении (возведение в степень) при отрицательном показателе используется result /= base в цикле, но result изначально 1.0. Работает, но странно.
    • Часто забывают обработать деление на ноль, выход за границы массива, некорректный ввод (std::cin.ignore() используется хаотично – то есть, то нет).
    1. Однотипность и примитивизм.
    2. Первые 5–6 задач – это вариации на тему «вывести Hello World в разном формате». Задача 7 – ввод имени, задача 8 – ввод трёх имён и трёх возрастов, задача 9 – то же с ростом, задача 10 – таблица, задача 11 – арифметика двух чисел… Много очень простых, почти одинаковых упражнений. Реальная польза от такого повторения сомнительна: лучше бы дали одну задачу, но с объяснением, как избежать повторяющегося кода.
    3. Ошибки в формулировках и коде.
    • В задаче 54 (високосный год) условие (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 – верное, но в коде используется year % 4 == 0 && year % 100 != 0 без скобок вокруг И, а затем ||. Приоритет операторов в C++ таков, что && выше ||, так что выражение эквивалентно (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 – на самом деле правильно, но новичок может запутаться.
    • В задаче 95 (k-й наибольший/наименьший) используется std::sort, но не подключён <algorithm>. В предоставленном коде #include<algorithm> есть? Нет, только упоминание в комментарии.
    • В задаче 97 (алгоритм Бойера–Мура для поиска большинства) переменная candidate инициализируется -1, но если массив состоит из отрицательных чисел, это сломается. Никакой проверки на случай пустого массива.
    • В задаче 100 (перенос нулей) используется std::vector, но код написан так, будто автор не до конца понимает разницу между массивом и вектором.
    1. Полное отсутствие объяснений.
    2. Книга – просто список задач и готовых ответов. Нет ни одного теоретического раздела, ни комментариев к решениям (кроме кратких inline-комментариев вида // Increment the counter). Не объясняется, почему выбран именно такой алгоритм, какие есть альтернативы, на что обратить внимание. Это сборник «решебника», а не учебник.
    3. Проблемы с вёрсткой и редактурой.
    • Многие строки кода обрываются на полуслове, переносы расставлены вручную и часто разрывают синтаксис (см. упражнение 108 – текст разорван между for (int i = 0; i < sentence.length(); i++) и телом цикла).
    • В упражнении 110 отсутствует закрывающая скобка тела main.
    • В некоторых местах вместо #include написано include (без решётки).
    • Нет единого стиля оформления (отступы прыгают, фигурные скобки то ставят на новой строке, то на той же).
    • В оглавлении заявлены «Регулярные выражения» и «Алгоритмы сортировки», но в файле их нет (возможно, в платной версии есть, но в предоставленном фрагменте – нет).
    1. Использование ИИ не пошло на пользу.
    2. Код выглядит как сгенерированный нейросетью средней руки: синтаксически в целом верный, но не идиоматичный, с нелогичными моментами (например, в задаче 85 зачем-то считают синус и косинус через ряд, но при этом используют устаревшие double итерации цикла). Человек-редактор, судя по всему, только вычистил явные ошибки, но не переработал архитектуру решений.

    Итог: нужна ли вам эта книга?

    Если вы абсолютный новичок, который хочет просто набрать много строчек кода, не вникая в качество – возможно, да. Но вы рискуете нахвататься плохих привычек.

    Если вы студент, которому нужны задачи для семинара – вы можете взять отсюда идеи, но решения лучше переписывать самостоятельно.

    Если вы преподаватель – книгу можно использовать как банк формулировок задач, но не как эталон решений.

    Если вы опытный программист, переходящий на C++ – книга вам не нужна, возьмите лучше «C++ Primer» или «Programming: Principles and Practice using C++» (Страуструп).

    Резюме: Книга – сырой, плохо отредактированный сборник задач с посредственными решениями. Её основная ценность – количество упражнений (160 штук), но качество оставляет желать лучшего. Перед покупкой настоятельно рекомендую посмотреть несколько случайных страниц – если опечатки и ломаный код вас не смущают, может, она и подойдёт. В противном случае, лучше поискать бесплатные онлайн-сборники задач по C++ (например, на Codewars, LeetCode или в отечественных методичках).

    Оценка: 4 из 10.

    (Баллы сняты за низкое качество кода, отсутствие объяснений, плохую редактуру и сомнительную методическую ценность.)В двух словах: Это сборник задач по программированию на C++ с готовыми решениями. Книга предлагает большой объём однотипных упражнений для отработки базовых конструкций языка — от «Hello World» до массивов, строк и простых алгоритмов. Однако качество представленных решений, оформление кода и методическая ценность вызывают серьёзные вопросы.