- C/C++實踐進階之道:寫給程序員看的編程書
- 陳黎娟
- 1771字
- 2020-06-29 11:37:45
6-8 三小時你可以學會FORTRAN
當你對一種開發語言的掌握達到一定的程度之后,學習另外一種開發語言或者工具,基本上不會浪費多少時間,關鍵是看你對程序設計語言規則的理解程度。一般來說,當你理解了順序選擇循環三種結構可以構成所有程序,理解了函數可以給程序分模塊之后,基本上這些程序設計語言相通的規則你都理解了。當然,我所說得學會,是掌握基本的東西,有一些技巧性的東西特別是這個語言獨有的東西,肯定需要一定的開發時間積累才能掌握。
因為工作和學習的需要,經常要用很短時間掌握一門語言,然后用到某個項目上。當你通過編寫一些簡單代碼,測試了解了一門語言的三種結構和函數的定義與調用之后,基本上基于某個開發工具完成一些簡單的項目,會沒什么問題了。想要深入理解和應用,當然還要買一些資料來學習。下面介紹一下經歷過的用很短時間掌握的開發工具。
大四的時候,有一天,一個老鄉來找我,說她考研要考FORTRAN,希望我幫她輔導一下,從所有的老鄉口中,聽說我特別會開發,講問題還相當清晰,特意來找我。
其實我基本不認識她,一個是老鄉的忙一定要幫,另外也是這番恭維有效果,我就找了個機房輔導她。
老實說,在這之前我學習過FORTRAN。但因為是大一時科學計算相關的課程,早就忘了,我們學習FORTRAN的時候,還在小型機上,學校開這門課的目的,我后來分析,就是讓學生理解計算機做科學計算的特點,或者熟悉鍵盤,相當于現在的大學計算機基礎。PC上的FORTRAN編譯程序,從來沒有接觸過。
她也學過FORTRAN,并且又復習了這么久。但就是不會上機調試。我當時想:高技術我不會,教你學會基本的調試,問題并不大。
我拿過她的FORTRAN圖書。找了一個比較典型的完整程序,給她輔導:
我先把FORTRAN語言抽絲剝繭,把基本的東西掌握,后面你就在這個基礎上復習就簡單多了。
你也學過兩門開發語言了。任何語言都有變量的定義,運算符,表達式這些基本的東西。
變量的定義太簡單了,就是在內存中確立一個變量存儲空間,運算符就是中學數學的東西。加上表達式就是基本語句了。
還有,為了程序模塊化,一般的開發語言都提供了函數的機制。
我們就選擇一個典型的程序,把FORTRAN語言最基本的東西都包含進去。
然后就按照書的目錄,把這個程序用到書中的語法,一一和書中的內容對應講解了一下。
這個復習結束,花了半個多小時。然后我說,現在我們把這個典型程序輸入進去。再存盤。
等她輸入完了。我問她說:對了,你是不是連最簡單的程序都沒有調試通過?
她說是。
哦,我說,那不行,我們要從最簡單的入手。
然后我快速找了一個。存盤開始調試。你看書上寫得很清楚,我們按照這個步驟來。
記得當時的FORTRAN編譯器很奇怪,要for1,for2兩次才成功。
中途出現一個錯誤報告,我十分歡喜,要的就是這個效果。問她這個錯誤提示是什么意思。
她說:好像說有個字符錯了。
對嘛,只要你英語夠好,怎么能不會編寫程序呢?編寫程序是最簡單的活了。你現在去修改這個字符。
然后她便去修改了,后面的流程全部成功。
你看,其實開發程序特別簡單。
你只是碰計算機不多,對書上寫的流程,有些不明白。其實你英語這么好,就像讀英文課文一樣,沒有比這個更簡單的事情了。
現在你編譯剛才的那個大程序。
呵呵,你看錯誤這么多,打字很不用心。快看錯誤提示。
“這個提示是什么意思呢?”
“很簡單,關鍵你要學會查編譯錯誤的意思。
你看書后面的這個附錄。以后你碰到相似的問題就看后面就好了。”
“還有就是,有些錯誤是相關聯的。
如果一個錯誤你解決不了,可以看下面一個。有時候解決了一個錯誤,很多錯誤再編譯就沒有了。因為計算機很笨的,不會提示你先解決關鍵錯誤。”
等她把這個程序調試出結果,我說:
“你把這個程序修改一下看看,加幾句自己的東西。
其實這是一個提高的好辦法,閱讀和修改別人的程序。”
“還有,程序能編譯通過運行。只能說程序沒有錯了,其實可能你自己的邏輯卻錯了。
本來你想調用這個函數打印一次,結果你把它整成循環了。就打印了很多次。
這種問題,屬于沒有得到你想要的結果,這才是最可怕的問題。因為你自己的腦袋要清楚。
要自己想到每個語句的結果,只有這樣,時間久了,你的程序才不會出現這些問題。
到時候,編譯工具會幫你查找語法錯誤,很容易就一次通過了。
當然,如果你只是為了對付考試,會編譯就行了。”
最后,這位老鄉在我的幫助下,學會了自己修改編寫并調試簡單的FORTRAN程序,只用了三個小時。
再后來,這位老鄉考上了研究生。當然,FORTRAN在考研中并不是最關鍵的三科之一。