Присваивание, арифметика и стандартные функции
Учимся считать в КуМире: присваивание, операции, целочисленное деление, остаток и встроенные функции.
Присваивание
:=вычисляет выражение справа и кладёт результат в переменную слева. Это главная вычислительная команда языка.
Оператор присваивания :=
В КуМире присваивание — это двоеточие и равно: :=. Одиночное = означает «равно» (сравнение), а не присваивание — это важное различие, ровно как в Паскале.
цел x
x := 5 | в x записали 5
x := x + 1 | прибавили 1, теперь x равен 6
Строку x := x + 1 нельзя читать как математическое уравнение (оно было бы ложным). Это команда: «возьми текущее значение x, прибавь 1, результат снова положи в x».
Арифметические операции
| Операция | Запись | Пример |
| сложение | + | 3 + 4 = 7 |
| вычитание | - | 10 - 3 = 7 |
| умножение | * | 2 * 5 = 10 |
| деление | / | 7 / 2 = 3.5 |
| степень | ** | 2 ** 3 = 8 |
Деление / всегда даёт вещественный результат, даже если числа делятся нацело: 10 / 2 — это 5.0, а не 5. Чтобы остаться в целых, используют специальные функции.
Целочисленное деление: div и mod
Это две важнейшие функции, без которых не обойтись:
div(a, b)— целая часть от деленияaнаb(сколько раз b помещается в a).mod(a, b)— остаток от деления.
вывод div(17, 5), нс | 3
вывод mod(17, 5), нс | 2
Проверка: 17 = 5·3 + 2. Целая часть — 3, остаток — 2. Эти функции — ключ к задачам «сумма цифр числа», «чётность», «последняя цифра» (mod(n, 10)).
Аналог на Python — оператор // для целой части и % для остатка:
a = 17
b = 5
print("div:", a // b)
print("mod:", a % b)
print("последняя цифра 1234:", 1234 % 10)
print("число без последней цифры:", 1234 // 10)
Вывод:
div: 3 mod: 2 последняя цифра 1234: 4 число без последней цифры: 123
Стандартные функции
| Функция | Что делает | Пример |
abs(x) | модуль числа | abs(-7) = 7 |
sqrt(x) | квадратный корень | sqrt(9) = 3.0 |
int(x) | целая часть вещественного | int(3.9) = 3 |
div(a,b) | целое деление | div(7,2) = 3 |
mod(a,b) | остаток | mod(7,2) = 1 |
max(a,b) | большее из двух | max(3,8) = 8 |
min(a,b) | меньшее из двух | min(3,8) = 3 |
Есть и тригонометрия (sin, cos), и случайные числа (rand, irand), но для школьных задач чаще всего хватает таблицы выше.
Порядок операций
Как в обычной математике: сначала степень, потом умножение и деление, потом сложение и вычитание. Скобки меняют порядок. Чтобы не запутаться, ставьте скобки щедро:
вещ y
y := (2 + 3) * 4 | сначала скобка: 5, потом *4 = 20
вывод y, нс
Пример: сумма цифр трёхзначного числа
Классическая задача. Разберём её сначала на КуМире:
алг
нач
цел n, s
ввод n
s := div(n, 100) + div(mod(n, 100), 10) + mod(n, 10)
вывод "Сумма цифр = ", s, нс
кон
А вот запускаемый эквивалент на Python для числа 357:
n = 357
sotni = n // 100
desyatki = (n % 100) // 10
edinicy = n % 10
s = sotni + desyatki + edinicy
print("Сумма цифр", n, "=", s)
Вывод:
Сумма цифр 357 = 15
Попробуй сам
Дано двузначное число. Напишите выражение, которое меняет местами его цифры (например, 47 → 74). Подсказка: первая цифра — div(n, 10), вторая — mod(n, 10); новое число — mod(n,10) * 10 + div(n,10).
Частые ошибки
- Перепутать
=(сравнение) и:=(присваивание). - Ждать целый результат от
/. Для целого деления нуженdiv. - Писать
17 div 5в инфиксной форме — в КуМире это функция:div(17, 5). - Забывать скобки и получать неверный порядок действий.
Итог
- Присваивание —
:=; сравнение —=. /даёт дробь; для целого деления —div, для остатка —mod.- Функции пишутся со скобками:
div(a,b),mod(a,b),abs(x),sqrt(x). - Связка
divиmod— главный инструмент задач про цифры числа.