# Операции с переменными

Изменять значение переменных можно с помощью шага **"установить переменную"**. В этом шаге вы можете использовать множество математических операций:

> **+, -, \*, /** — сложение, вычитание, умножение деление.\
> Например, **%переменная% \* 10**, выдаст значение переменной, умноженной на 10

> **sin, cos, tan** — вычисление синуса, косинуса, тангенса от значения переменной. Например, **sin(%переменная%)**.

> **sqrt(%переменная%)** — квадратный корень от значения переменной

> **log(%переменная%)** — натуральный логарифм от значения переменой

> **ceil(%переменная%)** — округление вверх, например, ceil(10.2) = 11

> **floor(%переменная%)** — округление вниз, например, floor(10.7) = 10

> **round(%переменная%)** — округление, например, round(10.4) = 10, а round(10.6) = 11

> **abs(%переменная%)** — взятие модуля от значения переменной, например, abs(-10) = 10

> **^** — возведение в степень, например, 2 ^ 3 = 8

> **%** — взятие остатка от переменной, например, 14 % 10 = 4

Давайте разберем несколько примеров:

[Создадим переменную](https://docs.smartbot-vk.ru/sozdanie-scenariev/polzovatelskie-peremennye#sozdanie-peremennoi) %тест%, используем шаг "установить переменную". Поставим начальное значение переменной %тест% = 10. А следующим шагом установим значение в виде математического выражения: возведем значение переменной в квадрат и вычтем 5:

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M0iSxgzjld4f6tJYT1E%2F-M0iTRmkIGf_6OxatWtV%2Fimage.png?alt=media\&token=9ac0f0fa-4134-488c-9d10-f32ad1193c01)

![Результат использования математических операций с переменной](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M0iSxgzjld4f6tJYT1E%2F-M0iTs7GTVWAp-VLUvG-%2Fimage.png?alt=media\&token=60750196-24f5-4c7a-b6f9-2dd7103fc539)

Бот вычислил и записал значение в переменную %тест%. Теперь значение переменной обновлено :sunglasses:&#x20;

Вы наверняка догадались, что в одной операции можно использовать и несколько переменных! Это открывает широкие возможности как для реализации интересных игровых механик, так и сложных подсчетах, например, стоимости доставки вашего товара :nerd:&#x20;

Давайте используем функцию округления для нашей переменной. Установим значение 12, а затем умножим его на -1.1 и округлим:

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M0iSxgzjld4f6tJYT1E%2F-M0iUcHYsOV8XD6zO1Is%2Fimage.png?alt=media\&token=57052477-d1f0-4519-a96b-f5fcbc57001e)

![](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M0iSxgzjld4f6tJYT1E%2F-M0iUjULkNYRJsA-nwXT%2Fimage.png?alt=media\&token=42dd2da7-f55e-44b3-a5d7-a3b9246c2134)

12 \* -1.1 = -13.2. Округлить -13.2, будет -13. Бот справился! :partying\_face:&#x20;

Кроме операций над числовыми переменными, можно производить операции над текстовыми переменными, например, сохранять текст в переменную:

![Пример установки текстовой переменной](https://463658383-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0DL-As7pQfMiFtgM0k%2F-M0iSxgzjld4f6tJYT1E%2F-M0iVMw7v8VTLE-bC1-v%2Fimage.png?alt=media\&token=4940cbc7-6b9f-4d1c-ad59-8b7d31430d57)

В этом случае переменная %тест% будет хранить текст "пользователь (имя пользователя) написал (последнее сообщение пользователя)".

Этот функционал и правда очень крутой) С ним можно придумать очень сложные механики: от формирования заказов через бота до написания собственной миниигры! :muscle:&#x20;

Если вам нужно работать со сложными структурами данных, такими как массивы и словари, но вместо шага Установить переменную строит обратить внимание на язык SmartQuery и шаг [Выполнить SmartQuery](https://docs.smartbot-vk.ru/sozdanie-scenariev/shagi/vypolnit-smartquery). Разница между ними подробно описана в статье [Отличия шага Установить переменную и SmartQuery](https://docs.smartbot-vk.ru/sozdanie-scenariev/peremennye/otlichiya-shaga-ustanovit-peremennuyu-i-smartquery).
