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

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

![Блок «Инициализация переменной»](https://2170735180-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M-9YMGCK0ySSnTAiseS%2F-M51pe43V3dwgaNdg0_t%2F-M51qy1lrvlast0f4s2z%2FvariableInitBlock_100.png?alt=media\&token=44b8b583-fb8c-47d5-8d51-3f10c12b4353)

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

![Блок «Выражение»](https://2170735180-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M-9YMGCK0ySSnTAiseS%2F-M51pe43V3dwgaNdg0_t%2F-M51s0-8mn_MW1mdTryJ%2FfunctionBlock_100.png?alt=media\&token=81c18844-618a-4f8f-bfe4-ba1557f40bac)

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

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

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

## Язык TRIK Studio

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

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

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

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

![](https://2170735180-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M-9YMGCK0ySSnTAiseS%2F-M53x2zQ3hKHvPt9d6cb%2F-M53y1TOodwlxbMcodLx%2Fexample-1.png?alt=media\&token=867716c6-efbf-46e8-9206-3bc994520f5f)

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

![](https://2170735180-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M-9YMGCK0ySSnTAiseS%2F-M53x2zQ3hKHvPt9d6cb%2F-M53y6T5AjzqUWbF0EZe%2Fexample-2.png?alt=media\&token=1b4edeaf-29d0-4334-91bb-c997f6322118)

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

![](https://2170735180-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M-9YMGCK0ySSnTAiseS%2F-M53yFL04ksndigpZw5C%2F-M53zUs1dbNJIYLG3ZN9%2Fexample-3.png?alt=media\&token=d2f2c729-6bbf-4ec6-90d7-c7370cf17a6b)

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

![](https://2170735180-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M-9YMGCK0ySSnTAiseS%2F-M53zrQ7ItWjS3r4eAzB%2F-M54-bgExR8QCuI8yQNq%2Fexample-4.png?alt=media\&token=8d358a6c-c876-4dd5-a775-f6923940c7c5)
