<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Таблица для отслеживания состояния кода]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Таблица для отслеживания состояния кода форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 19 Apr 2026 09:35:45 +0300</pubDate>
		<item>
			<title>Таблица для отслеживания состояния кода</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message37770/topic4485/">Таблица для отслеживания состояния кода</a></b> <i>Создание таблицы, последнее значение которой будет определять ход процесса </i> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Здравствуйте. <br />Уважаемые форумчане, необходима ваша помощь. <br />Цель данного кода, найти момент касания определенной линии указанной в таблице t_Lev. Для отслеживания данного момента необходимо применить таблицу t_Sys, которая имеет три значения: 1-коснулись нижней линии; 2- не коснулись ни одной линии; 3-коснулись верхней линии. Нужна именно таблица, что бы знать какая линия была достигнута до перехода в состояние 2, это важно. <br />Условие касание сейчас выставлены заведомо невыполнимые и при этом код не возвращает линии, даже первые значения. <br />
====code====
<pre>function Init()&nbsp;&nbsp;&nbsp;f_LEVEL= LEVEL()
&nbsp;&nbsp;&nbsp;return #Settings.line
end

function OnCalculate(Index)
local S2Down, S1Down, L1Up, L2Up = f_LEVEL(Index)
&nbsp;&nbsp;&nbsp;return S2Down, S1Down, L1Up, L2Up
end

function LEVEL()
&nbsp;&nbsp;&nbsp;t_Sys={}
&nbsp;&nbsp;&nbsp;t_Sys&#91;1&#93;=3
&nbsp;&nbsp;&nbsp;t_Sys&#91;2&#93;=2
return function (I)
local S2Down, S1Down, L1Up, L2Up = nil, nil, nil, nil

if I&#62;2 then
&nbsp;&nbsp;&nbsp;if t_Sys&#91;#t_Sys&#93;==3 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S2Down, S1Down, L1Up, L2Up = nil, nil, nil, nil
--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t_Sys&#91;#t_Sys+1&#93;=2
&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;if t_Sys&#91;#t_Sys&#93;==2 then --пока касание не произошло
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local t_Lev=LINE(I)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S2Down, S1Down, L1Up, L2Up = t_Lev&#91;1&#93;, t_Lev&#91;2&#93;, t_Lev&#91;3&#93;, t_Lev&#91;4&#93;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if H(I)&#62;=t_Lev&#91;#t_Lev&#93; then --произошло касание верхней линии
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t_Sys&#91;#t_Sys+1&#93;=3
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if L(I)&#60;=t_Lev&#91;1&#93; then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t_Sys&#91;#t_Sys+1&#93;=1; --произошло касание нижней линии
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end
&nbsp;&nbsp;&nbsp;end

&nbsp;&nbsp;&nbsp;if t_Sys&#91;#t_Sys&#93;==1 then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S2Down, S1Down, L1Up, L2Up = nil, nil, nil, nil
--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t_Sys_W&#91;#t_Sys_W+1&#93;=2
&nbsp;&nbsp;&nbsp;end
end
return S2Down, S1Down, L1Up, L2Up
end
end

function LINE(I)
local t_Lev={}
if I&#62;2 then
if t_Sys&#91;#t_Sys-1&#93;==3 then
&nbsp;&nbsp;&nbsp;for i=1, 2 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t_Lev&#91;i&#93;=C(I-i)*0.78
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t_Lev&#91;i+2&#93;=C(I-i)*1.22
&nbsp;&nbsp;&nbsp;end
end

if t_Sys&#91;#t_Sys-1&#93;==1 then
&nbsp;&nbsp;&nbsp;for i=1, 2 do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t_Lev&#91;i&#93;=C(I-i)*0.78
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t_Lev&#91;i+2&#93;=C(I-i)*1.22
&nbsp;&nbsp;&nbsp;end
end

if H(I)&#62;=t_Lev&#91;#t_Lev&#93; then&nbsp;&nbsp;-- здесь сравнение указанно как еще один вариант
--&nbsp;&nbsp;&nbsp;t_Sys&#91;#t_Sys+1&#93;=3
end
if L(I)&#60;=t_Lev&#91;1&#93; then
--&nbsp;&nbsp;&nbsp;t_Sys&#91;#t_Sys+1&#93;=1;
end
end
return t_Lev
end
</pre>
============= <br />
			<i>30.04.2019 09:25:07, Александр.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message37770/topic4485/</link>
			<guid>http://forum.quik.ru/messages/forum10/message37770/topic4485/</guid>
			<pubDate>Tue, 30 Apr 2019 09:25:07 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
