寫程式一點都不難!
寫程式很難嗎?
看了本書,中文系的學生也能輕鬆上手!
內含習題解答,教你寫出簡易的
電腦放榜系統、選修課程系統、存貨管理系統!
李家同教授:「這本書的特色是強調邏輯思考,很多中文系的學生都能因此而寫500行的程式。」
李家同教授長期關注台灣教育,了解台灣學生學習問題的癥結,在教學指導上,總是從最基本的概念循序解說,幫助學生釐清觀念,並加強習題演練。
李教授著有《專門替中國人寫的英文課本》、《專門為中學生寫的數學課本》等系列暢銷叢書,幫助許多學生成功克服了英文及數學的學習障礙。
美國加州大學柏克萊校區電機博士、曾任清華大學資訊研究所所長的李教授,也看到了學生對於程式設計的學習恐懼及困難之處,特地規劃撰寫了本書,期望透過簡明的步驟解說,讓學習者更容易理解,邏輯思考更清晰,人人都能輕鬆寫出程式。
作者:李家同
現為國立清華大學鈺寶科技榮譽講座教授。
國立臺灣大學電機工程學系學士,美國加州大學柏克萊校區電機及計算機博士。
曾任靜宜大學校長、暨南大學校長、清華大學代理校長,以及總統府無給職資政等。
研究領域為符號邏輯、演算法設計分析、生物計算、生物資訊等。
曾獲得許多獎項的肯定,包括科技部連續五屆傑出研究獎、教育部工科部學術獎、侯金堆傑出榮譽獎等,同時也是美國電機電子學會榮譽會員。
序
第一章 最簡單的程式
第二章 有if指令的程式
第三章 有for迴圈指令的程式
第四章 有while迴圈指令的程式
第五章 陣列
第六章 副程式
第七章 檔案的應用
第八章 遞迴程式
第九章 排序
第十章 C語言Structure的功能
第十一章 字串處理的指令
第十二章 簡易電腦放榜系統
第十三章 簡易的選修課程系統
第十四章 存貨管理系統
第十五章 如何設計大程式
01-11練習題解答
李家同
寫程式一點也不難
我唸博士班的時候,系上規定學生都要會寫程式,我當時不會,也不可能在一週內學會,只好央求那位助教網開一面;助教是個好人,就讓我混過去了。但是我寫博士論文,必須寫程式,我已是博士生,當然不能去選任何寫程式的課,好在我要用的程式語言是LISP,教科書裡有好多例子,我就無師自通了。
以後,我通過資格考了,系上要我授課,而我教的是組合語言的程式(Assembly Language Programming),我教以前,聽都沒有聽過「組合語言」。修課的全是大學三年級的學生,他們是「天下程式一大抄」,常常是好多份作業一模一樣,我問他們是怎麼一回事,他們說“We worktogether”。理由也一大堆,最常用的理由是要打工。我一直以為寫程式沒有什麼了不起,人人都可以學會的。有一次,我看到一位學生在寫程式,他對天花板發呆一陣子,然後寫一段,又再陷入沉思,我當時還以為他在寫小說。我問他程式的流程圖畫出來沒有,他根本不知流程圖為何物,當然也從不畫流程圖。這有點像造橋的工程師沒有設計圖的觀念,一切都在腦子裡。
我慢慢地發現了一件怪事:好多學生不會寫程式,而且我國有大批的同學沒有流程圖的觀念,老師也不太強調流程圖,他們花很多時間在教程式語言,如:C 語言。這些語言極為複雜,學生學得昏頭轉向,覺得寫程式好難,就是學不會。
其實,寫程式一點也不難,我們總需要告訴親友如何到你家來的,以我家為例,我住新竹,台北如有人要來找我,我會給他以下的指令:
(1)到台北轉運站,搭乘任何一家走高速公路的客運到新竹。
(2)在交通大學站下車。
(3)向前走,碰到第A個紅綠燈,就向左轉,上B街。
(4)看到左邊第C個加油站,向右轉,上D街。
(5)我家在D街E號F樓G號。
以上的全部指令,就是一個流程圖。
我們都有看食譜的習慣,每一個食譜都是一個流程圖。最簡單的食譜是做水果茶的食譜:
(1)將你想吃的水果,如:柚子和柳丁,壓成汁。
(2)加入蜂蜜和檸檬汁。
(3)加熱至沸騰。
(4)加入紅茶包,攪動後即是水果茶。
如果你感冒了,醫生會開一些藥給你,然後叫你每天吃一服,一旦退燒兩天之久,即可停止服藥,如果五天以後,仍然發燒,就應回診。這些話,可以用以下的流程圖來表示:
寫程式,最重要的是要先有流程圖,一旦流程圖畫出來了,程式馬上也會跟著出來,理由非常簡單,我們只要學會一些程式語言的規則,就會將一個流程圖轉換成一個程式。可是反過來說,如果一個人在寫程式以前,根本畫不出來流程圖,那就休想寫程式了。
我認為我們老師教寫程式,應該集中心力教會學生如何設計流程圖,而不該浪費太多的時間在教程式語言,因為流程圖的設計才是寫程式最重要的一個工作。我們之所以有很多學生不太會寫程式,絕不是因為他的程式語言沒有學會,而是他的邏輯思考根本不行,使得他設計不出流程圖。我們寫程式的人如果不會邏輯思考,那就一切免談。
我的這一本書就強調邏輯思考的重要性,也用大量的例子來教學生如何設計流程圖,我在很多大學利用這本書教非資訊系的學生,我可以非常驕傲地說,很多文學院和管理學院的學生都輕鬆地學會了寫程式。就以本書的第十三章為例,那一個簡易的選修課程系統就是文學院學生寫的。
希望大家知道,寫程式並不難,關鍵全在如何設計流程圖,對於沒有寫過程式的人來說,設計流程圖並不簡單,所以我在這一本書裡面用很多的例子來教大家如何先設計流程圖,再寫程式。這本書一共有十五章。
在此強調我們用的程式語言是C語言,所使用的編譯器是Dev-C++4.9.9.2。讀者如果用錯了編譯器版本可能會出問題。
我在此謝謝很多我的學生和朋友,他們幫了很大的忙,尤其是靜宜大學的蔡英德教授和中興大學的林金賢教授。我曾用這本書教了叫做周照庭的同學,他並不是資工系的學生,但他已會做書中的全部習題,現在應該算是一位會寫程式的人了。