即便是非常簡單的程序,也能做出魔術(shù)般的效果。本期提供了一些在VB6.0環(huán)境中調(diào)試通過的奇怪程序,以VB為教學(xué)環(huán)境的教師可參考使用。其實,每種程序語言或設(shè)計平臺都有其自己的“奇妙特點”,希望大家舉一反三,設(shè)計出吸引人的教學(xué)例程。
2<2?
以下程序,運行結(jié)果會如何呢:
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
除去系統(tǒng)自動添加的代碼,實際整個程序只有一行:顯示一串星星。
程序運行時效果如圖1所示。
圖1
最小化恢復(fù)后效果如圖2所示。
圖2
將程序窗口最小化后重新恢復(fù),讓人驚訝的是,一半星星失蹤了,這是怎么回事呢?
時 間 變 速 器
下面這個簡單程序是由一個計時器(Timer)控件和一個按鈕組成的,計時器的Interval設(shè)置為10000,即10秒鐘做一次動作,事件動作代碼是:Print CStr(Time) + " * "
程序運行后,每隔10秒在窗體上顯示當(dāng)前時間和一個星星,似乎一切正常,而反復(fù)點擊按鈕,奇怪的是,星星的出現(xiàn)明顯變慢了!更加詭異的是,用自己的手表對照程序的時間顯示走時仍然準(zhǔn)確!這是為什么?那個神秘按鈕隱藏了什么乾坤?
參考答案
2<2?
該程序顯示了電腦運算中的精度誤差,在數(shù)據(jù)分析中(尤其當(dāng)涉及大量循環(huán)的語句時)須特別留意誤差累積造成的結(jié)果偏差。
星星消失
星星其實并沒消失,而是因為窗體從最小化狀態(tài)恢復(fù)后,VB中用print語句打印的信息不會自動刷新;至于窗體中留存的另一半星星,是因為在事先使用label控件巧妙疊加在窗體上的。
時間變速器
按鈕的觸發(fā)事件動作中,是一個空循環(huán)語句,通過消耗CPU運算能力來欺騙Timer控件的時間定位,而Timer保留字卻直接從系統(tǒng)時間讀取信息,所以依然能準(zhǔn)確顯示時間。若要取得最好的演示效果,還需根據(jù)實際電腦的CPU速度來調(diào)整空循環(huán)的運算次數(shù)。