學好邏輯思考力,想法就是比你快一步!
每個人都該學程式設計,因為它教你如何思考。
──史蒂夫•賈伯斯
(╳)看懂程式語言很難
(╳)不唸資訊不用學程式設計
(╳)大人才需要知道程式設計
(○)蹲馬桶也能學會程式設計
程式語言是什麼?是一種給電腦看的語言。
學會程式語言有甚麼好處?電腦只認邏輯,所以會程式語言,就等於有很棒的邏輯思考力!
培養邏輯思考力,要從小開始,連大人都頭痛的程式語言教學已經過去了,現在要教你的是超簡單的程式語言教學法!
初學程式語言,最常遇到的就是:「編譯器不好用」、「都是英文好可怕」、「程式碼一長串要從哪裡看起?」
放心,這是本給大人、小朋友都能輕鬆閱讀的科普書,書中沒有冗長的程式碼,只有簡單詼諧的敘述,不用打開範例檔也能看得懂。建議您搭配最可愛好用的「啊哈C」一起學習,學習效果加倍佳!
※快上松崗官網搜尋「啊哈C」,下載超可愛的編譯器喔!→http://www.kingsinfo.com.tw
※「啊哈C」的爸爸啊哈磊有自己的家,歡迎來看看→http://www.ahalei.com
本書特色
● 這是本可愛的小書,特別適合想了解程式的超超超級入門者
● 使用最乾淨的C語言,快速了解程式設計的邏輯思考
● 搭配本書特製的「啊哈C」編譯軟體,來場可愛的邏輯訓練吧!
媽媽妳看!網友都說好!
@百度移動雲首席布道師張輝:本書可能是最通俗易懂、生動好玩的C語言教材。
@陽光雨:不但教大家怎樣去做,關鍵是告訴大家原理!語言生動幽默,有很親切的感覺。
@家長100魚小肥:通俗易懂,可以作為孩子的程式語言啟蒙讀物,是很好的科普書,能把複雜的知識用簡單的方式表達出來。
@jocal:推薦的啊哈C編譯工具也挺好用的,簡潔明瞭!
作者簡介:
啊哈磊
原名紀磊,畢業於中國武漢大學。曾在中國科學院玩單晶片,在微軟亞洲研究院開發網路爬蟲。在國際會議上發表論文,也當過老師,是中國的全國青少年信息學奧林匹克競賽(NOI)金牌教練。非常喜歡小朋友,每天都過的很開心。為什麼叫「啊哈磊」呢?因為這是一個很討喜的名字。
新浪微博:http://weibo.com/ahalei @啊哈磊
啊哈磊的家:http://www.ahalei.com/
章節試閱
經過前面的學習,我們知道讓電腦說話是用printf,運用printf,我們想叫電腦說什麼都可以。在學會了「說話」之後,進一步要來看如何讓電腦做數學運算。首先我們讓電腦做「加法」,就先算1+2 吧。
回想一下,小時候爸爸媽媽是如何教我們算1+2 的呢?
媽媽說:「左手給你一個蘋果,右手給你兩個蘋果,現在一共有幾個蘋果?」我們迅速地思考了一下,脫口而出:「3 個蘋果」。
沒錯!我們先用大腦記住左手有幾個蘋果,再用大腦記住右手有幾個蘋果,媽媽問我們一共有幾個時,我們的大腦進行了非常快速的計算,將剛才記住的兩個數進行相加,得到結果,最後將計算出的結果說出來。
大腦計算蘋果數量的步驟
1 用大腦記住左手的蘋果數量;
2 用大腦記住右手的蘋果數量;
3 我們的大腦將兩個數字進行相加;
4 得到結果;
5 將結果輸出。
在這期間,我們大腦一共進行了以下4 個動作。
STEP 1 兩次輸入:分別是記錄左手和右手中蘋果的數量;
STEP 2 儲存了3 個值:分別是記錄左手和右手中蘋果的數量和相加的結果;
STEP 3 進行了一次計算:相加;
STEP 4 進行了一次輸出:把相加的結果輸出。
那我們要如何讓電腦做加法呢?當然也需要以上幾個步驟。
首先我們來解決,如何讓電腦像我們的大腦一樣,記住一個數字。
其實電腦的大腦就像一棟大樓,有很多一間間的「小房子」,電腦把需要記住的數值放在「小房子」裡,一個「小房子」裡只能放一個數值,這樣電腦就可以記住很多數值。好,我們來看一看實際要怎樣操作。
int a,b,c;
上面這句話代表在電腦的「大樓」中,申請三間分別叫作a、b 和c 的小房子(注意:int 和a 之間有一個空格,a、b 與c 之間分別用逗號隔開,末尾有一個分號表示結束)。
接下來,我們讓小房子a 和小房子b 分別去記錄兩個數值1 和2,語句如下:
a=1;
b=2;
所以,把小房子a 和小房子b 裡面的數相加,再將結果放到小房子c 中,就會是以下這樣:
c=a+b;
電腦會將這個式子分兩步執行:第一步先將a+b 算出來,第二步再將a+b的值給「=」右邊的c。
到此,就差不多完成了,我們總結一下:
int a,b,c;
a=1;
b=2;
c=a+b;
很多同學是不是以為,現在已經全部完成了?你忘記了最重要的一步,先別急著往下看,想一想忘記了什麼?
──啊!你忘了把答案輸出!
想一想媽媽問你一加二等於多少時,你說:「我算出來了,但是不想告訴你!」這個時候你應該少不了挨一頓揍,不要啊!
好,那我們回想一下,應該如何讓電腦把結果輸出呢?
對,使用printf 語句。那要怎麼把小房子c 裡面儲存的數值輸出呢?根據我們在本章第2 節學到的知識,只要把要輸出的內容放在雙引號裡面就可以了,語法如下:
printf("c");
那你猜這個時候電腦會輸出什麼?
對,它無情地輸出了一個c。
那要怎樣輸出c 裡面的值呢?
這時我們要讓另外一個角色出場了。
%d
%d 其實就是一個「討債的」,或者也可以說是「要飯的」。它的工作就是向別人「要錢」!那我們應該怎麼使用它呢?
printf("%d",c)
將%d 放在雙引號之間,把小房子c 放在雙引號後面,並且用逗號隔開。
這時printf 發現雙引號裡面是個「討債的」,就知道這時要輸出一個具體的數值,而不是符號,就會向雙引號後面的小房子c 討具體的數值了。
好了,最後加上C 語言的程式碼框架,電腦進行加法運算的完整程式就會是下面這樣:
#include
#include
int main()
{
int a,b,c;
a=1;
b=2;
c=a+b;
printf("%d",c);
system("pause");
return 0;
}
現在趕緊去試一試吧。
經過前面的學習,我們知道讓電腦說話是用printf,運用printf,我們想叫電腦說什麼都可以。在學會了「說話」之後,進一步要來看如何讓電腦做數學運算。首先我們讓電腦做「加法」,就先算1+2 吧。
回想一下,小時候爸爸媽媽是如何教我們算1+2 的呢?
媽媽說:「左手給你一個蘋果,右手給你兩個蘋果,現在一共有幾個蘋果?」我們迅速地思考了一下,脫口而出:「3 個蘋果」。
沒錯!我們先用大腦記住左手有幾個蘋果,再用大腦記住右手有幾個蘋果,媽媽問我們一共有幾個時,我們的大腦進行了非常快速的計算,將剛才記住的兩個數進行相加,得...
作者序
我經常被問到一個問題:當初你為什麼會去學程式設計?因為我很喜歡玩遊戲。每一個喜歡玩遊戲的人,都夢想著可以透過修改遊戲的程式,使遊戲中的自己變得非常強大,而這需要學習程式設計。其實每一個人都曾有過創造遊戲的夢想,那我們為什麼不把這種夢想變成學習的動力呢?我就是這樣踏上程式設計之路的。
強者肯• 湯普遜(Kenneth Lane Thompson)自己編寫了一個叫作《星際旅行(Star Travel)》的遊戲。而湯普遜為了能更順暢地玩這個遊戲,竟然自己動手用組合語言編寫了UNIX 作業系統。後來他覺得用組合語言寫UNIX 作業系統非常麻煩、非常辛苦,於是和另一個強者丹尼斯• 里奇(Dennis MacAlistair Ritchie)一起創造了C 語言。沒想到吧,C 語言竟然是一個強者為玩自己寫的遊戲而創造的。其實這在電腦界很正常,程式師們往往就是因為某個遊戲或者軟體的現有功能不能滿足自己的需求,才開發出了更加優秀的遊戲和軟體。本書中超可愛、超簡潔的「啊哈C」程式設計軟體也是這樣來的。
經常被問到第二個問題:為什麼普通人需要關心程式設計呢?因為現今程式設計師幾乎主宰了整個世界,控制著你我生活的各種層面。我們住的房子、穿的衣服、吃的東西、用的各種電子產品,以及我們去ATM 領錢、坐電梯、開汽車、坐飛機、坐火車⋯⋯你坐火車時有沒有想過,一條鐵軌上同時運行那麼多列火車,是如何調度才沒有導致它們相撞呢?這個時代很難想像還有什麼不是透過電腦程式控制的。如果想理解這個時代,就必須得理解電腦程式設計,程式設計會讓我們以一種全新的方式來看世界。當然,在學習程式設計的過程中還可以提高我們的邏輯推理能力、批判性思考和動手解決問題的能力。與電腦展開的邏輯較量一定會讓你覺得很有意思。
還經常被問到第三個問題:什麼樣的人可以自學程式設計,學習程式設計需要什麼基礎?答案是只需要小學四年級以上,並且可以熟練運用滑鼠和鍵盤就可以。你若不信,那就從這本書開始吧。
程式設計很容易讓我們實現夢想。如果我們覺得某個遊戲玩得不爽,或者某個軟體不夠好用,想自己做一個,沒問題,現在就可以!而唯一的投入就是一台電腦。實現夢想從未變得如此簡單過。程式設計世界裡每天都上演著傳奇,一大批熱愛程式設計並且滿懷夢想的人正在充滿激情地奮鬥著。
程式設計將會改變我們的思維,教我們如何思考,會程式設計的人總想改變點什麼。正如賈伯斯所說的:“I think everybody in this country should learn how to program a computer, should learn a computer language, because it teaches you how to think.”
我經常被問到一個問題:當初你為什麼會去學程式設計?因為我很喜歡玩遊戲。每一個喜歡玩遊戲的人,都夢想著可以透過修改遊戲的程式,使遊戲中的自己變得非常強大,而這需要學習程式設計。其實每一個人都曾有過創造遊戲的夢想,那我們為什麼不把這種夢想變成學習的動力呢?我就是這樣踏上程式設計之路的。
強者肯• 湯普遜(Kenneth Lane Thompson)自己編寫了一個叫作《星際旅行(Star Travel)》的遊戲。而湯普遜為了能更順暢地玩這個遊戲,竟然自己動手用組合語言編寫了UNIX 作業系統。後來他覺得用組合語言寫UNIX 作業系統非常麻煩、非...
目錄
第1章 程式設計改變你的思考方式
第1 節 為什麼要學程式設計
第2 節 這本書是講什麼的、寫給誰看的?
第2章 夢想起飛啦!
第1 節 程式設計的魔力
第2 節 讓電腦開口說話
第3 節 彩色一點嘛
第4 節 讓電腦做加法
第5 節 數值的家──變數
第6 節 資料輸出──我說什麼就什麼
第7 節 資料登錄──叫你算什麼就算什麼
第8 節 究竟有多少種小房子啊
第9 節 撥雲見日
第10 節 邏輯挑戰1:交換小房子裡的數
第11 節 天啊!這怎麼看得懂
第3章 較量才剛剛開始
第1 節 大於、小於還是等於
第2 節 判斷正數
第3 節 偶數判斷
第4 節 神器else
第5 節 請告訴我誰大
第6 節 邏輯挑戰2:3 個數怎麼辦
第7 節 邏輯挑戰3:我要排序
第8 節 運算子整理
第9 節 1 > 2 究竟對不對
第10 節 討厭的巢狀
第11 節 if-else 語法總結
第4章 重量級選手登場
第1 節 停不下來的哭聲
第2 節 我說幾遍就幾遍
第3 節 if 對while 說:我對你很重要
第4 節 求和!求和!!求和!!!
第5 節 邏輯挑戰4:60 秒倒數計時開始
第6 節 這個會暈頭啦──巢狀迴圈來啦
第7 節 邏輯挑戰5:奔跑的字母
第8 節 究竟迴圈了幾次
第9 節 邏輯挑戰6:奔跑的小人
第10 節 for 隆重登場
第5章 好戲在後頭
第1 節 程式的3 種結構
第2 節 囉嗦一下
第3 節 邏輯挑戰7:判讀質數很簡單
第4 節 更快一點:break
第5 節 continue
第6 節 邏輯挑戰8:驗證哥德巴赫猜想
第7 節 邏輯挑戰9:水仙花數
第8 節 邏輯挑戰10:解決奧數難題
第9 節 邏輯挑戰11:終極密碼
第10 節 邏輯挑戰12:你好壞,怎麼關機了
第6章 天啊!一堆數字正在逼近
第1 節 反向輸出
第2 節 申請100 個小房子怎麼辦
第3 節 100 個數的反向
第4 節 邏輯挑戰13:陶陶摘蘋果
第5 節 邏輯挑戰14:一個蘿蔔一個坑
第6 節 邏輯挑戰15:選擇排序
第7 節 二維陣列
第8 節 剩下的一些東西
第7章 有了它,你能做更多事
第1 節 字元的妙用
第2 節 多餘的Enter 鍵
第3 節 字元的本質
第4 節 怎麼儲存人名呢
第5 節 邏輯挑戰16:字母的排序
第6 節 邏輯挑戰17:字典排序
第7 節 多行字元
第8 節 儲存一個迷宮
第8章 遊戲時間到了
第1 節 走迷宮
第2 節 推箱子
附錄A 識別字命名規則
附錄B 運算子的優先順序和結合性
第1章 程式設計改變你的思考方式
第1 節 為什麼要學程式設計
第2 節 這本書是講什麼的、寫給誰看的?
第2章 夢想起飛啦!
第1 節 程式設計的魔力
第2 節 讓電腦開口說話
第3 節 彩色一點嘛
第4 節 讓電腦做加法
第5 節 數值的家──變數
第6 節 資料輸出──我說什麼就什麼
第7 節 資料登錄──叫你算什麼就算什麼
第8 節 究竟有多少種小房子啊
第9 節 撥雲見日
第10 節 邏輯挑戰1:交換小房子裡的數
第11 節 天啊!這怎麼看得懂
第3章 較量才剛剛開始
第1 節 大於、小於還是等於
第2 節 判斷正數
第3 節 偶數判...