Основы программирования на C++ с нуля

Этот курс предназначен для абсолютных новичков и поможет заложить крепкий фундамент в программировании на C++. Вы пройдете путь от написания первой программы до уверенного использования функций и массивов, научившись самостоятельно создавать рабочий код.

1. Структура программы и базовый синтаксис

Программирование на C++ напоминает изучение нового иностранного языка, где вашим собеседником выступает компьютер. Этот язык отличается строгими правилами, невероятной скоростью работы и огромными возможностями. Любая программа начинается с фундамента — понимания того, как устроен код, по каким правилам он пишется и как программа общается с внешним миром.

Компьютер не умеет догадываться. Ему нужны абсолютно точные, последовательные и однозначные инструкции. Именно поэтому синтаксис C++ не прощает пропущенных символов или опечаток.

> C++ защищает вас от того, чтобы выстрелить себе в ногу, но если вы это сделаете, то отстрелите ногу целиком. > > Бьёрн Страуструп, создатель C++

Эта знаменитая фраза создателя языка подчеркивает важную мысль: C++ дает программисту полный контроль над системой, но требует дисциплины и понимания основ.

Анатомия первой программы

Традиционно изучение любого языка программирования начинается с программы, которая просто выводит на экран приветствие. На C++ этот код выглядит следующим образом:

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

  • #include <iostream> — это директива препроцессора. Представьте, что вы собираетесь готовить сложное блюдо. Прежде чем начать, вы достаете с полки кулинарную книгу. В C++ такие «книги» называются библиотеками. Команда include (включить) говорит компьютеру: «Подключи библиотеку iostream (Input/Output Stream — поток ввода/вывода), потому что мы собираемся выводить текст на экран».
  • int main() — это главная функция. Любая программа на C++ похожа на огромное офисное здание с множеством дверей. Операционной системе нужно знать, в какую дверь входить, чтобы запустить программу. Функция main — это всегда главный вход. Выполнение кода всегда начинается отсюда.
  • { и }фигурные скобки обозначают границы. Открывающая скобка показывает, где начинается набор инструкций для главной функции, а закрывающая — где он заканчивается. Это как обложки книги, внутри которых находится сама история.
  • std::cout << "Привет, мир!"; — это инструкция вывода. cout (Character Output) отвечает за отправку текста на экран. Символы << работают как стрелки, показывающие направление: мы берем текст "Привет, мир!" и отправляем его в cout. Приставка std:: означает стандартное пространство имен (Standard Namespace). Это похоже на фамилию: в мире может быть много функций с именем cout, но нам нужна именно та, что принадлежит стандартной «семье» C++.
  • return 0; — это код завершения. Когда программа заканчивает свою работу, она должна отчитаться перед операционной системой. Возврат нуля традиционно означает: «Всё прошло успешно, ошибок нет».
  • !Схема базовой структуры программы на C++: от подключения библиотек до завершения работы главной функции

    Базовые правила синтаксиса

    Чтобы код успешно превратился в работающую программу, необходимо соблюдать несколько строгих правил оформления.

    Точка с запятой

    В русском языке мы ставим точку в конце каждого предложения. В C++ роль такой точки играет символ ; (точка с запятой). Он сообщает компилятору (программе-переводчику, которая превращает ваш код в машинные нули и единицы), что текущая инструкция завершена.

    Если вы напишете std::cout << "Привет" без точки с запятой, компилятор выдаст ошибку и откажется собирать программу, так как не поймет, где заканчивается эта команда и начинается следующая.

    Чувствительность к регистру

    C++ строго различает заглавные и строчные буквы. Для него слова Apple, apple и APPLE — это три совершенно разных понятия. Если главная функция называется main, вы не можете написать Main или MAIN.

    Комментарии

    Часто программистам нужно оставить заметки в коде для себя или своих коллег. Эти заметки должен игнорировать компьютер. Для этого используются комментарии.

    * Однострочный комментарий начинается с двух слешей //. Всё, что написано после них до конца строки, компьютер не заметит. Многострочный комментарий начинается с / и заканчивается на */. Он удобен для длинных описаний.

    Переменные и типы данных

    Программы редко просто выводят заранее заготовленный текст. Обычно они работают с данными: числами, символами, логическими значениями. Для хранения этих данных используются переменные.

    Переменную можно представить как коробку на складе. У этой коробки есть три важные характеристики:

  • Имя (ярлык на коробке), чтобы мы могли ее найти.
  • Тип данных (форма и материал коробки), который определяет, что именно в нее можно положить.
  • Значение (то, что лежит внутри).
  • Вы не можете налить воду в картонную коробку для книг. Точно так же в C++ вы не можете положить текст в переменную, предназначенную для целых чисел.

    Основные типы данных

    | Тип данных | Описание | Пример значения | Зачем нужен | | :--- | :--- | :--- | :--- | | int | Целое число (integer) | , , | Подсчет количества предметов, возраст, годы. | | double | Число с дробной частью | , | Финансовые расчеты, точные измерения (вес, рост). | | char | Одиночный символ (character) | 'A', '7', '?' | Хранение одной буквы или знака препинания. Одинарные кавычки обязательны. | | bool | Логическое значение (boolean) | true (истина), false (ложь) | Переключатели, проверка условий (например, включен ли свет). | | std::string | Строка текста | "Привет", "Иван" | Хранение имен, паролей, длинных сообщений. Требует #include <string>. |

    Создание переменных

    Процесс создания переменной называется объявлением. Если мы сразу кладем в нее значение, это называется инициализацией.

    Ввод данных от пользователя

    Программа становится по-настоящему полезной, когда она может взаимодействовать с пользователем. Мы уже знаем, что std::cout выводит данные. Для получения данных с клавиатуры используется команда std::cin (Character Input).

    Обратите внимание на направление стрелок. Если при выводе стрелки указывают на экран (cout <<), то при вводе они указывают на переменную (cin >>), в которую нужно положить данные.

    Рассмотрим полноценную программу, которая спрашивает год рождения пользователя и рассчитывает его примерный возраст. Для математических вычислений в C++ используются стандартные операторы: + (сложение), - (вычитание), * (умножение) и / (деление).

    В этом примере мы использовали символ \n в самом конце строки вывода. Это специальный управляющий символ, который работает как нажатие клавиши Enter — он переносит курсор на новую строку, чтобы следующий текст не слипался с текущим.

    Понимание структуры программы, умение создавать переменные нужного типа и организовывать диалог с пользователем через ввод и вывод — это тот самый фундамент, на котором строится всё дальнейшее изучение C++. Освоив эти концепции, вы уже можете писать простые калькуляторы, анкеты и текстовые конвертеры.