2.87M
AI
Category: programmingprogramming

Знакомимся с языком C++ — Лекция 1: Введение в программирование

1.

C:\> terminal.exe — BORLAND TURBO C++ 1985
[READY]
SCHOOL INFORMATICS
LECTURE 01 / 05
CPU: 4.77 MHz
RAM: 640 KB
//
SYSTEM
BOOT
COMPLETE
—
RUN
ЗНАКОМИМСЯ С ЯЗЫКОМ C++
Лекция 1 · Введение в программирование
7–8 класс · Основы информатики
Press any key to continue
© School Informatics Course · 2026

2.

C:\> lesson01 --topic=why-cpp
//
SECTION
·
[02/11]
ВВЕДЕНИЕ
ЗАЧЕМ УЧИТЬ C++?
Язык, на котором создан мир
✦
ИГРЫ МИРОВОГО УРОВНЯ
◯
БРАУЗЕРЫ
▦
ОПЕРАЦИОННЫЕ СИСТЕМЫ
➤
КОСМИЧЕСКИЕ АППАРАТЫ
Minecraft, GTA V, Cyberpunk 2077 — частично или полностью написаны на C++.
Google Chrome и Mozilla Firefox — их движки построены на C++.
Windows, macOS и ядро Linux содержат миллионы строк на C++.
Марсоходы NASA управляются программами, написанными на C++.
↗ 5 из 10самых популярных программ в мире написаны на C++
MINECRAFT
238 млн копий · частично на C++

3.

C:\> cd /history/1979 && dir
//
HISTORY
·
[03/11]
ORIGIN
1979 ГОД · BELL LABS
AT&T · США
Bell Labs,
Murray Hill
Где родился C++
// CO NTEXT
В лабораториях Bell Labs (AT&T, США) молодой датский программист Бьёрн
Страуструп начинает работу над новым языком.
ВОЗРАСТ
29
лет Бьёрну
ЗАДАЧА
ЦЕЛЬ
анализ работы телефонной
объединить мощь C и
сети Bell
удобство Simula
«C++ создавался не как 'игрушка для учёных', а как рабочий инструмент для
решения реальных задач связи»
— Б. Страуструп
БЬЁРН СТРАУСТРУП
создатель C++

4.

C:\> git log --oneline --all-languages
//
EVOLUTION
·
[04/11]
TIMELINE
ЭВОЛЮЦИЯ ЯЗЫКОВ
Как C стал C++
BCPL
B
C
C with Classes
C++
Мартин Ричардс
Кен Томпсон
Деннис Ритчи
Б. Страуструп
Б. Страуструп
1967
1969
▶
Прародитель всех Cподобных языков
1972
▶
Упрощённая версия для
ранних Unix
1979
▶
Стандарт для системного
программирования
? ПОЧЕМ У ++? В C операция ++ увеличивает число на 1. C++ — это «следующий шаг после C».
1983 / 1985
▶
Добавлены классы из Simula
Официальное имя, первый
компилятор

5.

C:\> tasklist /usage /cpp
//
TODAY
·
[05/11]
REAL-WORLD
C++ СЕГОДНЯ
ПРИМЕРОВ В
Язык, на котором работает мир
✦
01
◉
КАТАЛОГЕ
02
◯
MINECRAFT
ADOBE PHOTOSHOP
GOOGLE CHROME
238 млн копий продано
Графика и дизайн
Движок V8 на C++
▢
04
⊟
05
➤
MICROSOFT WINDOWS
TESLA AUTOPILOT
МАРОСОХОД CURIOSITY
Системные компоненты
Управление автомобилем
NASA использует C++
✦ 12 / 20
крупнейших IT-компаний мира активно используют C++ в своих продуктах
06
03
06

6.

C:\> cd ./section_01 && run
[06/11]
//
SE CTION
01 / 05
НАЧИНАЕМ ПИСАТЬ КОД
Первая программа на C++ · Структура ·
Компиляция
// Press any key to start programming
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

7.

