首页 > 解决方案 > 使不断增加的正数流按比例缩小和倒计时

问题描述

我有一个主变量按顺序生成从 0 到 1000000 的数字

我希望第一个 0 到 200000 由包含 0 计数到 100000 的子变量捕获(与主变量同步,并且从主变量的 100001 到 200000 ,从 99999 倒数到 0 倒数

我的语言是 ksp ( c 友好 ) 并且计数看起来像这样

on init
      declare $master (0,1000000)  {**create master with it's range**)
      declare $child (0,100000)    {**create child with it's range**}
end on 

on ui_control ($master)     {**when the master generates numbers**}
    if (in_range($master,0,100000))
        $child := $master   {**assign master's value to child when in range**}
    end if
    if (in_range($master,100001,200000))
        $child := ???         {**count backwards from 99999 to 0 please**}
    end if
end on

所以我的问题是我写什么代码让孩子把 100001 到 200000 当作 99999 到 0 倒数,因为主人生成 100001 到 200000?我有一个可用的 abs 运算符,我可以毫无问题地使用负数,这是我需要以某种方式使用的吗?我以前不必解决这类问题..

正如您可能意识到的那样,对于其余的价值观,将会有其他孩子,但如果我能做到这一点,他们都会遵循相同的模式。

标签: maththeory

解决方案


好的,我将继续在这里回答我自己的问题。如果您是 ksp 用户并且遇到此问题,您可以加载以下答案并观看它的工作情况。

on init
    declare $new_value
    declare ui_slider $master (0,1000000)
    message("")
end on

on ui_control ($master)
   $new_value := abs ($master - 1000000)

    message ($master & "  :::: " & $new_value)
end on

推荐阅读