程序設(shè)計(jì)基礎(chǔ)(原書第3版)
定 價(jià):79 元
叢書名:計(jì)算機(jī)科學(xué)叢書
- 作者:[美] 托尼·加迪斯(Tony Gaddis)
- 出版時(shí)間:2018/5/1
- ISBN:9787111596806
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311
- 頁(yè)碼:418
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書教授編程概念和解決問題的技巧,所使用的方法獨(dú)立于具體的編程語言,且不需要讀者有任何編程經(jīng)驗(yàn)。內(nèi)容不僅包括數(shù)據(jù)類型、變量、輸入、輸出、控制結(jié)構(gòu)、模塊、函數(shù)、數(shù)組和文件,還有面向?qū)ο蟮母拍、GUI開發(fā)和事件驅(qū)動(dòng)編程。配套的教學(xué)資源也十分豐富,包括復(fù)習(xí)中的答案、編程練習(xí)中的解決方案、PPT和試題庫(kù)。此外,在本書的相應(yīng)網(wǎng)站上還提供了用各種語言實(shí)現(xiàn)的書中偽代碼對(duì)應(yīng)的程序。本書適合作為學(xué)習(xí)具體語言之前的先導(dǎo)編程邏輯課程,也可以是入門編程課程的部分。
前 言Starting Out with Programming Logic & Design, Third Edition歡迎學(xué)習(xí)本書第3版。本書教授編程概念以及解決問題的技巧,所使用的方法獨(dú)立于具體的編程語言,不需要讀者擁有任何編程經(jīng)驗(yàn)。使用易于理解的偽代碼、流程圖和其他工具來學(xué)習(xí)程序邏輯的設(shè)計(jì),規(guī)避了語法的困擾。
本書的基本主題不僅包括數(shù)據(jù)類型、變量、輸入、輸出、控制結(jié)構(gòu)、模塊、函數(shù)、數(shù)組和文件,還有面向?qū)ο蟮母拍、GUI開發(fā)和事件驅(qū)動(dòng)編程。本書文字清晰易懂,讓學(xué)生感到友好和親切。
本書各章都提供了大量的程序設(shè)計(jì)示例。短的示例突出編程主題,長(zhǎng)的示例集中于問題求解。每章至少包括一個(gè)“重點(diǎn)聚焦”小節(jié),對(duì)一個(gè)具體的問題逐步分析和求解。
本書是學(xué)習(xí)編程邏輯的理想選擇,在用具體的語言學(xué)習(xí)編程基礎(chǔ)之前,本書可以作為先導(dǎo)。
第3版的變化本書的教學(xué)方法、內(nèi)容組織和寫作風(fēng)格與上一版保持一致,但也做了很多改進(jìn),概括如下:
詳細(xì)指導(dǎo)學(xué)生設(shè)計(jì)他們的第一個(gè)程序第2章增加了2.8節(jié)。這一節(jié)將展示從分析一個(gè)問題到確定它的需求的全過程。在這個(gè)過程中將用一個(gè)示例使學(xué)生了解如何確定一個(gè)程序的輸入、處理和輸出,然后編寫偽代碼和繪制流程圖。
在第2章的“重點(diǎn)聚焦”小節(jié),還添加了一個(gè)新內(nèi)容,以計(jì)算手機(jī)超時(shí)費(fèi)用為例,演示了從確定手動(dòng)計(jì)算的步驟到將這些步驟轉(zhuǎn)換為計(jì)算機(jī)算法的過程。
新調(diào)試練習(xí)大部分章節(jié)都添加了一組新的調(diào)試練習(xí)。讓學(xué)生檢查一組偽代碼算法并識(shí)別其中的邏輯錯(cuò)誤。
流程圖和偽代碼之間的一致性更高在整本書中,許多流程圖已經(jīng)修改,使它們與偽代碼之間的聯(lián)系更緊密。
嵌套重復(fù)結(jié)構(gòu)擴(kuò)展在5.6節(jié)擴(kuò)展了一個(gè)示例。
附加重復(fù)結(jié)構(gòu)的可視化說明在第5章的Do-While和For循環(huán)部分添加了新的可視化說明。
文件規(guī)范文檔和打印間隔圖文件規(guī)范文檔和打印間隔圖在第10章討論。
新的編程語言伴侶增加了新的語言伴侶Python 3和C++。本書的語言伴侶都可以在網(wǎng)站www.pearson-h-i-ghered.com/gaddis上找到。
各章簡(jiǎn)介第1章,首先簡(jiǎn)要介紹計(jì)算機(jī)的工作原理、數(shù)據(jù)的存儲(chǔ)和操作方式,以及為什么我們用高級(jí)語言編寫程序。
第2章,介紹程序開發(fā)周期、數(shù)據(jù)類型、變量和順序結(jié)構(gòu)。學(xué)習(xí)使用偽代碼和流程圖來設(shè)計(jì)簡(jiǎn)單程序,包括讀取輸入、執(zhí)行數(shù)學(xué)運(yùn)算和生成屏幕輸出。
第3章,演示模塊化程序和自頂向下設(shè)計(jì)方法的好處。學(xué)習(xí)定義和調(diào)用模塊、給模塊傳遞實(shí)參、使用局部變量。引入層次結(jié)構(gòu)圖作為設(shè)計(jì)工具。
第4章,介紹關(guān)系運(yùn)算符和布爾表達(dá)式,以及用決策結(jié)構(gòu)進(jìn)行程序流程控制的方法。還介紹If-Then、If-Then-Else和If-Then-Else If語句、嵌套決策結(jié)構(gòu)、邏輯運(yùn)算符、Case結(jié)構(gòu)。
第5章,學(xué)習(xí)用循環(huán)創(chuàng)建循環(huán)結(jié)構(gòu)的方法。包括While、Do-While、Do-Until和For循環(huán),還有計(jì)數(shù)器、累加器、運(yùn)行總和和哨兵。
第6章,首先討論通用庫(kù)函數(shù),例如生成隨機(jī)數(shù)的函數(shù)。然后,在學(xué)習(xí)如何調(diào)用庫(kù)函數(shù)以及如何使用函數(shù)返回值之后,學(xué)習(xí)如何定義和調(diào)用自定義函數(shù)。
第7章,討論用戶輸入驗(yàn)證的重要性。學(xué)習(xí)編寫用于錯(cuò)誤陷阱的輸入驗(yàn)證循環(huán)。討論的內(nèi)容還有:防御性編程、對(duì)明顯和不明顯錯(cuò)誤進(jìn)行預(yù)測(cè)的重要性。
第8章,學(xué)習(xí)一維數(shù)組和二維數(shù)組的創(chuàng)建和使用。包含許多數(shù)組處理的示例,包括對(duì)一維數(shù)組元素求和、計(jì)算平均值、求數(shù)組最大值和最小值,以及對(duì)二維數(shù)組的行、列和全部元素求和。還演示了使用并行數(shù)組進(jìn)行編程的技術(shù)。
第9章,學(xué)習(xí)數(shù)組排序和數(shù)組元素查找的基礎(chǔ)算法。包括的內(nèi)容有:起泡排序、選擇排序、插入排序和折半查找算法。
第10章,介紹順序文件的輸入和輸出。學(xué)習(xí)讀取和寫入大集合數(shù)據(jù),將數(shù)據(jù)另存為字段或記錄,設(shè)計(jì)可用于處理文件和數(shù)組的程序。該章最后討論了中斷處理控制。
第11章,講述如何設(shè)計(jì)程序,該程序顯示菜單,并根據(jù)用戶的菜單選項(xiàng)來執(zhí)行。該章還討論了模塊化菜單驅(qū)動(dòng)程序的重要性。
第12章,詳細(xì)討論文本處理。包括對(duì)字符串逐個(gè)字符處理的算法,用于字符和文本處理的若干常用庫(kù)函數(shù)。
第13章,討論遞歸及其用途。提供遞歸調(diào)用過程的可視化跟蹤,討論遞歸應(yīng)用程序。給出許多遞歸算法,例如計(jì)算階乘、求最大公約數(shù)(GCD)、數(shù)組求和、折半查找,還有經(jīng)典的漢諾塔算法。
第14章,將過程化和面向?qū)ο蟮木幊踢M(jìn)行了比較。包含類和對(duì)象的基本概念,討論了域、方法、訪問規(guī)范、構(gòu)造函數(shù)、訪問器和變異器。學(xué)習(xí)如何使用UML來對(duì)類建模、如何在特定問題中尋找類。
第15章,討論GUI應(yīng)用程序的基本內(nèi)容,以及如何使用可視化設(shè)計(jì)工具(如Visual Studio或NetBeans)構(gòu)建圖形用戶界面。學(xué)生要學(xué)習(xí)事件是如何在GUI應(yīng)用程序中工作的,以及如何編寫事件處理程序。
附錄,列出了ASCII字符集,與前127個(gè)Unicode字符編碼相同。
內(nèi)容組織本書以逐步推進(jìn)的方式講授編程邏輯和設(shè)計(jì)。每一章都包含一組主題,學(xué)生只要按部就班地學(xué)習(xí),就可以掌握本書的知識(shí)。雖然這些章節(jié)按照現(xiàn)有的順序可以很輕松地講授,但還是有一些靈活性。圖P-1顯示了各章之間的依賴關(guān)系。 每個(gè)框代表一章或幾章。箭頭指向(即
托尼•加迪斯(Tony Gaddis)在北卡羅來納州的海伍德社區(qū)學(xué)院講授“計(jì)算機(jī)編程語言”“操作系統(tǒng)”和“物理”課程。他在1994年被評(píng)為北卡羅來納社區(qū)學(xué)院的“年度佳教師”,并在1997年獲得“教學(xué)卓越獎(jiǎng)”。Tony也提供對(duì)公司和機(jī)構(gòu)(包括NASA的肯尼迪航天中心)的培訓(xùn)。他著有《Starting Out with C++》和《Starting Out with Java》,并與人合著了《Starting Out with Visual Basic 2005》等。
目 錄
Starting Out with Programming Logic & Design, Third Edition
出版者的話
譯者序
前言
第1章 計(jì)算機(jī)與程序設(shè)計(jì)導(dǎo)論 1
1.1 引言 1
1.2 硬件 2
1.3 計(jì)算機(jī)是如何存儲(chǔ)數(shù)據(jù)的 5
1.4 程序是如何執(zhí)行的 8
1.5 軟件的種類 14
復(fù)習(xí) 15
第2章 輸入、處理和輸出 18
2.1 設(shè)計(jì)一個(gè)程序 18
2.2 輸出、輸入和變量 21
2.3 變量賦值和計(jì)算 27
重點(diǎn)聚焦:計(jì)算手機(jī)的超時(shí)話費(fèi) 29
重點(diǎn)聚焦:計(jì)算百分比 31
重點(diǎn)聚焦:計(jì)算平均值 32
重點(diǎn)聚焦: 將一個(gè)數(shù)學(xué)公式轉(zhuǎn)換為編程語句 34
2.4 變量聲明和數(shù)據(jù)類型 36
2.5 命名常量 40
2.6 手動(dòng)跟蹤程序 41
2.7 程序文檔 42
重點(diǎn)聚焦: 使用命名常量、風(fēng)格約定和注釋 43
2.8 設(shè)計(jì)你的第一個(gè)程序 44
復(fù)習(xí) 47
第3章 模塊 52
3.1 模塊簡(jiǎn)介 52
3.2 定義和調(diào)用模塊 53
重點(diǎn)聚焦:模塊的定義和調(diào)用 57
3.3 局部變量 61
3.4 將參數(shù)傳遞給模塊 63
重點(diǎn)聚焦: 將一個(gè)實(shí)參傳給一個(gè)模塊 66
重點(diǎn)聚焦: 通過引用傳遞一個(gè)實(shí)參 71
3.5 全局變量和全局常量 73
重點(diǎn)聚焦:使用全局常量 74
復(fù)習(xí) 76
第4章 決策結(jié)構(gòu)和布爾邏輯 82
4.1 決策結(jié)構(gòu)簡(jiǎn)介 82
重點(diǎn)聚焦:使用If-Then語句 86
4.2 雙重選擇決策結(jié)構(gòu) 88
重點(diǎn)聚焦:使用If-Then-Else語句 89
4.3 比較字符串 92
4.4 嵌套決策結(jié)構(gòu) 95
重點(diǎn)聚焦:決策結(jié)構(gòu)的多重嵌套 98
4.5 Case結(jié)構(gòu) 101
重點(diǎn)聚焦:使用Case結(jié)構(gòu) 103
4.6 邏輯運(yùn)算符 105
4.7 布爾變量 110
復(fù)習(xí) 111
第5章 循環(huán)結(jié)構(gòu) 116
5.1 循環(huán)結(jié)構(gòu)簡(jiǎn)介 116
5.2 條件控制循環(huán): While、Do-While和 Do-Until 117
重點(diǎn)聚焦:設(shè)計(jì)一個(gè)While循環(huán) 120
重點(diǎn)聚焦: 設(shè)計(jì)一個(gè)Do-While循環(huán) 126
5.3 計(jì)數(shù)控制循環(huán)和For語句 130
重點(diǎn)聚焦: 使用For語句設(shè)計(jì)一個(gè)計(jì)數(shù)控制循環(huán) 135
5.4 計(jì)算運(yùn)行總和 143
5.5 哨兵 145
重點(diǎn)聚焦:如何使用哨兵 146
5.6 嵌套循環(huán) 148
復(fù)習(xí) 151
第6章 函數(shù) 155
6.1 函數(shù)簡(jiǎn)介:生成隨機(jī)數(shù) 155
重點(diǎn)聚焦:使用隨機(jī)數(shù) 157
重點(diǎn)聚焦:用隨機(jī)數(shù)表示其他值 158
6.2 寫自己的函數(shù) 161
重點(diǎn)聚焦:基于函數(shù)的模塊化 165
6.3 更多的庫(kù)函數(shù) 172
復(fù)習(xí) 181
第7章 輸入驗(yàn)證 185
7.1 垃圾入,垃圾出 185
7.2 輸入驗(yàn)證循環(huán) 186
重點(diǎn)聚焦: 設(shè)計(jì)一個(gè)輸入驗(yàn)證循環(huán) 187
7.3 防御性編程 191
復(fù)習(xí) 192
第8章 數(shù)組 195
8.1 數(shù)組基礎(chǔ)知識(shí) 195
重點(diǎn)聚焦: 在數(shù)學(xué)表達(dá)式中使用數(shù)組元素 199
8.2 數(shù)組的順序搜索 206
8.3 數(shù)組的數(shù)據(jù)處理 210
重點(diǎn)聚焦:處理數(shù)組 216
8.4 并行數(shù)組 221
重點(diǎn)聚焦:并行數(shù)組的應(yīng)用 221
8.5 二維數(shù)組 224
重點(diǎn)聚焦:二維數(shù)組的應(yīng)用 227
8.6 三維或高維數(shù)組 231
復(fù)習(xí) 232
第9章 數(shù)組的排序和查找 237
9.1 起泡排序算法 237
重點(diǎn)聚焦:使用起泡排序算法 242
9.2 選擇排序算法 248
9.3 插入排序算法 253
9.4 折半查找算法 257
重點(diǎn)聚焦:使用折半查找算法 260
復(fù)習(xí) 262
第10章 文件 266
10.1 文件的輸入和輸出 266
10.2 采用循環(huán)處理文件 275
重點(diǎn)聚焦:處理文件 278
10.3 使用文件和數(shù)組 282
10.4 處理記錄 283
重點(diǎn)聚焦:添加和顯示記錄 286
重點(diǎn)聚焦:搜索記錄 289
重點(diǎn)聚焦:修改記錄 290
重點(diǎn)聚焦:刪除記錄 295
10.5 控制中斷邏輯 297
重點(diǎn)聚焦:使用控制中斷邏輯 298
復(fù)習(xí) 302
第11章 菜單驅(qū)動(dòng)程序 306
11.1 菜單驅(qū)動(dòng)程序簡(jiǎn)介 306
11.2 模塊化菜單驅(qū)動(dòng)程序 314
11.3 使用循環(huán)重復(fù)菜單 318
重點(diǎn)聚焦:設(shè)計(jì)菜單驅(qū)動(dòng)程序 320
11.4 多級(jí)菜單 332
復(fù)習(xí) 336
第12章 文本處理 340
12.1 引言 340
12.2 逐字符文本處理 341
重點(diǎn)聚焦:密碼驗(yàn)證 343
重點(diǎn)聚焦: 電話號(hào)碼格式化和去格式化 347
復(fù)習(xí) 351
第13章 遞歸 356
13.1 遞歸介紹 356
13.2 遞歸求解 358
13.3 遞歸算法舉例 361
復(fù)習(xí) 369
第14章 面向?qū)ο笤O(shè)計(jì) 372
14.1 過程化編程及面向?qū)ο缶幊? 372
14.2 類 374
14.3 使用統(tǒng)一建模語言來設(shè)計(jì)類 383
14.4 尋找一個(gè)問題中的類及其功能 384
重點(diǎn)聚焦:尋找一個(gè)問題中的類 384
重點(diǎn)聚焦:定義類的功能 387
14.5 類的繼承 392
14.6 類的多態(tài)性 397
復(fù)習(xí) 401
第15章 GUI應(yīng)用程序和事件驅(qū)動(dòng)編程 405
15.1 圖形交互界面 405
15.2 設(shè)計(jì)GUI程序的用戶接口 407
重點(diǎn)聚焦:設(shè)計(jì)一個(gè)窗口 410
15.3 編寫事件處理程序 412
重點(diǎn)聚焦: 設(shè)計(jì)一個(gè)事件處理程序 414
復(fù)習(xí) 415
附錄 ASCII/Unicode字符 418