> For the complete documentation index, see [llms.txt](https://help.trikset.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.trikset.com/studio/programming-visual/expression-syntax.md).

# Синтаксис выражений в блоках

Для объявления переменных и задания им определенных значений используется блок [«Инициализация переменной»](/studio/programming-visual/blocks.md#initialization).

![Блок «Инициализация переменной»](/files/-M51qy1lrvlast0f4s2z)

А для записи математических вычислений — блок [«Выражение»](/studio/programming-visual/blocks.md#expression).

![Блок «Выражение»](/files/-M51s0-8mn_MW1mdTryJ)

Также математические выражения, в том числе и изменяющие значения переменных, могут встречаться почти везде, где можно указать какое-либо значение.

Блоки и их свойства, не допускающие использования математических выражений, описаны в разделе [«Общие блоки»](/studio/programming-visual/blocks.md#vse-obshie-bloki).

Все переменные в программе являются глобальными, т.е. их значения могут использоваться в любом блоке в программе.

## Язык TRIK Studio

Используемый внутри блоков язык создан на базе [Lua 5.3](https://www.lua.org/) и во многом следует его синтаксису. Тем не менее имеются существенные отличия, поэтому полное описание используемого в TRIK Studio языка приводится здесь.

* [Типы языка TRIK Studio](/studio/programming-visual/expression-syntax.md)
* [Лексемы языка](/studio/programming-visual/expression-syntax/lexemes.md)
* [Операторы языка](/studio/programming-visual/expression-syntax/operators.md)
* [Сенсорные переменные](/studio/programming-visual/expression-syntax/sensory-variables.md)
* [Константы](/studio/programming-visual/expression-syntax/const.md)
* [Встроенные функции](/studio/programming-visual/expression-syntax/built-in-functions.md)

## Примеры записи выражений

Объявление нескольких переменных в одном блоке [«Выражение»](/studio/programming-visual/blocks.md#vyrazhenie):

![](/files/-M53y1TOodwlxbMcodLx)

То же через блоки [«Инициализация переменной»](/studio/programming-visual/blocks.md#inicializaciya-peremennoi):

![](/files/-M53y6T5AjzqUWbF0EZe)

Пропорциональный регулятор для езды по линии с использованием двух датчиков света для платформы ТРИК:

![](/files/-M53zUs1dbNJIYLG3ZN9)

Пример использования [массивов](/studio/programming-visual/expression-syntax/types/array.md) для задания портов блока «Моторы вперёд». Создаётся массив с именем `a`, нулевому элементу присваивается порт `M3`, первому — `M1`, потом содержимое первого элемента массива меняется на `M4`, затем получившийся массив передаётся в свойство «Порты» блока «Моторы вперёд»:

![](/files/-M54-bgExR8QCuI8yQNq)
