※隨書附贈資料檔光碟
※了解程式邏輯,帶你解決日常生活中的問題!
※理論與程式案例互相搭配,學習記憶更深刻!
※過關斬將!附有大學程式設計先修檢測(APCS)試題解析。
擁有一個好的工具,處理問題會更方便又快速。程式設計是一種利用電腦程式語言解決問題的工具,只需將所要處理的問題,依據程式的語法描述出問題的流程,電腦便會根據我們所設定的程序,完成目標。
本書是一本適合高中職生閱讀的C++語言自學書,從說明何謂程式,逐步介紹C++語言的語法,搭配程式範例,實際操作與撰寫,精進對程式語言的熟練度及興趣。每個章節末附有大學程式設計先修檢測(APCS)試題解析,提供給未來想申請大學資訊相關科系的高中職生一個明確的學習方向。
章節試閱
Chapter 1 電腦程式語言介紹
1-1 物件導向程式設計
使用任何一種電腦程式語言所撰寫的程式指令集,稱之為電腦程式。而撰寫程式的過程,稱之為程式設計。
程式設計方式可分成下列兩種類型:
1. 第一類為程序導向程式設計 (Procedural Programming):設計者依據解決問題的程序,完成電腦程式的撰寫,程式執行時電腦會依據流程進行各項工作的處理。
2. 第二類為物件導向程式設計 (Object Oriented Programming, OOP)。它結合程序導向程式設計的原理與真實世界中的物件觀念,建立物件與真實問題間的互動關係,使程式在維護、除錯,及新功能擴充上更容易。
何謂物件 (Object) 呢?物件是具有屬性及方法的實體,例:人、汽車、火車、飛機、電腦等。這些實體都具有屬於自己的特徵及行為,其中特徵以屬性 (Properties) 來表示,而行為則以方法 (Methods) 來描述。物件可以藉由它所擁有的方法,改變它擁有的屬性值及與不同的物件溝通。例:人具有胃、嘴巴等屬性,及吃、說等方法。可藉由「吃」這個方法,來降低胃的飢餓程度;可藉由「說」這個方法,與別人溝通或傳達訊息。因此,OOP 就是模擬真實世界之物件運作模式的一種程式設計概念。常見 OOP 的電腦程式語言有 C++、Visual Basic、Visual C#、Java 等。本書主要以介紹 C++ 程式語言為主。
以 C++ 程式語言解決問題的程式設計程序如下:
1. 分析問題。
2. 構思問題的處理步驟,並繪出流程圖。
3. 選擇熟悉的電腦程式語言,並依據流程圖撰寫程式。
4. 程式執行結果,若符合問題的需求,則結束;否則須重新檢視程序1~3。
1-2 C++ 語言簡介
Dennis Ritchie 和 Ken Thompson 為了研發 UNIX 系統,在 1972 年於AT&T 貝爾實驗室發表 C 語言。之後,許多研究或學術單位都依據 DennisRitchie 和 Ken Thompson 所著的 C programming language,發展各自的 C 語言編譯器,導致缺乏統一標準及產生許多的缺失。為了統一 C 語言標準,美國國家標準局 (American National Standards Institute, ANSI) 於 1983年成立特別委員會,且於 1989 年完成 C 語言的國際標準語法制定,並稱之為 ANSI C。
Chapter 1 電腦程式語言介紹
1-1 物件導向程式設計
使用任何一種電腦程式語言所撰寫的程式指令集,稱之為電腦程式。而撰寫程式的過程,稱之為程式設計。
程式設計方式可分成下列兩種類型:
1. 第一類為程序導向程式設計 (Procedural Programming):設計者依據解決問題的程序,完成電腦程式的撰寫,程式執行時電腦會依據流程進行各項工作的處理。
2. 第二類為物件導向程式設計 (Object Oriented Programming, OOP)。它結合程序導向程式設計的原理與真實世界中的物件觀念,建立物件與真實問題間的互動關係,使程式...
作者序
一般來說,以人工方式處理日常生活事務,只要遵循程序就能達成目標。但以下類型案例告訴我們,以人工方式來處理,不但效率低浪費時間,且不一定可以在既定時間內完成。
1. 不斷重複的問題。例:早期人們要存提款,都必須請銀行櫃檯人員辦理。在人多的時候,等候的時間就拉長。現在有了可供存提款的自動櫃員機 (ATM),存提款變成一件輕輕鬆鬆的事了。
2. 大量計算的問題。例:設 f (x) = x^100 + x^99 + ⋯ + x + 1,求f(2)。若用人工方式計算,則無法在短時間內完成。有了計算機以後,很快就能得知結果。
3. 大海撈針的問題。例:從500萬輛車子中,搜尋車牌為888-8888的汽車。若用肉眼的方式去搜尋,則曠日廢時。現在有了車輛辨識系統,很快就能發現要搜尋的車輛。
一個好的工具,能使問題處理更加方便及快速。以上案例都可利用電腦程式設計求解出來,由此可見程式設計與生活的關聯性。程式設計是一種利用電腦程式語言解決問題的工具,只要將所要處理的問題,依據程式語言的語法描述出問題之流程,電腦便會根據我們所設定之程序,完成所要的目標。
多數的程式設計初學者,因學習成效不彰,對程式設計課程興趣缺缺,進而產生排斥。導致學習效果不佳的主要原因,有下列三點:
1. 上機練習時間不夠,又加上不熟悉電腦程式語言的語法撰寫,導致花費太多時間在偵錯上,進而對學習程式設計缺乏信心。
2. 對問題的處理作業流程(或規則)不了解,或畫不出問題的流程圖。
3. 不知如何將程式設計應用在日常生活所遇到的問題上。
因此,初學者在學習程式設計時,除了要不斷上機練習,熟悉電腦程式語言的語法外,還必須了解問題的處理作業流程,才能使學習達到事半功倍的效果。
本書所撰寫之文件,若有謬錯或疏漏之處,尚祈先進及讀者們指正。謝謝!
一般來說,以人工方式處理日常生活事務,只要遵循程序就能達成目標。但以下類型案例告訴我們,以人工方式來處理,不但效率低浪費時間,且不一定可以在既定時間內完成。
1. 不斷重複的問題。例:早期人們要存提款,都必須請銀行櫃檯人員辦理。在人多的時候,等候的時間就拉長。現在有了可供存提款的自動櫃員機 (ATM),存提款變成一件輕輕鬆鬆的事了。
2. 大量計算的問題。例:設 f (x) = x^100 + x^99 + ⋯ + x + 1,求f(2)。若用人工方式計算,則無法在短時間內完成。有了計算機以後,很快就能得知結果。
3. 大海撈針的...
目錄
Chapter 1 電腦程式語言介紹
1-1 物件導向程式設計
1-2 C++ 語言簡介
1-3 C++ 語言之架構
1-4 良好的程式撰寫習慣
1-5 程式撰寫常疏忽的問題
1-6 Code::Blocks 軟體簡介
1-7 提升讀者對程式設計之興趣
1-8 隨書光碟之使用說明
1-9 大學程式設計先修檢測 (Advanced Placement Computer Science, APCS)
大學程式設計先修檢測 (APCS) 試題解析
Chapter 2 資料型態
2-1 資料型態
2-2 識別字
2-3 常數與變數宣告
2-4 資料處理
2-5 運算子的優先順序
2-6 資料型態轉換
大學程式設計先修檢測 (APCS) 試題解析
Chapter 3 資料輸入與資料輸出
3-1 資料輸出
3-2 資料輸入
3-3 非標準輸入函式
3-4 浮點數之準確度
大學程式設計先修檢測 (APCS) 試題解析
Chapter 4 流程控制
4-1 程式流程控制
4-2 選擇結構
4-3 巢狀選擇結構
大學程式設計先修檢測 (APCS) 試題解析
Chapter 5 迴路結構
5-1 迴路結構
5-2 break 與 continue 敘述
5-3 其他迴路應用範例
大學程式設計先修檢測 (APCS) 試題解析
Chapter 6 內建函式
6-1 常用的 C++ 語言內建函式
6-2 數學函式
6-3 字元函式
Chapter 7 陣列
7-1 陣列變數宣告
7-2 排序與搜尋
7-3 二維陣列變數
7-4 字串
7-5 隨機亂數
大學程式設計先修檢測 (APCS) 試題解析
Chapter 8 自訂函式
8-1 函式定義
8-2 函式宣告
8-3 函式呼叫
8-4 參數型態為陣列的函式
8-5 益智遊戲範例
大學程式設計先修檢測 (APCS) 試題解析
Chapter 9 遞迴函式
9-1 遞迴
9-2 合併排序法 (Merge Sort)
9-3 益智遊戲範例
大學程式設計先修檢測 (APCS) 試題解析
Chapter 10 指標
10-1 一重指標變數
10-2 一重指標變數與一維陣列元素
10-3 一重指標變數與二維陣列元素
10-4 雙重指標變數
大學程式設計先修檢測 (APCS) 試題解析
Chapter 11 自訂資料型態
11-1 結構 (Structure)
11-2 巢狀結構
11-3 串列 (List)
11-4 堆疊 (Stack) 及佇列 (Queue)
11-5 樹 (Tree)
11-6 動態配置記憶體
大學程式設計先修檢測 (APCS) 試題解析
Chapter 1 電腦程式語言介紹
1-1 物件導向程式設計
1-2 C++ 語言簡介
1-3 C++ 語言之架構
1-4 良好的程式撰寫習慣
1-5 程式撰寫常疏忽的問題
1-6 Code::Blocks 軟體簡介
1-7 提升讀者對程式設計之興趣
1-8 隨書光碟之使用說明
1-9 大學程式設計先修檢測 (Advanced Placement Computer Science, APCS)
大學程式設計先修檢測 (APCS) 試題解析
Chapter 2 資料型態
2-1 資料型態
2-2 識別字
2-3 常數與變數宣告
2-4 資料處理
2-5 運算子的優先順序
2-6 資料型態轉換
大學程式設計先修檢測 (APCS) 試...