C:\> g++ hello.cpp -o hello.exe
//
FIRST
[07/11]
PROGRAM
HELLO, WORLD!
Первая программа каждого программиста
#include<iostream
>
usingnamespacestd
✦
// ИС ТОРИЧ ЕСКАЯ СПРА ВКА
Традиция печатать "Hello, World!" началась в
int main
1972 году с книги Кернигана и Ритчи по языку C.
cout<< "Hello, World!"
<< endl
return0
Сейчас это первая программа почти на всех языках
программирования — от Python до C++.
▶
ВЫВОД ПРОГ РАММЫ :
Hello, World!
FIRST APPEARED
1972 · K&R C

8.

C:\> annotate hello.cpp --line-by-line
//
ANATOMY
·
LINE
BY
[08/11]
LINE
АНАТОМИЯ ПРОГРАММЫ
Что значит каждая строка
#include<iostream
>
// (1) подключить библиотеку
usingnamespacestd
// (2) использовать std
int main
// (3) главная функция
cout<< "Hi!"
// (4) вывод текста
return0
// (5) конец программы
// (6) закрыть функцию
(1)
(2)
(3)
(4)
(5)
(6)
#include <iostream>
Библиотека ввода/вывода — без неё программа не сможет выводить текст.
using namespace std;
Сокращение. Иначе пришлось бы писать std::cout.
int main()
Главная функция. С неё начинается выполнение программы.
cout << "Hi!"
Команда вывода на экран. << — «отправить в поток».
return 0;
Возврат из программы. 0 означает «всё прошло хорошо».
{ }
Фигурные скобки — начало и конец блока. Как границы рецепта.

9.

C:\> diff compiler interpreter
//
COMPARISON
·
[09/11]
TRANSLATION
КОМПИЛЯТОР vs ИНТЕРПРЕТАТОР
Как компьютер понимает программу
▣ КОМПИЛЯТОР
◯ ИНТЕРПРЕТАТОР
VAR. A
Переводит ВСЮ программу целиком
Создаёт исполняемый файл (.exe)
Если есть ошибка — не запустится
Быстрый запуск
VAR. B
Переводит построчно, сразу выполняя
Не создаёт .exe файла
Если ошибка — упадёт на полпути
Медленнее, но гибче
АНАЛОГИЯ
АНАЛОГИЯ
Переводчик книги — перевёл всё, потом читаешь
Синхронный переводчик — переводит речь сразу
ЯЗЫКИ
C · C++ · Rust · Go
ЯЗЫКИ
Python · JavaScript · Ruby
ⓘ C++ — компилируемый язык. Прежде чем запустить, его нужно СКОМПИЛИРОВАТЬ.

10.

C:\> build --stages=all
//
BUILD
[10/11]
PIPELINE
КАК КОД СТАНОВИТСЯ ПРОГРАММОЙ
Три шага от исходника до .exe
ШАГ 02
ШАГ 01
ПРЕПРОЦЕССОР
〜
КОМПИЛЯТОР
Обрабатывает директивы #include
Подставляет текст из библиотек
ШАГ 03
▦
КОМПОНОВЩИК
Переводит текст в машинный код
Создаёт объектный файл (.o)
Проверяет синтаксические ошибки
▶
Подключает библиотечные функции
Создаёт исполняемый .exe
▶
ВХОД → ВЫХОД
ВХОД → ВЫХОД
РЕЗУЛЬТАТ
.cpp → полный текст
текст → .o файл
программа готова к запуску!
⊕
АНАЛО ГИЯ С ГОТО ВКОЙ
1. Препроцессор — собрать все ингредиенты по рецепту · 2. Компилятор — нарезать и подготовить · 3. Компоновщик — смешать, запечь, подать на стол
⌘

11.

C:\> cd ./section_02 && run
[11/11]
PREV ▸ SECTION 01 · НАЧИНАЕМ ПИСАТЬ КОД
// NOW LOADING…
//
SE CTION
02 / 05
ДАННЫЕ И ПЕРЕМЕННЫЕ
Типы данных · Переменные · Константы · Хранение в
памяти
// memory = boxes
+-+-+-+-+-+-+-+-+-+-+-+-+-+

12.

