陳凱
如今,當人們用手指在平板電腦上觸摸虛擬琴弦彈奏音樂,或是在PC上敲打鍵盤輸入文字的時候,并不會有意識地感覺到,自己正在做一些其實很神奇的事情——回望使用打孔紙帶或穿孔卡片輸入數據的時代,鍵盤和觸摸屏都是可想而不可及的。
可惜,現在很少有人能真的搬來讀帶機和讀卡機,重溫這段并不算太久遠的歷史了。本文所介紹的幾個模擬實驗,不僅僅是向前人致敬,更是為了能夠借助實驗,體驗一下在整體環境限制和約束的情況下,努力尋求方法策略以突破技術瓶頸的態度。
● 答題卡中的二進制加法
現在的學生常常會在考試中使用到答題卡,讀卡機就是一臺計算機——當然是專用計算機,它讀取答題卡上的信息并對這些信息進行處理(不用說,所謂的處理其實就是根據各題分值計算總分)。如圖1所示,左側教師的分值設置卡有四個選項,分別是0.5分、1分、2分和4分,若0.5分不用,那么1分、2分和4分的數字恰好對應著二進制數字1、10、100的十進制的值。這么一來,只要預先將選擇題答案設成一致,就可以將考試用的讀卡評分系統改造成一個二進制加法器了。在答題卡上涂對答案就表示二進制數字1,而涂錯答案就代表二進制數字0。略有遺憾的是,由于分值設置卡中最高的分值是4,所以每個加法項的數字不能大于7,即1、2和4加起來的和。結合分值設置卡觀察這份答題卡,能猜出其中所進行的數學加法運算到底是什么嗎?
如果上網搜索“穿孔卡片”或“Punch card”,會發現那些古老的數據記錄介質和答題卡長得頗為相似,為提高穿孔卡片的利用率,一般通過多個孔位的組合來編碼信息,而不像本文中所用到的答題卡,一組選項中只能劃出一個答案。
● 塑料帶數據輸入儀
雖然不能真的做一個紙帶讀帶機,但實現塑料帶數據輸入,還是相當容易的。所謂塑料帶,其實就是將透明無花紋塑料袋剪成帶狀,然后用油性筆在帶子上涂上條紋(不要涂得太均勻),以作為將要輸入到計算機中的數據,當光敏元件掃過條紋時,就能讀入數據。不過,所謂的“光敏元件”在哪里可以找到呢?鍵盤邊上就是,光電鼠標就可以拿來當掃描器用。
如圖2所示的塑料帶中,有些條紋涂得粗一點,可以當作數字1,有些細一點,當作數字0。光電鼠標每次掃過條紋,就能讀進一個數字:0或1(真正的打孔紙帶能一次讀入一個ASCII碼)。這個裝置的運行原理就是,當光電鼠標在透明的塑料帶上滑過時,鼠標基本不動,而在經過油性筆涂成的條紋時,鼠標就會移動,這時,只要判斷鼠標移過的距離,就能判斷塑料帶上究竟是0還是1了。實現語言和具體編程方法可能各不相同,參考答案中給出了一個用Visual Basic實現的簡易方法,用到了一個Command控件和一個Timer控件,代碼只有十幾行而已(參考答案在本期內找)。