【答案解析】在Visual
Basic程序中,定时器的定时间隔属性(Interval)的单位时间是:毫秒(ms)。由题干关键信息“应用程序中每隔3秒算出曲线点(x,y)…”可知,定时器TimT的定时间隔属性(Interval)值应
设置为3000毫秒,即(1)空缺处所填写的内容是“3000”。
在[暂停]按钮(cmdStop)的CmdStop_Click()事件过程中,语句“TimT.Enabled=False”使得定时器不起作用。而本应用程序是利用定时器的定时间隔来计算曲线点,在按钮[开始](cmdStart)的CmdStart_Click()事件过程中,需要启用定时器,即(3)空缺处所填写的属性值是“True”。
在定时器timT_Timer()事件过程中,利用语句“WH=Int(Rnd*51)”随机模拟实时检测到的锅炉设备的液面高度(0cm~50cm)。用随机数模拟实时检测数据是常用的方法。Rnd是由计算机产生的均匀分布在(0,1)区间内的伪随机数。每调用一次Rnd就会产生一个新的随机数。随机取若干个数据,观察其分布特性,就会发现其在(0,1)中比较均匀分布(不会过于集中在某个小段)。从而,Rnd*51产生的随机数均匀分布于(0,51),取整数部分Int(Rnd*51)后,所产生的随机数均匀分布于0,1,…,50之间。WH=Int(Rnd*51)均匀分布于0,1,…,50之间,因此,程序中可以用WH值来模拟实时检测到的液面高度。
屏幕上的液面高度计形状控件shpMeter是固定的,其高度由其Height属性决定(shpMeter.Height),其顶部离屏幕上边的距离由其Top属性决定(shpMeter.Top)。由于液面高度计形状的属性FillsStyle默认为透明,因此水银柱(shpT)高度的变化在shpMeter中将实时可见。
水银柱(shpT)的底部应固定在液面高度计(shpMeter)的底部,水银柱的高度应随液面高度WH的变化而改变。由题干关键信息“矩形形状shpT(水银柱)的Visible属性初始设置为不可见”可知,程序设计时要求:尚未开始检测液面高度时,水银柱应不可见;启动检测后,当液面高度WH=0时,水银柱的高度为0;当液面高度WH=50时,水银柱的高度应等于液面高度计的高度:对于其他液面高度,水银拄的高度应按线性规律变化。水银柱形状shpT在屏幕上的位置取决于表4-13所列的3个属性。
{{B}}表4-13 影响水银柱属性表{{/B}}
|
属性 |
说明 |
|
shpT.Top |
顶部位置(随液面高度WH的变化而变化) |
|
shhpT.Height |
高度H(随液面高度WH的变化而变化) |
|
shp.Left |
左边位置(固定不变) |
(6)空缺处所在语句要求算出水银柱的高度,而水银柱的高度H应是液面高度WH的线性函数,其端点值如表4-14所示。
{{B}}表4-14 水银柱高度值与液面高度值对应表{{/B}}
|
液面高度WH |
水银柱高度H |
|
0 |
0 |
|
50 |
shpMeter.Height |
若按线性比例,由表4-14可得:

解得,

。因此(6)空缺处应填入“WH/50”。
(7)空缺处所在语句要求算出水银柱的顶部位置值。如图4-16所示,水银柱的顶部离屏幕上边的距离(shpT.Top)应等于液面高度计离屏幕上边的距离(shpMeter.Top)加上水银柱顶部到液面高度计顶部的距离,而后者就是液面高度计的高度(shpMeter.Height)与水银柱的高度(H)之差,即
ShpT.Top=shpMeter.Top+shpMeter.Height-H
因此(7)空缺处应填入“shpMeter.Top+shpMeter.Height-H”。
根据题干的说明可得,图片框picCurve中定义的坐标系统如图4-20所示。它与直观见到的屏幕情况不同,点坐标也不是像素值。