C:\> lecture_01.cpp — variables.bak
12 / 32
ЧТО ТАКОЕ ПЕРЕМЕННАЯ?
Коробка с этикеткой в памяти компьютера
Переменная — это именованная область в памяти, где хранится значение
определённого типа.
ПАМЯТЬ КОМПЬЮТЕРА
age
price
grade
1. ИМЯ — «имя коробки» (age, price, name)
14
99.50
'A'
Латинские буквы, цифры, _
НЕ начинается с цифры
int
double
char
C++ чувствителен к регистру: Age ≠ age ≠ AGE
2. ТИП — «что в коробке лежит» (int, float, char...)
Определяет, сколько байт занимает
Определяет, какие операции доступны
3. ЗНАЧЕНИЕ — «содержимое коробки» (12, 3.14, 'A')
Может меняться во время работы
Поэтому и называется переменной
int
= 14 ;
double
= 99.50 ; // дробное число
// целое число
/memory/shelf/row_01

13.

C:\> lecture_01.cpp — types.dat
13 / 32
ОСНОВНЫЕ ТИПЫ ДАННЫХ
5 главных типов
// data_types.h
>_
✦
#
↗
✦
✓
char
int
float
double
bool
Символьный · 1 байт
Целочисленный · 4 байта
Вещественный · 4 байта
Двойная точность · 8 байт Логический · 1 байт
Хранит один символ: 'A',
'5', '?'
Хранит целые числа: -5, 0, 42,
1000
Дробные числа: 3.14, -0.5
Более точные дробные:
3.141592653
Диапазон: -128..127
Диапазон: ±2 миллиарда
7 знаков после точки
15 знаков после точки
◆ Если не знаете, какой тип выбрать — для чисел берите int (целые) или double (дробные).
СОВЕТ
Только true или false
Для условий и проверок

14.

C:\> lecture_01.cpp — declaration.c
14 / 32
ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ
Как создать переменную
declaration.cpp
ФОРМУ ЛА
тип имя;
// Объявление нескольких
// переменных одного типа:
int
;
ФОРМУ ЛА С ИНИЦИ АЛИЗА ЦИЕЙ
тип имя = значение;
// Объявление с инициализацией:
int
double
char
bool
= 95 ;
= 3.14159 ;
= 'A';
= true;
ПРАВИ ЛА ИМ ЁН
✓ Латинские буквы, цифры, _
✗ НЕ начинается с цифры
✗ НЕ совпадает с ключевым словом
// Множественное присваивание:
int
=
=
= 0;
✗ НЕ содержит пробелов
// пример программы-знакомства
// Программа-знакомство
<iostream>
#include
using namespace;
()
intmain
string
= "Маша";
int
= 13 ;
<< "Привет, "
<<
;

15.

C:\> lecture_01.cpp — constants.lock
15 / 32
КОНСТАНТЫ
Значения, которые не меняются
constants.cpp
Почему const?
// Способ 1: const
constdouble
constint
constchar
=3.141592653
= 150 ;
= '\n'
;
// readonly
$lock_
;
Защита от случайных изменений
Программа становится надёжнее
Если попытаться изменить — компилятор выдаст ошибку
// Способ 2: #define (макрос)
#define 3.141592653
#define
()
intmain
double = 5.0 ;
double =
*
// PI = 4; — ОШИБКА!
Когда использовать?
30
Математические константы (π, e)
*
;
Физические константы (g = 9.8)
Размеры массивов
Настройки программы
return0;
ЖИЗНЕ ННЫЙ ПРИМЕ Р
Число π никогда не меняется — всегда 3.14159... Зачем рисковать?
Если случайно написать π = 4, программа будет считать
неправильно. const защищает.

16.

C:\> lecture_01.exe — section_03
03 /05
+-+-+ -+ - +
16 / 32
ОПЕРАЦИИ И ВЫРАЖЕНИЯ
Арифметика · Присваивание · Логика · Сравнение · Матфункции
// let's compute
+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+
+ - * / % ++ -- && || ! < > == != <= >= += -= *= /=
SECTION · 03 of 05
~ press [SPACE] to
continue ~

17.

C:\> lecture_01.cpp — arithmetics.op
17 / 32
АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
+ − × ÷ и больше
// calc_on
>_
+
− −
✕ *
✦ /
++
✦ --
СЛОЖЕНИЕ
ВЫЧИТАНИЕ
УМНОЖЕНИЕ
ДЕЛЕНИЕ
ИНКРЕМЕНТ (+1)
ДЕКРЕМЕНТ (−1)
5+3=8
10 − 4 = 6
6 * 7 = 42
20 / 4 = 5
x++ ≡ x = x+1
x-- ≡ x = x-1
60₽ + 40₽ = 100₽
(покупки)
100₽ − 30₽ = 70₽
(сдача)
5 пачек × 20₽ = 100₽
100₽ / 4 = 25₽
(на четверых)
+1 конфета
в копилку
−1 конфета
из копилки
shopping.cpp — пример с покупками
// Сколько потратим в магазине?
= 60
=
int
int
<<
= 40
= 150 ;
;
+
+
; // выведет 250

