Опубликовано

Новинка: “C++. 20 уроков для начинающих”

C++. 20 уроков для начинающих

Даны основы программирования на С++ по стандартам С++17 и С++20, базовые структуры данных и методы работы с ними. С позиций разработки ПО рассмотрено программирование функций: обычных и рекурсивных, constexpr-функций, лямбда-выраженй и лямбда-функций, перегрузка и шаблоны функций. Раскрыты более сложные вопросы С++: указатели и динамическая память, структуры и классы, конструкторы и деструкторы, методы и перегрузка операций, работа с текстовыми файлами, устройство чисел и битовые операции.

Рассмотрены важные для начинающих темы: интегрированная среда Code::Blocks, русификация ввода и вывода, ошибки при написании кода, неопределенное поведение, тестирование и написание тестового кода. В книге 150 примеров программ и более 90 заданий для самостоятельной работы. Материал проверен на практике при обучении студентов и школьников и подготовке их к экзаменам.

Электронное приложение-архив на сайте издательства содержит исходные коды всех примеров.

Для начинающих программистов

 

Лаптев Валерий Викторович

Лаптев Валерий Викторович, кандидат технических наук, профессиональный программист и преподаватель, работает с компьютерами с 1971 года, программирует на С++ с 1989 года, преподает в вузе с 1993 года. За это время разработал большое количество программ на многих языках программирования. В вузе читал разнообразные курсы по программированию на С++, алгоритмам и структурам данных, системному программированию и операционным системам. Обучил и воспитал сотни учеников. Написал ряд книг по С++ для студентов вузов и колледжей. Его статьи публиковались в журналах “Программист” и “RSDN Magazine”, на портале программистов rsdn.org.

Книгу “C++. 20 уроков для начинающих” можно купить в нашем интенет-магазине.

Предисловие. 11

Что вы найдете в книге. 12

Используемое ПО.. 13

Благодарности. 14

Как связаться с автором. 14

ЧАСТЬ I. Знакомство с C++. 15

Урок 1. Начало. 16

Процесс создания программы. 17

Программы-инструменты. 19

Редактор кода. 19

Компилятор и линкер. 19

Консоль или терминал. 20

Интегрированная среда. 22

Онлайн-компиляторы. 23

Задачи и упражнения. 24

Урок 2. Здравствуй, С++. 25

Первая программа. 25

Директива #include. 26

Using-директива. 26

Функция main. 27

Заголовок функции. 27

Тело функции. 28

Оператор вывода. 28

Оператор return. 29

Пишем комментарии. 29

Копнем глубже. 31

Формат кода. 31

Директивы. 32

Алфавит и зарезервированные слова. 32

Модифицируем первую программу. 33

Специальные символы. 34

Необрабатываемые строковые литералы. 35

Снова рефакторинг. 36

Русские буквы в консоли. 37

Вывод по-русски в системе Windows 38

Немного арифметики. 38

Задачи и упражнения. 40

Урок 3. Погружаемся в С++. 42

Ввод данных. 42

Работаем со строками. 45

Снова таблица умножения. 49

Вычисления. 50

Вещественные числа. 50

Как писать вещественные константы. 51

Тестируем программу. 52

Вывод данных. 55

Манипуляторы. 55

Снова вычисляем. 56

Задачи и упражнения. 58

Урок 4. Встроенные типы данных. 60

Арифметические типы данных. 60

Вещественные типы. 60

Целые типы. 63

Операции, выражения и присваивания. 65

Арифметические операции. 66

Присваивание. 67

Инкремент и декремент. 68

Преобразование типов. 69

Объявление переменных и констант. 71

Объявления auto. 73

Синонимы стандартных целых типов. 73

Объявление синонимов. 74

Порешаем задачи. 75

Задача 1. Математика должна быть экономной. 75

Задача 2. Стоимость учебников. 76

Задача 3. Число-палиндром. 77

Задачи и упражнения. 78

Урок 5. Выбор есть всегда. 80

Логический тип. 80

Логические операции и выражения. 81

Проверяем входные данные. 83

Условная операция. 83

Операция запятая. 84

