✦ Интерактивный курс

Учи C++
с нуля

Полный путеводитель по C++ — от первой программы до написания калькулятора. Никаких знаний не нужно.

▶ Начать обучение ⌨ Практика
12
тем
40+
примеров
1
проект

Быстрый и мощный язык

C++ — один из самых популярных языков в мире. Он лежит в основе игр, операционных систем и высоконагруженных приложений.

01
Что такое C++?
История и применение
▶

C++ — компилируемый язык программирования общего назначения, созданный Бьёрном Страуструпом в 1983 году как расширение языка C. Он даёт программисту прямой контроль над памятью и железом — поэтому работает невероятно быстро.

На C++ написаны: движок Unreal Engine, Chrome, большая часть Windows, торговые системы бирж, антивирусы, базы данных. Если что-то должно работать быстро — скорее всего там C++.

💡
В отличие от JavaScript или Python, C++ — компилируемый язык. Это значит, что код сначала превращается компилятором в машинные инструкции, и только потом запускается. Поэтому он такой быстрый.
Игры
Unreal Engine, id Tech, игровая физика
ОС и драйверы
Windows, части Linux, macOS
Браузеры
Chrome, Firefox, Safari
Финансы
Биржевые системы, HFT-трейдинг
02
Первая программа
Hello, World!
▶

Каждая программа на C++ начинается с функции main(). Именно с неё стартует выполнение. Чтобы выводить текст, нужно подключить библиотеку iostream и использовать std::cout.

hello.cpp
#include <iostream> using namespace std; int main() { cout << "Hello, World!" << endl; return 0; }
Вывод программы
Hello, World!
✓
#include <iostream> подключает библиотеку ввода-вывода. using namespace std; позволяет писать cout вместо std::cout. return 0; говорит системе: "программа завершилась успешно".

Хранение данных

В C++ у каждой переменной есть строгий тип — это делает язык быстрым и надёжным.

03
Основные типы данных
int, double, string, bool, char
▶

В отличие от JavaScript, в C++ нужно явно указывать тип переменной. Компилятор строго проверяет — нельзя положить строку в числовую переменную без явного преобразования.

типы данных
#include <iostream> #include <string> using namespace std; int age = 21; double price = 9.99; string name = "Макс"; bool active = true; char letter = 'A'; cout << name << " " << age << endl;
Вывод
Макс 21
int
Целое число: -2147483648..2147483647
double
Дробное: 3.14, -0.5, 1e10
string
Строка текста в двойных кавычках
bool
true или false (1 или 0)
char
Один символ в одинарных кавычках
float
Дробное, менее точное чем double
04
Арифметика
Операторы +, -, *, /, %
▶

C++ поддерживает стандартные математические операции. Важный момент: деление двух int даёт целое число — дробная часть отбрасывается. Чтобы получить дробный результат, используй double.

арифметика
int a = 10, b = 3; cout << a + b << endl; cout << a - b << endl; cout << a * b << endl; cout << a / b << endl; cout << a % b << endl; double res = (double)a / b; cout << res << endl;
Вывод
13
7
30
3
1
3.33333
⚠
Деление на ноль в C++ — неопределённое поведение. Программа может упасть или выдать непредсказуемый результат. Всегда проверяй делитель!

cout и cin

Взаимодействие с пользователем — вывод текста и чтение данных с клавиатуры.

05
cout — вывод в консоль
Текст, числа, переносы строк
▶

cout (character output) — стандартный поток вывода. Оператор << "отправляет" данные в консоль. Можно объединять несколько значений через <<. endl или "\n" — перенос строки.

cout
string name = "Макс"; int age = 21; cout << "Привет, " << name << "!" << endl; cout << "Возраст: " << age << endl; cout << "Строка 1\nСтрока 2\n";
Вывод
Привет, Макс!
Возраст: 21
Строка 1
Строка 2
06
cin — ввод с клавиатуры
Читаем данные от пользователя
▶

cin (character input) читает данные, введённые пользователем. Оператор >> помещает значение в переменную. Тип переменной определяет, что именно читается: число, строка и т.д.

cin
int a, b; cout << "Введи два числа: "; cin >> a >> b; cout << "Сумма: " << a + b << endl; string name; cout << "Имя: "; cin >> name; cout << "Привет, " << name << "!";
Сессия
Введи два числа:
5 7
Сумма: 12
Имя:
Макс
Привет, Макс!

Принятие решений

Условные операторы позволяют программе выбирать, какой код выполнять в зависимости от данных.

07
if / else if / else
Ветвление программы
▶

Синтаксис условий в C++ почти идентичен JavaScript. Выражение в скобках проверяется: если true — выполняется первый блок. else if добавляет дополнительные проверки. else — блок "иначе".

if / else
int score = 75; if (score >= 90) { cout << "Отлично!"; } else if (score >= 70) { cout << "Хорошо"; } else if (score >= 50) { cout << "Удовлетворительно"; } else { cout << "Не сдано"; }
Вывод (score=75)
Хорошо
==
Равно (не путай с =)
!=
Не равно
>= <=
Больше/меньше или равно
&& ||
И (and) / ИЛИ (or)
08
switch
Выбор из нескольких вариантов
▶

switch — удобная альтернатива цепочке if/else if, когда нужно проверить одну переменную на несколько конкретных значений. Каждый вариант — case, обязательно с break. default — если ничего не подошло.

