论文部分内容阅读
即便是非常简单的程序,也能做出魔术般的效果。本期提供了一些在VB6.0环境中调试通过的奇怪程序,以VB为教学环境的教师可参考使用。其实,每种程序语言或设计平台都有其自己的“奇妙特点”,希望大家举一反三,设计出吸引人的教学例程。
2<2?
以下程序,运行结果会如何呢:
x=0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25
y=0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2
If y 程序运行后居然真的显示“y
星 星 消 失
首先展示一个非常简单的VB程序的源代码:
Private Sub Form_Resize()
Print "********************"
End Sub
除去系统自动添加的代码,实际整个程序只有一行:显示一串星星。
程序运行时效果如图1所示。
图2
将程序窗口最小化后重新恢复,让人惊讶的是,一半星星失踪了,这是怎么回事呢?
时 间 变 速 器
下面这个简单程序是由一个计时器(Timer)控件和一个按钮组成的,计时器的Interval设置为10000,即10秒钟做一次动作,事件动作代码是:Print CStr(Time) " * "
程序运行后,每隔10秒在窗体上显示当前时间和一个星星,似乎一切正常,而反复点击按钮,奇怪的是,星星的出现明显变慢了!更加诡异的是,用自己的手表对照程序的时间显示走时仍然准确!这是为什么?那个神秘按钮隐藏了什么乾坤?
参考答案
2<2?
该程序显示了电脑运算中的精度误差,在数据分析中(尤其当涉及大量循环的语句时)须特别留意误差累积造成的结果偏差。
星星消失
星星其实并没消失,而是因为窗体从最小化状态恢复后,VB中用print语句打印的信息不会自动刷新;至于窗体中留存的另一半星星,是因为在事先使用label控件巧妙叠加在窗体上的。
时间变速器
按钮的触发事件动作中,是一个空循环语句,通过消耗CPU运算能力来欺骗Timer控件的时间定位,而Timer保留字却直接从系统时间读取信息,所以依然能准确显示时间。若要取得最好的演示效果,还需根据实际电脑的CPU速度来调整空循环的运算次数。
2<2?
以下程序,运行结果会如何呢:
x=0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25
y=0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2
If y
星 星 消 失
首先展示一个非常简单的VB程序的源代码:
Private Sub Form_Resize()
Print "********************"
End Sub
除去系统自动添加的代码,实际整个程序只有一行:显示一串星星。
程序运行时效果如图1所示。
图2
将程序窗口最小化后重新恢复,让人惊讶的是,一半星星失踪了,这是怎么回事呢?
时 间 变 速 器
下面这个简单程序是由一个计时器(Timer)控件和一个按钮组成的,计时器的Interval设置为10000,即10秒钟做一次动作,事件动作代码是:Print CStr(Time) " * "
程序运行后,每隔10秒在窗体上显示当前时间和一个星星,似乎一切正常,而反复点击按钮,奇怪的是,星星的出现明显变慢了!更加诡异的是,用自己的手表对照程序的时间显示走时仍然准确!这是为什么?那个神秘按钮隐藏了什么乾坤?
参考答案
2<2?
该程序显示了电脑运算中的精度误差,在数据分析中(尤其当涉及大量循环的语句时)须特别留意误差累积造成的结果偏差。
星星消失
星星其实并没消失,而是因为窗体从最小化状态恢复后,VB中用print语句打印的信息不会自动刷新;至于窗体中留存的另一半星星,是因为在事先使用label控件巧妙叠加在窗体上的。
时间变速器
按钮的触发事件动作中,是一个空循环语句,通过消耗CPU运算能力来欺骗Timer控件的时间定位,而Timer保留字却直接从系统时间读取信息,所以依然能准确显示时间。若要取得最好的演示效果,还需根据实际电脑的CPU速度来调整空循环的运算次数。