程式設計基礎:從問題到程式

程式設計基礎:從問題到程式

《程式設計基礎:從問題到程式》是2011年1月1日清華大學出版社出版的圖書,作者是胡明、王紅梅。

基本介紹

  • 書名:程式設計基礎:從問題到程式
  • 出版社:清華大學出版社
  • 頁數:318頁
  • 開本:16
  • 品牌:清華大學出版社
  • 作者:胡明、王紅梅
  • 出版日期:2011年1月1日
  • 語種:簡體中文
  • ISBN:9787302239154, 7302239150
內容簡介,圖書目錄,

內容簡介

《程式設計基礎:從問題到程式》以C/C++程式設計語言為工具,以程式設計過程為主線,通過“問題→想法→算法→程式”的問題求解過程,提高學生的程式設計能力和計算思維能力。《程式設計基礎:從問題到程式》絕大部分程式設計實例(包括例題)不是單純地為了解釋語言概念,而是以任務驅動的方式,帶領學生分析問題、構造算法、應用程式設計語言解決實際問題,使學生在潛移默化中學會程式設計。《程式設計基礎:從問題到程式》適用於程式設計的初學者,主要面向沒有任何編程知識和編程經歷的讀者,遵循認知規律,科學安排知識單元之間的拓撲關係,概念清晰,實例豐富,深入淺出,是程式設計初學者的理想教材。

圖書目錄