switch
char op = '+'; switch (op) { case '+': cout << "Сложение"; break; case '-': cout << "Вычитание"; break; case '*': cout << "Умножение"; break; default: cout << "Неизвестно"; }
Вывод (op='+')
Сложение
⚠
Не забывай break в конце каждого case! Без него программа "провалится" в следующий блок и выполнит его тоже — это частая ошибка новичков.

Повторение действий

Циклы выполняют блок кода многократно — пока выполняется условие или заданное число раз.

09
Цикл for
Заданное количество итераций
▶

Цикл for — самый популярный. В скобках три части: инициализация переменной-счётчика, условие продолжения, изменение счётчика. Идеален, когда заранее знаешь количество повторений.

for loop
for (int i = 1; i <= 5; i++) { cout << i << " "; } int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; } cout << sum;
Вывод
1 2 3 4 5
5050
10
Цикл while
Пока условие истинно
▶

while выполняет блок кода пока условие истинно. Используется, когда количество итераций заранее неизвестно — например, при работе с пользовательским вводом.

while loop
int n; cout << "Введи число > 0: "; cin >> n; while (n <= 0) { cout << "Попробуй снова: "; cin >> n; } cout << "Получено: " << n;
Сессия
Введи число > 0:
-5
Попробуй снова:
3
Получено: 3

Переиспользуемый код

Функции позволяют разбить программу на логические блоки — каждый делает свою задачу.

11
Объявление функций
Тип возврата, параметры, return
▶

Функция в C++ объявляется с указанием типа возвращаемого значения. Если функция ничего не возвращает — пишем void. Параметры тоже типизированы. Функцию нужно объявить до её использования.

функции
int add(int a, int b) { return a + b; } void greet(string name) { cout << "Привет, " << name << "!"; } int main() { greet("Макс"); cout << add(3, 4); }
Вывод
Привет, Макс!
7
💡
Хороший стиль — разбивать калькулятор на функции: отдельная функция для сложения, вычитания, умножения и деления. Это делает код чище и проще для понимания.
12
Полный пример: калькулятор
Всё вместе: функции + switch + cin/cout
▶

Объединим все знания: читаем два числа и знак операции, используем switch для выбора действия, функции для вычисления. Это именно то, что тебе нужно написать в практике!

calculator.cpp — структура
#include <iostream> using namespace std; double add(double a, double b) { return a+b; } double sub(double a, double b) { return a-b; } double mul(double a, double b) { return a*b; } int main() { double a, b; char op; cin >> a >> op >> b; switch(op) { case '+': cout << add(a,b); break; case '-': cout << sub(a,b); break; case '*': cout << mul(a,b); break; } }
Пример
5 + 3
8
10 * 4
40
9 / 2
4.5

Напиши калькулятор

Применяй всё, что изучил. Симулятор выполняет код прямо в браузере — никаких компиляторов не нужно!

📦
Подключить iostream
📥
Читать два числа
🔢
Читать знак операции
⚙️
switch с +, -, *, /
🛡️
Проверка деления на 0
Редактор кода
Консоль
Нажми ▶ Запустить, чтобы выполнить код
Прогресс задания 0 / 5
✓
Подключена библиотека <iostream>
✓
Объявлены переменные для двух чисел и знака операции
✓
Используется cin для ввода данных
✓
Используется switch или if/else для четырёх операций (+, -, *, /)
✓
Есть проверка деления на ноль
🎊
C++ освоен!

Невероятно! Ты прошёл путь от "Hello, World!" до написания настоящего калькулятора на C++. Это один из сложнейших языков для старта — и ты справился.

Следующие шаги: массивы и векторы, указатели, классы и ООП, STL. C++ — огромный язык, ты только начал его исследовать!

💜
C++ Developer
Калькулятор написан · CPP-TRAIN

5 практических заданий

Нарастающая сложность. Напиши код → ▶ Запустить → ✓ Проверить.

Выполнено0 / 5
1
Легко
Чётное или нечётное
cin → число → «Чётное»/«Нечётное» через %.
Пример
Ввод 1
8
Вывод 1
Even
Ввод 2
7
Вывод 2
Odd
C++
Вывод
Нажми ▶ Запустить...
2
Легко
Таблица умножения
Считай N, выведи N×1..10 циклом for.
Пример
Ввод 1
3
Вывод 1
3 x 1 = 3 ... 3 x 10 = 30
C++
Вывод
Нажми ▶ Запустить...
3
Средне
Угадай число
Секретное = 42. Цикл while: «Больше»/«Меньше»/«Угадал!» + попытки.
Пример
Ввод 1
30 50 42
Вывод 1
More Less Guessed in 3 attempts
C++
Вывод
Нажми ▶ Запустить...
4
Средне
Сортировка трёх чисел
Три числа → порядок возрастания без массивов (только if/else).
Пример
Ввод 1
3 1 2
Вывод 1
1 2 3
Ввод 2
9 4 7
Вывод 2
4 7 9
C++
Вывод
Нажми ▶ Запустить...
5
Сложно
Простые числа
Считай N. Все простые от 2 до N. Вложенные циклы, проверка до √N.
Пример
Ввод 1
10
Вывод 1
2 3 5 7
Ввод 2
20
Вывод 2
2 3 5 7 11 13 17 19
C++
Вывод
Нажми ▶ Запустить...