Присваивание, арифметика и стандартные функции

Учимся считать в КуМире: присваивание, операции, целочисленное деление, остаток и встроенные функции.

Присваивание := вычисляет выражение справа и кладёт результат в переменную слева. Это главная вычислительная команда языка.

Оператор присваивания :=

В КуМире присваивание — это двоеточие и равно: :=. Одиночное = означает «равно» (сравнение), а не присваивание — это важное различие, ровно как в Паскале.

цел 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 — главный инструмент задач про цифры числа.
Проверьте себя
1. Чему равно mod(23, 5) в КуМире?
A4
B3
C5
D115
2. Как в КуМире записывается присваивание значения переменной?
A=
B==
C:=
D->
3. Как получить последнюю цифру целого числа n?
Adiv(n, 10)
Bmod(n, 10)
Cn / 10
Dint(n)
Поддержать проект