第1章緒論 1
1.1問題求解與程式設計 1
1.1.1程式、程式設計與程式設計語言 2
1.1.2程式設計的一般過程 2
1.2算法及其描述方法 4
1.2.1算法及其特性 4
1.2.2算法的描述方法 5
1.3程式設計語言 7
1.3.1程式設計語言的發展 7
1.3.2程式設計語言的排名 10
1.4程式的基本構成 11
1.4.1基本字元集 12
1.4.2詞法單位 12
1.4.3語法單位 13
1.4.4程式 15
1.5程式的上機過程 16
1.5.1編程環境 17
1.5.2程式編輯 18
1.5.3程式編譯 19
1.5.4程式連線 21
1.5.5運行調試 23
1.6程式風格 24
1.6.1標識符的命名規則 24
1.6.2注釋 24
1.6.3縮進 25
1.6.4行文格式 25
習題1 27
第2章數據的存儲和組織 29
2.1數據的存儲介質——存儲器 29
2.1.1二進制 29
2.1.2存儲器 31
2.2數據的組織 32
2.3基本數據類型 33
2.3.1整型 34
2.3.2實型 36
2.3.3字元型 37
2.3.4邏輯型 38
習題2 39
第3章數據的基本表現形式 41
【任務3.1】計算圓的面積 41
3.1常量 41
3.1.1字面常量 42
3.1.2符號常量 44
3.2變數 45
3.2.1變數的概念 46
3.2.2變數的定義和初始化 46
3.2.3變數的賦值 48
3.2.4強制類型定義 50
3.3解決任務3.1的程式 51
3.4程式設計實例 52
3.4.1實例1——華氏溫度轉換為攝氏溫度 52
3.4.2實例2--計算本息和 52
習題3 53
第4章數據的基本處理 55
4.1輸入輸出 55
【任務4.1】計算圓的面積(改進版) 55
4.1.1輸入輸出的概念 55
4.1.2格式化輸入輸出函式 56
4.1.3解決任務4.1的程式 58
4.2數據的基本運算 59
【任務4.2】瘋狂賽車 59
4.2.1算術運算 59
4.2.2邏輯運算 61
4.2.3運算符的優先權和結合性 63
4.2.4運算對象的類型轉換 64
4.2.5解決任務4.2的程式 67
4.3程式設計實例 67
4.3.1實例1——華氏溫度轉換為攝氏溫度(改進版) 67
4.3.2實例2——通用產品代碼UPC 68
習題4 69
第5章程式的基本控制結構 71
5.1順序結構 71
【任務5.1】整數的逆值 71
5.1.1複合語句實現順序結構 72
5.1.2解決任務5.1的程式 73
5.2選擇結構 73
【任務5.2】水仙花數 73
5.2.1邏輯值控制的選擇結構 74
5.2.2算術值控制的選擇結構 78
5.2.3解決任務5.2的程式 80
5.3循環結構 80
【任務5.3】雞兔同籠問題 80
5.3.1當型循環結構 81
5.3.2直到型循環結構 83
5.3.3計數型循環結構 85
5.3.4循環結構的嵌套 87
5.3.5解決任務5.3的程式 88
5.4其他控制語句 88
【任務5.4】素數判定 88
5.4.1break語句 89
5.4.2continue語句 90
5.4.3解決任務5.4的程式 91
5.5程式設計實例 91
5.5.1實例1——百元買百雞問題 91
5.5.2實例2——歌德巴赫猜想 93
習題5 94
第6章程式的組裝單元——函式 97
6.1用戶定義的函式——自定義函式 97
【任務6.1】歐幾里得算法(函式版) 97
6.1.1函式定義 98
6.1.2函式調用 100
6.1.3函式聲明 102
6.1.4解決任務6.1的程式 103
6.2系統定義的函式——庫函式 104
【任務6.2】素數判定(函式版) 104
6.2.1頭檔案與檔案包含 104
6.2.2標準輸入輸出函式 106
6.2.3數學函式 110
6.2.4隨機函式 111
6.2.5解決任務6.2的程式 112
6.3變數的作用域 113
【任務6.3】雞兔同籠問題(全局變數版) 113
6.3.1局部變數 114
6.3.2全局變數 116
6.3.3解決任務6.3的程式 116
6.4變數的生存期 117
【任務6.4】字數統計(靜態變數版) 118
6.4.1自動變數 118
6.4.2靜態變數 119
6.4.3解決任務6.4的程式 120
6.5程式設計實例 121
6.5.1實例1——三角函式表 121
6.5.2實例2--猜數遊戲 122
習題6 124
第7章變數的間接訪問——指針 126
7.1指針 126
【任務7.1】獲取密電碼 126
7.1.1指針的概念 127
7.1.2指針變數的定義和初始化 128
7.1.3指針變數的賦值 130
7.1.4指針所指變數的間接訪問 131
7.1.5解決任務7.1的程式 132
7.2指針作為函式的參數 132
【任務7.2】雞兔同籠問題(函式版) 132
7.2.1值傳遞方式——函式的輸入 133
7.2.2指針傳遞方式——函式的輸出 134
7.2.3指針傳遞方式——函式的輸入輸出 136
7.2.4解決任務7.2的程式 138
7.3程式設計實例 139
7.3.1實例1——歌德巴赫猜想(函式版) 139
7.3.2實例2——求一元二次方程的根 141
習題7 142
第8章批量同類型數據的組織——數組 144
8.1一維數組 144
【任務8.1】舞林大會 144
8.1.1一維數組的定義和初始化 145
8.1.2一維數組的操作 147
8.1.3一維數組作為函式的參數 149
8.1.4解決任務8.1的程式 152
8.2二維數組 153
【任務8.2】幻方問題 153
8.2.1二維數組的定義和初始化 154
8.2.2二維數組的操作 156
8.2.3二維數組作為函式的參數 158
8.2.4解決任務8.2的程式 159
8.3程式設計實例 160
8.3.1實例1——對角線元素之和 160
8.3.2實例2——哥尼斯堡七橋問題 162
習題8 163
第9章字元數據的組織——字元串 165
【任務9.1】愷撒加密 165
9.1字元串變數的定義和初始化 166
9.1.1字元數組 166
9.1.2字元串指針 167
9.2字元串的操作 168
9.2.1輸入輸出操作 168
9.2.2賦值操作 172
9.2.3字元串的比較 173
9.2.4常用字元串庫函式 174
9.3解決任務9.1的程式 174
9.4程式設計實例 175
9.4.1實例1——字數統計 175
9.4.2實例2——字元串匹配 177
習題9 178
第10章自定義數據類型 181
10.1可枚舉數據的組織——枚舉類型 181
【任務10.1】荷蘭國旗問題 181
10.1.1枚舉類型的定義 182
10.1.2枚舉變數的定義與初始化 183
10.1.3枚舉變數的操作 184
10.1.4解決任務10.1的程式 185
10.2不同類型數據的組織——結構體類型 187
【任務10.2】統計入學成績 187
10.2.1結構體類型的定義 188
10.2.2結構體變數的定義和初始化 189
10.2.3結構體變數的操作 191
10.2.4解決任務10.2的程式 193
10.3批量不同類型數據的組織——結構體數組 194
【任務10.3】統計入學成績(改進版) 194
10.3.1結構體數組的定義和初始化 195
10.3.2解決任務10.3的程式 197
10.4為自定義數據類型定義別名 198
10.5程式設計實例 200
10.5.1實例1——最近對問題 200
10.5.2實例2——手機電話簿 202
習題10 204
第11章再談函式 206
11.1函式的嵌套調用 206
【任務11.1】字元串的循環左移 206
11.1.1函式的嵌套調用 207
11.1.2解決任務11.1的程式 211
11.2函式的遞歸調用 212
【任務11.2】Fibonacci數列 212
11.2.1函式的遞歸調用 212
11.2.2解決任務11.2的程式 215
11.3程式設計實例 216
11.3.1實例1——弦截法求方程的根 216
11.3.2實例2——漢諾塔問題 217
習題11 219
第12章再談指針 222
12.1指針與數組 222
【任務12.1】判斷回文 222
12.1.1指向一維數組的指針 223
12.1.2指向二維數組的指針 225
12.1.3指針數組 227
12.1.4解決任務12.1的程式 229
12.2指針與結構體 229
【任務12.2】統計入學成績(函式版) 229
12.2.1指向結構體的指針 230
12.2.2結構體指針作為函式參數 232
12.2.3解決任務12.2的程式 233
12.3動態存儲分配 234
【任務12.3】進制轉換 234
12.3.1申請和釋放存儲空間 235
12.3.2指針和鍊表 238
12.3.3解決任務12.3的程式 240
12.4程式設計實例 242
12.4.1實例1——發紙牌 242
12.4.2實例2——約瑟夫環問題 244
習題12 247
第13章再談輸入輸出——檔案 249
【任務13.1】統計入學成績(檔案版) 249
13.1概述 250
13.1.1檔案的概念 250
13.1.2文本檔案和二進制檔案 250
13.1.3檔案緩衝區 252
13.1.4檔案指針 252
13.1.5檔案的位置指針 253
13.2檔案的打開與關閉 254
13.2.1檔案的打開 254
13.2.2檔案的關閉 256
13.3檔案的讀寫操作 256
13.3.1字元方式檔案讀寫 256
13.3.2字元串方式檔案讀寫 258
13.3.3格式化方式檔案讀寫 260
13.3.4二進制方式檔案讀寫 262
13.4解決任務13.1的程式 264
13.5程式設計實例 266
13.5.1實例1——檔案複製 266
13.5.2實例2——註冊與登錄 268
習題13 270
第14章再談程式的基本結構 272
【任務14.1】石頭、剪子、布遊戲 272
14.1多檔案程式 273
14.1.1將源程式檔案分解為多個程式檔案模組 273
14.1.2構建多檔案程式 274
14.2外部變數和外部函式 276
14.2.1外部變數 276
14.2.2外部函式 278
14.3嵌套包含 279
14.3.1條件編譯 279
14.3.2保護頭檔案 281
14.4解決任務14.1的程式 283
習題14 287
第15章基本的算法設計技術 288
15.1蠻力法 288
15.1.1設計思想 288
15.1.2程式設計實例——簡單選擇排序 289
15.2窮舉法 291
15.2.1設計思想 291
15.2.2程式設計實例——假幣問題 292
15.3遞推法 295
15.3.1設計思想 295
15.3.2程式設計實例——捕魚知多少 296
15.4分治法 297
15.4.1設計思想 297
15.4.2程式設計實例——數字旋轉方陣 299
15.5動態規劃法 302
15.5.1設計思想 302
15.5.2程式設計實例——0/1背包問題 303
15.6貪心法 305
15.6.1設計思想 305
15.6.2程式設計實例——埃及分數 306
習題15 308
附錄A標準ASCII碼 310
附錄B運算符的優先權和結合性 311
附錄C常用庫函式 312
附錄D程式設計實例索引 317
參考文獻 319

相關詞條

熱門詞條

聯絡我們