{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

Логические и математические рассуждения при реализации алгоритма

Работая с TSLab, в некоторых ситуациях возникает потребность в новых блоках, не реализованных в программе. Многие сложности, на самом деле, решаемы имеющимся функционалом, хотя иногда, конечно, не обойтись без программирования. В этой статье мы покажем как самостоятельно создать индикатор в редакторе TSLab.

Так как процесс разработки нового функционала программистами TSLab — достаточно трудоемкий процесс, состоящий из многих этапов, то от момента создания запроса до непосредственной реализации может пройти не одна неделя, а то и месяц (в зависимости от сложности задания). По этому многие вопросы, например, связанные с созданием индикаторов пользователь может решить своими руками!

Создание индикатора «Месяц года»

Итак, начнем. В TSLab имеется блок «Дата», который транслирует дату в формате ггммдд, его и будем использовать, чтобы получить месяцы.

Первый и самый важный шаг — вывести блок дата на график, чтобы узнать о формате, так как в разных блоках могут быть разные вариации написания.

Следующий шаг — построить логику в голове, каким образом достать месяц из данного варианта формата. Прежде всего не воспринимаем это как дату, а принимаем ее за обычную число "161122". Чтобы добраться до месяцев, мне нужно прежде всего исключить год. Значит мне нужно привести число к виду "160000". Далее из даты вычитаем ее и получаем остаток, то есть "1122" Чтобы получить такой вариант, достаточно использовать матметоды, которые уже встроены в редакторе формулы.

(Math.Truncate(Дата / 10000)) * 10000

Для начала 161122 делим на 10 000 и получится число "16,1122", а используемый метод убирает десятичные и остается целое число "16" которое умножив на 10000 получим необходимое значение. Далее процедуру нужно повторить с остатком из разницы на предыдущем шаге.

Math.Truncate(Формула1 / 100)

Таким образом мы получаем месяц года в понятном формате 1, 2, 3....12. Ну, и чтобы не делать такие блоки каждый раз, когда они необходимы, достаточно создать свой собственный индикатор и пользоваться когда он нужен. Ниже скрин как создать индикатор, это всего 6 блоков

Пишите так же свои пожелания и трудности, в комментариях. Всегда открытое общение так же в нашем телеграм канале.

0
Комментарии
-3 комментариев
Раскрывать всегда