作者序
一般來說,以人工方式處理日常生活事務,只要遵循程序就能達成目標。但以下類型案例告訴我們,以人工方式來處理,不但效率低浪費時間,且不一定可以在既定時間內完成。
1. 不斷重複的問題。例:早期人們要存提款,都必須請銀行櫃檯人員辦理。在人多的時候,等候的時間就拉長。現在有了可供存提款的自動櫃員機 (ATM),存提款變成一件輕輕鬆鬆的事了。
2. 大量計算的問題。例:設 f (x) = x^100 + x^99 + ⋯ + x + 1,求f(2)。若用人工方式計算,則無法在短時間內完成。有了計算機以後,很快就能得知結果。
3. 大海撈針的問題。例:從500萬輛車子中,搜尋車牌為888-8888的汽車。若用肉眼的方式去搜尋,則曠日廢時。現在有了車輛辨識系統,很快就能發現要搜尋的車輛。
一個好的工具,能使問題處理更加方便及快速。以上案例都可利用電腦程式設計求解出來,由此可見程式設計與生活的關聯性。程式設計是一種利用電腦程式語言解決問題的工具,只要將所要處理的問題,依據程式語言的語法描述出問題之流程,電腦便會根據我們所設定之程序,完成所要的目標。
多數的程式設計初學者,因學習成效不彰,對程式設計課程興趣缺缺,進而產生排斥。導致學習效果不佳的主要原因,有下列三點:
1. 上機練習時間不夠,又加上不熟悉電腦程式語言的語法撰寫,導致花費太多時間在偵錯上,進而對學習程式設計缺乏信心。
2. 對問題的處理作業流程(或規則)不了解,或畫不出問題的流程圖。
3. 不知如何將程式設計應用在日常生活所遇到的問題上。
因此,初學者在學習程式設計時,除了要不斷上機練習,熟悉電腦程式語言的語法外,還必須了解問題的處理作業流程,才能使學習達到事半功倍的效果。
本書所撰寫之文件,若有謬錯或疏漏之處,尚祈先進及讀者們指正。謝謝!
2020/10/8 戌時
邏輯林 於大學池