18.

C:\> lecture_01.cpp — div_mod.op
18 / 32
ЦЕЛОЧИСЛЕННОЕ ДЕЛЕНИЕ И %
Что не учитывают в школе
// mod & div
%_
ОСОБЫЕ СЛУЧАИ
11 / 4
11.0 / 4
11 % 4
ЦЕЛАЯ ЧАСТЬ
ОБЫЧНОЕ ДЕЛЕНИЕ
ОСТАТОК
11 / 4 = 2
11.0 / 4 = 2.75
11 % 4 = 3
Дробная часть отбрасывается
Дробное число сохраняется
Сколько останется после деления
Потому что оба — int
одно число дробное
только для целых!
12 % 4 = 0 (нацело)
7 % 2 = 1 (нечётное)
НА ГЛ Я ДН О
11 конфет ÷ 4 друга
↓
По 2 каждому (4 × 2 = 8)
↓
3 конфеты ОСТАЛОСЬ →
11 % 4 = 3
8 % 2 = 0 (чётное)
15 % 10 = 5 (последн. цифра)

19.

C:\> lecture_01.cpp — inc_dec.op
19 / 32
ИНКРЕМЕНТ ++ И ДЕКРЕМЕНТ -// +1 / -1
Увеличение и уменьшение на 1
ПРЕФИКСНАЯ ФОРМА:
++_
++x
ПОСТФИКСНАЯ ФОРМА:
Сначала увеличивает, потом использует
int = 12 ;
int = ++ ;
// x = 13, y = 13
int = 12 ;
int = ++;
// x = 13, y = 12
1) x увеличивается на 1 → x = 13
1) y получает значение x → y = 12
2) y получает значение x → y = 13
2) x увеличивается на 1 → x = 13
Аналогия: «Поднял руку, потом ответил»
◆ ПРАВИЛО
Если операция ++ одна в строке (не в выражении) — оба
варианта дают одинаковый результат: x++ и ++x просто
увеличивают x на 1.
x++
Сначала использует, потом увеличивает
Аналогия: «Сначала ответил, потом поднял руку»
puzzle.cpp — что выведет?
// Что выведет?
int = 5;
int = ++ + ++ ;
// a=5 → a++ даёт 5, a становится 6
// ++a даёт 7, a становится 7
// b = 5 + 7 = 12

20.

C:\> lecture_01.cpp — compound_assign.op
20 / 32
СОСТАВНОЕ ПРИСВАИВАНИЕ
Короткие формы для частых операций
// shorthand
+=_
+=
-=
*=
/=
x += p ≡ x = x + p
x -= p ≡ x = x - p
x *= p ≡ x = x * p
x /= p ≡ x = x / p
Пример: копилка money += 100
Пример: баланс -= 50 (снятие)
Пример: зарплата *= 1.1 (+10%)
Пример: скидка price /= 2
Добавить к текущему значению
Вычесть из текущего значения
Умножить текущее значение
Разделить текущее значение
score.cpp
int
= 100 ;
+=50 ; // score = 150
-=30 ; // score = 120
// score = 240
*= 2;
/= 3;
// score = 80
◫ КОПИЛ КА — ЖИЗНЕ ННЫЙ ПРИМЕ Р
начинаем
500₽
+100 (бабушка)
→ 600₽
−150 (подарок)
→ 450₽
*2 (папа удвоил)
→ 900₽
/3 (на троих)
→ 300₽

21.

