⚙️ C++

Введение в C++: история, особенности, применение в C++

Что это и зачем?

Представь, что ты даёшь роботу команды. Если сказать «сделай что-нибудь», он растеряется. А если сказать «поверни налево, пройди 5 шагов, подними руку» — он всё выполнит чётко. C++ — это такой язык, на котором ты пишешь очень точные инструкции для компьютера. Он как конструктор LEGO: ты сам собираешь каждую детальку, поэтому получаются быстрые и мощные программы.

Зачем его учить? Во-первых, на C++ работают игры (например, Minecraft), браузеры, космические аппараты. Во-вторых, он учит думать как программист: ты будешь понимать, как компьютер хранит числа, как работает память. Это как знать не только, как водить машину, но и что у неё под капотом.

Даже если ты новичок, C++ не такой страшный, как кажется. Мы начнём с самых простых вещей — как написать «Привет, мир!» и посчитать конфеты.

Синтаксис и примеры кода

Синтаксис — это правила языка, как грамматика в русском. В C++ каждая команда заканчивается точкой с запятой ;, а блоки кода оборачиваются в фигурные скобки {}. Давай посмотрим на живые примеры.

Пример 1: Привет, мир!

#include <iostream>  // Подключаем библиотеку для ввода/вывода
using namespace std;  // Чтобы не писать std:: перед cout

int main() {          // Главная функция, с неё начинается программа
    cout << "Привет, мир!" << endl;  // Выводим текст на экран
    return 0;         // Говорим, что программа завершилась успешно
}

Как это работает: #include — как будто мы берём готовый набор инструментов. int main() — это входная дверь программы. Внутри {} пишем команды. cout — это «печатная машинка», которая выводит текст. endl — переход на новую строку.

Пример 2: Считаем конфеты

#include <iostream>
using namespace std;

int main() {
    int candies = 10;           // Целое число — количество конфет
    int friends = 3;            // Сколько друзей
    int each = candies / friends;  // Делим конфеты поровну (целочисленно)
    
    cout << "Каждому достанется " << each << " конфет" << endl;
    return 0;
}

Объяснение: int — это тип данных для целых чисел (как 10, 3). / — деление. Но тут есть хитрость: если делить 10 на 3, получится 3, а не 3.33, потому что мы работаем с целыми числами. Остаток (1 конфета) потеряется — об этом нужно помнить!

Пример 3: Угадай число

#include <iostream>
using namespace std;

int main() {
    int secret = 7;  // Загаданное число
    int guess;       // Переменная для ответа пользователя
    
    cout << "Угадай число от 1 до 10: ";
    cin >> guess;   // Считываем число, которое ввёл пользователь
    
    if (guess == secret) {            // Если угадал
        cout << "Ты победил!" << endl;
    } else {                          // Иначе
        cout << "Не угадал. Было " << secret << endl;
    }
    return 0;
}

Новые штуки: cin — это «микрофон», который слушает, что вводит пользователь. if — проверка условия. == — сравнение (не путай с =, который присваивает значение!). else — иначе.

Пример 4: Цикл — повторяем 5 раз

#include <iostream>
using namespace std;

int main() {
    for (int i = 1; i <= 5; i++) {  // Начало: i=1; условие: пока i<=5; шаг: i+1
        cout << "Строка номер " << i << endl;
    }
    return 0;
}

Как понять: for — это как «повтори 5 раз». int i = 1 — заводим счётчик. i <= 5 — пока счётчик не станет больше 5, крутимся. i++ — увеличиваем счётчик на 1 после каждого шага. В итоге на экране будет 5 строк.

Пример 5: Функция — свой помощник

#include <iostream>
using namespace std;

// Создаём функцию, которая приветствует по имени
void greet(string name) {  // void — функция ничего не возвращает
    cout << "Привет, " << name << "!" << endl;
}

int main() {
    greet("Аня");  // Вызываем функцию с именем "Аня"
    greet("Петя");
    return 0;
}

Идея: Функции — это как рецепты. Ты один раз написал рецепт greet, а потом используешь его много раз. string — тип для текста. Внутри скобок (string name) — ингредиенты, которые передаём в функцию.

Сравнение с Python

Python — это как разговорный язык: «Эй, компьютер, сделай это». C++ — как техническая инструкция: «Возьми регистр AX, запиши туда 5, выполни сложение». Сравним на примерах.

Задача C++ Python
Вывести текст cout << "Привет"; print("Привет")
Ввести число cin >> x; x = int(input())
Условие if (x > 0) { ... } if x > 0: ...
Цикл 5 раз for (int i=0; i<5; i++) for i in range(5):
Функция void f(int a) { ... } def f(a): ...

Главные отличия:

  • Точки с запятой: В C++ они обязательны, в Python — нет.
  • Фигурные скобки: В C++ блоки кода в {}, в Python — отступы (пробелы).
  • Типы данных: В C++ нужно писать int, string и т.д. Python догадывается сам.
  • Скорость: C++ быстрее, потому что он компилируется (переводится в машинный код сразу). Python — интерпретируемый (читается строчка за строчкой).

Для новичка Python проще: меньше букв, меньше ошибок. Но C++ даёт больше контроля. Если Python — это велосипед, то C++ — мотоцикл с ручной коробкой передач.

Типичные ошибки новичков

Ошибки — это нормально. Вот что чаще всего ломает мозг начинающим:

  1. Забыл точку с запятой ;
    Компьютер обижается: «Я не понял, где конец команды!» Ошибка: expected ';'.
  2. Путаешь = и ==
    = — это «присвоить» (положить значение). == — «сравнить» (проверить, равны ли).
    Ошибка: if (x = 5) — это не проверка, а присваивание! Всегда будет true.
  3. Забыл объявить переменную
    В C++ нельзя просто написать x = 10;. Сначала нужно: int x; — «я хочу создать ячейку для целого числа».
  4. Выход за границы массива
    Если массив из 5 элементов (индексы 0..4), а ты обращаешься к индексу 5 — программа может упасть или испортить данные.
  5. Бесконечный цикл
    while (true) { } — если забыть выход, программа будет крутиться вечно. Компьютер зависнет.
  6. Путаешь типы
    Нельзя записать текст "Привет" в переменную типа int. Компилятор скажет: «Ты с ума сошёл?»

Совет: Читай ошибки компилятора. Они на английском, но там написано, в какой строке проблема. Например: error: expected ';' before 'cout' — значит, забыл точку с запятой перед cout.

Итог

Мы прошли путь от «Привет, мир!» до функций и циклов. C++ — это мощный инструмент, который требует аккуратности, но даёт полный контроль над компьютером. Ты узнал:

  • Как писать простые программы с вводом и выводом.
  • Как работают условия и циклы.
  • Чем C++ отличается от Python (да, в Python меньше писанины, но C++ быстрее).
  • Какие ошибки подстерега