Решаем задачу. 85

Условный оператор. 85

Решаем задачи. 88

Задача 1. Решить уравнение ax + b = 0. 88

Задача 2. Високосный год. 89

Булевские, целые и условия. 91

Ныряем глубже. 92

Задача 3. Кирпич и отверстие. 92

Никогда так не делайте. 93

Снова про ввод данных. 94

Задачи и упражнения. 96

Урок 6. Повторение — мать учения. 97

Повторяем работу. 97

Операторы цикла. 99

Оператор while. 99

Опять таблица умножения. 101

Оператор do while. 103

Оператор for со счетчиком. 104

Решаем задачи. 105

Полная таблица умножения. 105

Возведение в степень. 106

Вариации на тему циклов. 108

Операторная область видимости. 110

Операторы break и continue. 111

Задачи и упражнения. 112

Урок 7. Функции. 114

Объявление и вызов функции. 115

Как написать функцию.. 116

Определение функции. 118

Осваиваем функции. 119

Математические функции с числом p. 120

Функция-предикат. 123

Список параметров и вызов функции. 124

Передача параметров по значению.. 125

Передача параметров по ссылке. 126

Константные параметры функций. 127

Область видимости и время жизни. 128

Сокрытие имен. 129

Статические переменные. 131

Автоматизация тестирования функций. 133

Стандартные средства тестирования. 134

Задачи и упражнения. 135

Урок 8. С пользой для дела. 137

Тренажер по таблице умножения. 137

Случайные числа. 138

Инициализация датчика случайных чисел. 138

Получение случайных чисел. 142

Разработка программы. 143

Оператор-переключатель. 146

Система обучения арифметике. 148

Пишем калькулятор. 149

Пишем еще один тренажер. 150

Задачи и упражнения. 152

ЧАСТЬ II. Работа с данными в C++. 153

Урок 9. Массивы.. 154

Зачем нужны массивы. 154

Встроенные массивы. 156

Объявление массивов. 156

Синонимы типов для массивов. 158

Доступ к элементам. 158

Размер массива. 159

Операции с массивами. 159

Новые массивы. 161

Размер и тип массива. 161

Новый цикл for 162

Массив array. 163

Объявление и инициализация. 163

Операции с массивом array. 164

Объекты типа initalizer_list 165

Решаем задачи. 165

Поиск минимума. 166

Подсчет максимумов. 167

Поиск заданного числа. 168

Задачи и упражнения. 170

Урок 10. Создаем новые типы.. 171

Структуры (классы) 171

Зачем нужны структуры (классы) 171

Определение структуры (класса) 172

Объявление и инициализация объектов. 174

Операции с объектами структурного типа. 176

Размеры структур. 177

Структуры, массивы, объекты и функции. 178

Массивы и структуры. 179

Структуры, объекты и функции. 180

Классы и структуры. 182

Конструкторы. 184

Методы. 186

Задачи и упражнения. 187

Урок 11. Знакомство с указателями. 188

Что такое указатели. 188

Две самые важные операции. 190

Объявление указателей. 191

Типизированные указатели. 192

Бестиповые указатели и преобразование типов. 193

nullptr 194

Константность. 195

Размеры указателей. 195

Указатели и ссылки. 196

Встроенные массивы и указатели. 196

Операции с указателями. 197

Указатели, итераторы и контейнеры. 200

Функция distance. 203

Итераторы ввода/вывода. 204

Задачи и упражнения. 205

Урок 12. Массивы и функции. 206

Массивы и функции. 206

Передача массива по ссылке. 207

Перегрузка функций. 209

Про массив array. 211

Шаблоны функций. 213

Стандартные алгоритмы. 216

Заполнение массива. 216

Заполнение случайными числами. 218

Поиск, подсчет, замена. 219

Числовые алгоритмы. 220

Задачи и упражнения. 220

Урок 13. Строки, строки, строки. 222

Строки как массивы символов. 222

Итераторы для строки. 223

Стандартные средства. 224

Строка — массив переменного размера. 224

Встроенные символьные массивы. 225

Размер встроенного символьного массива. 226