C:\> lecture_01.cpp — boolean.logic
21 / 32
ЛОГИЧЕСКИЕ ОПЕРАЦИИ
И · ИЛИ · НЕ
// bool ops
&&_
&& И · LOGICAL AND
ТАБЛИЦА ИСТИННОСТИ
Истинно, только если ОБА истинны
A
B
A && B
A || B
!A
true && true → true · true && false → false
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
|| ИЛИ · LOGICAL OR
Истинно, если ХОТЯ БЫ ОДНО истинно
true || false → true · false || false → false
0 = false · 1 = true
! НЕ · LOGICAL NOT
Меняет значение на противоположное
!true → false · !false → true
◆ ЖИЗНЕННЫЕ ПРИМЕРЫ
Можно гулять = «Уроки сделаны» && «Погода
хорошая»
Мультик = «Выходной» || «Каникулы»
Не голоден = !«Хочу есть»

22.

C:\> lecture_01.cpp — relations.op
22 / 32
ОПЕРАЦИИ ОТНОШЕНИЯ
Сравнение значений → true / false
// compare
==_
>
<
>=
<=
==
!=
БОЛЬШЕ
5 > 3 → true
10 > 10 → false
МЕНЬШЕ
3 < 5 → true
10 < 10 → false
БОЛЬШЕ ИЛИ РАВНО
10 >= 10 → true
9 >= 10 → false
МЕНЬШЕ ИЛИ РАВНО
10 <= 10 → true
11 <= 10 → false
РАВНО (СРАВНЕНИЕ)
5 == 5 → true
5 == 6 → false
НЕ РАВНО
5 != 6 → true
5 != 5 → false
⚠ ОЧЕНЬ ЧАСТАЯ ОШИБКА!
▿ ЖИЗНЕННЫЕ ПРИМЕРЫ
= — это присваивание, == — это сравнение!
age >= 14 → можно получить паспорт
int = 5; // x теперь 5
if ( == 5) // ПРОВЕРКА: x равно 5?
if ( = 5) // ОШИБКА! всегда true!
name == "Иван" → проверка имени
score != 0 → оценка не ноль

23.

~ /lecture1/slide_23
C:\> math_functions.exe
МАТЕМАТИЧЕСКИЕ ФУНКЦИИ
Готовые инструменты из библиотеки math.h
11 ФУНКЦИЙ
#include<math.h>// подключить матфункции
abs(x)
fabs(x)
sqrt(x)
pow(x,y)
модуль целого
модуль дробного
квадратный корень
возведение в степень
abs(-7) = 7
fabs(-3.14) = 3.14
sqrt(144) = 12
pow(2,10) = 1024
sin(x)
cos(x)
tan(x)
atan(x)
синус (радианы!)
косинус (радианы!)
тангенс
арктангенс
sin(0) = 0
cos(0) = 1
tan(0) = 0
atan(1) ≈ 0.785
// и ещё ~20
exp(x)
log(x)
log10(x)
экспонента eˣ
натуральный логарифм
десятичный логарифм
exp(1) ≈ 2.718
log(2.718) ≈ 1
log10(1000) = 3
ceil, floor, round, fmod,
hypot...
// Найти гипотенузу треугольника
⚠ Углы — в РАДИАНАХ, не в градусах!
#include<math.h>
rad = grad · π / 180
double
3
double
sqrtpow
180° = π рад · 90° = π/2 · 45° = π/4
4
2
pow
2
// выведет 5 (теорема Пифагора!)

24.

~ /lecture1/slide_24
C:\> sizeof_demo.exe
sizeof — РАЗМЕР В ПАМЯТИ
Сколько байт занимает каждый тип
✦ ВЫВОД ПРОГРАММЫ
// sizeof_demo.cpp
<iostream>
#include
using namespace
intmain
"char:
" sizeofchar
"int:
"
sizeofint
"short: " sizeofshort
"long:
" sizeoflong
"float: " sizeoffloat
"double: " sizeofdouble
"bool:
" sizeofbool
return0
ОПЕРАЦИЯ
" байт\n"
" байт\n"
" байт\n"
" байт\n"
" байт\n"
char:1 байт
int:4 байта
short:2 байта
long:8 байт
float:4 байта
double:8 байт
bool:1 байт
> exit code 0
" байт\n"
" байт\n"
ФОРМУЛА
ЗАЧЕМ НУЖНО?
ЖИЗНЕННЫЙ ПРИМЕР
sizeof(тип)
8 бит = 1 байт → 256 вариантов
4 байта (int) → 4 млрд вариантов
Чем больше байт — тем больше чисел поместится
sizeof переменная
возвращает размер в байтах
Экономия памяти в больших программах
Проверка совместимости типов
Узнать размер массива
Кроссплатформенная разработка

