年輕那會兒,參加自考。這一說得是二十多年前的事兒了。
計算機軟件專業(yè)的課程里,有很多要上機考試,主考院校是北大,所以經(jīng)常去考試??颇坑羞壿嬰娐?、匯編、編譯系統(tǒng)、C語言什么的。我一度懷疑,我一個文青,一定是鬼上身,才報考了工科計算機的!
有一年,我記得是數(shù)據(jù)庫上機考試。考的是Foxbase。那會兒,F(xiàn)oxbase算是比較先進的關(guān)系數(shù)據(jù)庫語言了。
一早兒八點先去學(xué)校拿考題,然后給一個上午的準備時間,下午一點半上機考試。教材的作者耿素云和屈婉玲兩位老師正好是當(dāng)天的監(jiān)考。
考題拿到手一看:“用數(shù)據(jù)庫做一個翻譯器,將輸入的任意四位阿拉伯?dāng)?shù)字,翻譯為相應(yīng)的中文繁體金額。”大伙兒有的不明白啥意思?于是老師解釋道:比如輸入“152”這個數(shù)字,輸出應(yīng)該是“壹佰伍拾貳元整”。
考題既然拿到手了,下面的問題就是準備了。
大伙兒都知道,編程這東西,不親自上機跑跑是不行的,往往是紙上雄兵百萬,一上機就完蛋!可那會兒甭說我窮學(xué)生一個,就是有錢,在那個年代也沒有筆記本兒??!于是我死皮賴臉的跟著四五個相熟的考生一起,到西門外的一個考生家中去蹭電腦。
我一個蹭電腦的生人,顯然是只能在邊兒上看著。
時間一分一秒的過去……
經(jīng)過漫長的搗鼓,他們幾個終于編出了一個不是玩意兒的玩意兒。之所以這么說,是因為那幾個人耗費了兩個半小時編的程序,不僅邏輯混亂,而且BUG不斷,幾乎連程序都跑不通。
最后終于是磕磕絆絆的跑通了程序,但還是存在一致命的BUG。比如輸入“150”,就會輸出“壹佰伍拾零元整”,這顯然是不行的。更別說輸入“1002”這樣的數(shù)字了,他們的程序居然輸出“壹仟零佰零拾貳元整”,這簡直就不像人話!
我那會兒年少氣盛,于是站在旁邊兒悠悠的說了一句:“干脆也別找問題了,重新編吧!”其實我當(dāng)時心里想的是:“就你們那三百多行的彎兒彎兒繞程序,都系了死疙瘩了。任你是誰,一時半會兒也斷不出個子丑寅卯來!找錯兒比重新編還費勁呢!”
他們一起歪著頭兒對我行注目禮,那意思好像是說:“還有一個多小時就上機考試了,重寫?鬧哪?!”
其實,他們那個程序也能湊活用,只要老師不出上述那樣的數(shù)字就行!可鬼知道老師出什么數(shù)字來驗證呢?!
反正是話不投機半句多!他們既然草草收了場,我也就可以堂而皇之的蹭他們的電腦用了。于是我按照早已寫好的草稿,一邊想一邊開始敲程序……
半個小時后,程序基本出來了。
因為我增加了前溯和后溯判斷。這樣,使“150”這樣的數(shù)字不僅能夠正確輸出為“壹佰伍拾元整”,而且也能判斷出個位后面有沒有小數(shù)位。我還將輸入變量由浮點數(shù)改為了字符串,并相應(yīng)增加了字符串轉(zhuǎn)數(shù)字的預(yù)處理功能。這樣就能識別輸入的任意長度的數(shù)字,并正確輸出為相應(yīng)的中文繁體金額。
比如像“1000527002.24”這樣的數(shù)字,會被正確輸出為“拾億零伍拾貳萬柒仟零貳元貳角四分”。大家注意到?jīng)]有,這個長數(shù)字之中的多個零都在輸出時被省略掉了,之所以沒有出現(xiàn)“拾億零仟萬零佰萬……”這樣的問題,就是前溯判斷的作用!
輸入變量改為字符串后,我的程序的彈性也變得很大。即便輸入二百位的數(shù)字,也可以正確輸出。不過那個輸出的數(shù)字極大,光“億”這個字就占了半個屏幕!
當(dāng)半個屏幕的“億”字出現(xiàn)在屏幕上時,起初他們幾個還以為是亂碼兒,便站在四下里哈哈的大笑……等他們明白過來的時候,可把這幫小瞧人的榆木腦殼驚著了!
大伙兒瞬間興奮了起來!
正好到了飯點兒,主人有學(xué)一食堂的飯卡,便張羅著去打飯,囑咐我繼續(xù)完善程序。
這根本不用他囑咐。因為編程和寫作一樣,是會上癮的!再說有免費的午飯供著,怎么也得好好干哪!
可午飯買回來我一看,就是一袋子學(xué)一食堂的包子,還是豬肉洋白菜的。大伙兒都明白吧,食堂的豬肉洋白菜餡里,能見得著豬肉嗎?北大?北大也一樣??!而且包子早已被壓得癟癟的,半涼不熱的。
可我實在是餓了。再怎么說也是腦力工作呀,而且時間緊任務(wù)重的!于是我三下五除二的,湊活墊補墊補得了。
做完最后的掃尾工作,已是下午一點來鐘了。把程序打印出來,大伙兒人手一份兒。能不能帶進考場就全看他們幾個的運氣了。反正我是用不著夾帶了,都印腦子里了。再說我這小程序,邏輯清晰語句簡練,總共也沒超過一百行代碼。
下午準點考試。
在昏暗的計算機機房里,只聽到二三十人此起彼伏的敲打鍵盤的聲音,偶爾有一兩聲訝異的嘶嘶聲或無能為力的嘆氣聲。
我氣定神閑的把程序一口氣兒敲進去,然后輸入幾組四位任意的數(shù)字驗證一下。最后,又試著輸入了一組超長的數(shù)字。
當(dāng)正確的中文結(jié)果顯現(xiàn)在屏幕上的時候,我突然側(cè)頭發(fā)現(xiàn),耿老師已微笑著站在了我的身后。
交卷兒,跟老師揮手道別。
夏日午后的陽光,還是熱辣辣的,而我卻倍感輕松。
信步往南門兒走去,正好從學(xué)一食堂經(jīng)過。想想中午吃的包子和一幫不勞而獲的所謂同學(xué),除了覺得心里堵得慌外,油然生出一種對前途的黯淡之情。
心里不禁想:奶奶的,以后決不能當(dāng)碼農(nóng)!