{"id":14289,"url":"\/distributions\/14289\/click?bit=1&hash=892464fe46102746d8d05914a41d0a54b0756f476a912469a2c12e8168d8a933","title":"\u041e\u0434\u0438\u043d \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b \u043f\u0440\u043e\u0434\u0430\u0436\u0438 \u043d\u0430 5%, \u0430 \u0441\u0440\u0435\u0434\u043d\u0438\u0439 \u0447\u0435\u043a \u2014 \u043d\u0430 20%","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 комментариев
Раскрывать всегда