25.

C:\> cd ./sections/04_io
04
SECTION 04 OF 05
+--stdin---+
| >>> ?>>> |
+----------+
SECTION
/ 05 ▸ прогресс курса
┌──── ТЕМА ────┐
ВВОД
И ВЫВОД
cout · cin · Общение с пользователем
// talk to me
+-+-+-+-+-+-+-+-+-+-+-+-+
+---stdout---+
| <<< !<<< |
+-----------+
// Лекция 1 · Знакомимся с C++
page 25 / 32

26.

~ /lecture1/slide_26
C:\> cout_demo.exe
cout — ВЫВОД НА ЭКРАН
Как писать в терминал
// cout_demo.cpp
main.cpp
<iostream>
#include
using namespace
// Простой вывод текста
<< "Привет, мир!"
// Вывод с переходом на новую строку
<<
<< "Строка 1"
<< "Строка 2\n"// \n — то же самое
// Вывод переменных
14
<< "Возраст: <<
"
<< " лет\n"
// Несколько значений через <<
int
7
5
<< "a="<< << " b="<<
<< " сумма="<<
<< "\n"
return0
▤ ПРАВИ ЛА co ut
✦ ВЫВОД В ТЕРМИНАЛЕ
Привет, мир!
Строка 1
Строка 2
Возраст:14 лет
a=5 b=7 сумма=12
intmain
int
CHARACTER OUTPUT
std::cout
СПЕЦСИМВОЛЫ В СТРОКАХ
\n
новая строка
\t
табуляция (отступ)
\\
обратный слэш
\"
двойная кавычка

27.

~ /lecture1/slide_27
C:\> calculator.exe
cin — ВВОД С КЛАВИАТУРЫ
Как программа спрашивает пользователя
C HARACTER INPUT
std::cin
⌨ СЕАНС ВВОДА
// calculator.cpp
<iostream>
#include
using namespace
$ ./calculator
Введите первое число:
7
intmain
int
Введите второе число:
5
Сумма: 12
// Спросить пользователя
Произведение:35
<< "Введите первое число: "
>>
<<
>>
$
"Введите второе число: "
// Вывести сумму
<< "Сумма: "<<
<< "\n"
<< "Произведение: <<
"
<< "\n"
return0
ПРАВИЛА cin
>> — операция «взять из потока»
переменная БЕЗ кавычек
cin >> x >> y; — ввод двух переменных
ЖИЗНЕННАЯ АНАЛОГИЯ
cout — кассир говорит: «С вас 100 ₽»
cin — кассир спрашивает: «Даёте 100 ₽ или картой?»
⚠ ВАЖНО
Перед cin всегда стоит cout с
подсказкой — иначе пользователь не
знает, что вводить!

28.

C:\> cd ./sections/05_practice
┌────TASKS────┐
│ 1 │ 2 │ HW │
└─────────────┘
05
SECTION 05 OF 05
┌──SOLVE──┐
│ ? ▸ ! │
└─────────┘
▸ READY ▸ SET ▸ COD E
/
05
──────────── ФИНАЛЬНЫЙ РАЗДЕЛ ────────────
ПРАКТИКА И МИНИ-ЗАДАЧИ
Закрепляем
· Решаем
· Программируем
// your turn
+-+-+-+-+-+-+-+-+-+-+-++-+
// Лекция 1 · Знакомимся с C++
page 28 / 32

29.

C:\> quiz_01.exe
QUIZ 1 / 2
МИНИ-ЗАДАЧА 1
Что выведет этот код?
// quiz_01.cpp
30 СЕКУНД
int / %
#include<iostream>
using namespace
int main
int
7
<<
<<
A
3.5 1 9
B
319
C
729
D
3.5 3.5 9
✓ правильный!
2
<< " "
<< " "
<<
return0
◆ РАЗБО Р
▸ a / b = 7 / 2 = 3 // целочисленное деление, дробь отбрасывается
▸ a % b = 7 % 2 = 1 // остаток от деления
▸ a + b = 7 + 2 = 9 // обычное сложение
▸ ОТВЕТ: B) 3 1 9
ПРАВИЛО-НАПОМИНАНИЕ
English     Русский Rules