{譯}學習新編程語言的15個練習

    不得不停下來思考一下我們該如何學習一門新的編程語言。
    過去的三年裏,學習了數種編程語言,特別是頭兩年,差不多不下十種吧。語言的學習是編程工作的第一步,是基礎。除非是學習一門新類型的語言,否則編程語言的學習最多隻是成爲一種應用,而非真的算學習了。當然,我想達到這種境界,也是需要一定的前提的,前提應該是精通一到兩門語言,有大量的編程實踐,並對多種語言有所涉獵。但是如果是學習一門新的語言時候,我想情況不同了,比如從結構化的語言到面向對象,或者到函數編程,或者到邏輯編程,到腳本等等。這種跳躍性的學習確實會帶來思維上的轉變,因此就不能小視了。
    不管哪種語言的學習,除了哪上一本精通或者寶典之類翻看外,最好的辦法我想就是寫寫小demo,編譯運行一下,調試一下。不是麼?就好比看到了一個錘子,我們不是拿着它仔細端詳,而是拿它找個東西錘兩下,這樣上手纔會更快嘛。
    今天看到一篇老外的文章叫"15 Exercises for Learning a new Programming Language",覺着挺好的,以後啥新語言,上來先一個流程走一邊,我想語言就差不多能學個大概了。原文見這裏:http://www.jobsnake.com/seek/articles/index.cgi?openarticle&8533,下面是我的翻譯。
    (前面的話我就略過了,我就直接翻譯那15個練習了,^_^)
1.用無窮循環顯示一列數(1,2,3,4,5...),當按下某個鍵時(比如esc鍵),程序退出。
2.Fibonacci序列,交換兩個變量,找到一列數種的最大/最小數。
3.從鍵盤接受數或字符序列,並對它們按升序,降序排列。
4.Reynolds number is calculated using formula (D*v*rho)/mu Where D = Diameter, V= velocity, rho = density mu = viscosity
Write a program that will accept all values in appropriate units (Don't worry about unit conversion)
If number is < 2100, display Laminar flow,
If it.s between 2100 and 4000 display 'Transient flow' and
if more than '4000', display 'Turbulent Flow' (If, else, then...)
(抱歉這個不翻了,一堆專業術語,大家自己google一下吧,反正寫程序沒問題,不過是幾個分支,一個公式罷了)
5.修改上面的程序,當問"你想再次計算麼(y/n)"時,如果選擇'y',會再問參數;如果'n',程序退出。
當程序參數mu爲0時,程序會發生什麼?會提示除0錯麼?
程序會顯示"Segmentation fault..core dump?"這樣的信息麼?如何處理這樣的情況?語言本身內建支持這樣的異常處理麼?
6.科學計算器程序,支持加,減,乘,除,平方根,平方,立方,sin,cos, tan, Factorial, inverse, modulus。
7.以不同的格式打印輸出。
8.打開一個文本文件,並將其轉換爲HTML文件。
9.時間與日期:獲得系統時間,並將它用不同格式進行轉換。
10.用日期與時間戳加名稱創建文件。
11.輸入爲HTML表格,去掉所有的標籤,並將數據存放在逗號或TAB分隔文件中。
12.從一個文件中抽取出大寫單詞和唯一的單詞。
13.實現自動換行功能。
14.在數組的開始,中間和結尾添加/移除元素。
15.你的語言支持這些功能麼:操作符重載,虛函數,引用,指針等?
你的語言支持命名空間,包,模塊麼?

原文地址:http://blog.csdn.net/luckheadline

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章