Обработка символьных массивов. 227

Универсальный параметр string_view. 229

Размеры строк STL. 230

Числа — прописью.. 231

Тестирование программы. 234

Длинные-длинные числа. 235

Символы — это числа. 235

Функция сложения. 236

Задачи и упражнения. 237

Урок 14. Снова о функциях. 238

Рекурсивные функции. 238

Осваиваем рекурсию.. 241

Формы рекурсивных функций. 243

Выполнение рекурсивных функций. 244

Рекурсивные функции и массивы. 245

Функции времени компиляции. 250

Задачи и упражнения. 253

Урок 15. Печальная действительность. 254

Проблемы с целыми числами. 254

На ноль делить нельзя. 257

Вещественные числа тоже не подарок. 258

0.1 + 0.2 != 0.3. 259

«Страшный зверь» по имени UB. 261

Как не наступать на «грабли». 263

Исключения. 263

Генерация исключений. 263

Перехват и обработка исключений. 266

Стандартные исключения. 268

Обработка «плавающих граблей». 269

Функции isnan, isinf, isfinite. 270

Задачи и упражнения. 270

ЧАСТЬ III. Вглубь C++. 271

Урок 16. Как все устроено. 272

Числа, числа и числа. 272

Числа как многочлены. 274

Перевод из десятичной в другую систему. 275

Перевод в десятичную систему. 277

Стандартные средства. 278

Перевод дробных чисел. 279

Битовое устройство беззнаковых целых. 281

Битовые операции. 282

Как писать двоичные литералы. 283

Исключающее ИЛИ.. 284

Сдвиги. 285

Битовое устройство целых со знаком. 286

Сдвиг вправо знакового целого числа. 288

Дополнительный код. 288

Задачи и упражнения. 289

Урок 17. Опять функции. 290

Параметры по умолчанию.. 290

Функции как параметры. 291

Функциональные объекты. 293

Указатель на функцию.. 293

Лямбды. 294

Лямбда-функции. 296

Захват. 298

Перегрузка операций. 299

Задачи и упражнения. 300

Урок 18. Снова указатели. 301

Память и объекты. 301

Динамическая память для встроенных типов. 302

Динамическая память для реализованных типов. 303

Деструктор. 304

Динамические массивы. 305

Размеры массивов. 307

Стандартный динамический массив vector 309

Объявление и инициализация вектора. 309

Размеры векторов. 310

Операции с вектором. 311

Снова длинные числа. 312

Многомерные массивы. 313

Динамические многомерные массивы. 316

Задачи и упражнения. 317

Урок 19. Учимся писать и читать. 318

Потоки. 318

Стандартные потоки. 319

Ввод встроенных типов. 319

Ввод строк с пробелами. 321

Пишем новый калькулятор. 322

Строковые потоки. 323

Файлы. 325

Файлы и потоки. 326

Читаем и пишем. 326

ЕГЭ и файлы. 329

Задачи и упражнения. 331

Урок 20. Большие программы.. 332

Проект «Арифметика». 333

Разделение на модули. 333

Вывод инструкции. 335

Первая сборка. 336

Межмодульное взаимодействие. 336

Связывание. 337

Пространства имен. 339

Добавим тренажеры. 339

Препроцессор и модули. 344

Задачи и упражнения. 345

Подведение итогов. 346

Приложения. 347

Приложение 1. Список литературы.. 348

Приложение 2. Перечень ресурсов Интернета. 349

Приложение 3. Установка Code::Blocks 350

Загрузка установщика в Windows 350

Установка Code::Blocks в Windows 352

Установка Code::Blocks в «Альт Образование». 355

Установка Code::Blocks в МОС. 355

Приложение 4. Интегрированная среда Code::Blocks 356

Запуск IDE и выход. 356

Выключение ненужных панелей инструментов. 357

Создание и сохранение исходного кода. 358

Создание файла. 358

Создание проекта. 360

Установка режимов компиляции. 362

Компиляция и сборка. 363

Сообщения об ошибках. 363

Выполнение программы. 364

Предметный указатель. 365

Добавить комментарий