> For the complete documentation index, see [llms.txt](https://docs.smartbot-vk.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.smartbot-vk.ru/sozdanie-scenariev/peremennye/operacii-s-peremennymi.md).

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

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

> **+, -, \*, /** — сложение, вычитание, умножение деление.\
> Например, **%переменная% \* 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

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

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

![](/files/-M0iTRmkIGf_6OxatWtV)

![Результат использования математических операций с переменной](/files/-M0iTs7GTVWAp-VLUvG-)

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

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

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

![](/files/-M0iUcHYsOV8XD6zO1Is)

![](/files/-M0iUjULkNYRJsA-nwXT)

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

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

![Пример установки текстовой переменной](/files/-M0iVMw7v8VTLE-bC1-v)

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

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

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.smartbot-vk.ru/sozdanie-scenariev/peremennye/operacii-s-peremennymi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
