• 程序设计方法(第2版)
21年品牌 40万+商家 超1.5亿件商品

程序设计方法(第2版)

全新正版 极速发货

61.15 6.2折 99 全新

库存2件

广东广州
认证卖家担保交易快速发货售后保障

作者(美)马蒂亚斯·费雷森 等

出版社人民邮电出版社

ISBN9787115529152

出版时间2020-10

装帧平装

开本16开

定价99元

货号1202146114

上书时间2024-08-07

谢岳书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
目录
开篇:如何编程

算术3

输入和输出6

计算的多种方式10

一个程序,多个定义13

另一个定义15

现在你是一名程序员了17

不!17

部分固定大小的数据

章算术20

1.1数值的算术21

1.2字符串的算术22

1.3二者的混合23

1.4图像的算术24

1.5布尔值的算术26

1.6布尔值的混合27

1.7谓词:了解你的数据29

第2章函数和程序31

2.1函数31

2.2计算33

2.3函数的复合36

2.4全局常量38

2.5程序39

第3章程序设计方法49

3.1设计函数50

3.2熟练习题:函数54

3.3领域知识54

3.4从函数到程序54

3.5关于测试55

3.6设计世界程序56

3.7虚拟宠物世界63

第4章区间、枚举和条目65

4.1条件编程65

4.2条件计算67

4.3枚举69

4.4区间71

4.5条目75

4.6条目的设计80

4.7有限状态世界82

第5章添加结构体88

5.1从位置到posn结构体88

5.2posn的计算88

5.3posn的编程89

5.4定义结构体类型91

5.5结构体的计算94

5.6结构体的编程97

5.7数据的空间102

5.8结构体的设计105

5.9世界中的结构体106

5.10图形编辑器107

5.11再探虚拟宠物109

第6章条目和结构体111

6.1再谈条目的设计111

6.2世界的混合119

6.3输入错误121

6.4世界中的检查124

6.5相等谓词125

第7章总结127

独立章节1初级语言128

初级语言的词汇128

初级语言的文法129

初级语言的含义131

含义和计算133

初级语言中的错误133

布尔表达式135

常量定义136

结构体类型定义137

初级语言中的测试139

初级语言的错误消息140

第二部分任意大的数据

第8章链表146

8.1创建链表146

8.2()是什么,cons又是什么149

8.3用链表编程151

8.4使用链表进行计算154

第9章使用自引用数据定义进行设计156

9.1熟练习题:链表160

9.2非空链表161

9.3自然数166

9.4俄罗斯套娃168

9.5链表和世界程序171

9.6关于链表和集合174

0章再谈链表178

10.1生成链表的函数178

10.2链表中的结构体180

10.3链表中链表以及文件183

10.4再谈图形编辑器189

1章组合式设计197

11.1list函数197

11.2函数的组合199

11.3递归的辅助函数200

11.4一般化的辅助函数204

2章项目:链表212

12.1现实世界中的数据:字典212

12.2现实世界中的数据:iTunes213

12.3文字游戏—组合的示例217

12.4文字游戏—问题的核心220

12.5贪吃蛇221

12.6简单俄罗斯方块223

12.7全面太空战争225

12.8有限状态机226

3章总结231

独立章节2Quote和Unquote232

Quote232

Quasiquote和Unquote233

UnquoteSplice236

第三部分抽象

4章无处不在的相似性242

14.1函数的相似性242

14.2不同的相似性243

14.3数据定义的相似性246

14.4函数是值248

14.5函数的计算249

5章设计抽象252

15.1抽象的示例252

15.2签名的相似性255

15.3单个控制点259

15.4模板的抽象259

6章使用抽象261

16.1现有的抽象261

16.2局部定义264

16.3局部定义增强表达能力266

16.4local的计算268

16.5使用抽象的示例271

16.6用抽象设计274

16.7熟悉抽象的习题275

16.8项目中的抽象276

7章匿名函数278

17.1lambda函数278

17.2lambda的计算280

17.3用lambda抽象282

17.4用lambda制定规范284

17.5用lambda表示289

8章总结293

独立章节3作用域和抽象294

作用域294

中级语言的循环298

模式匹配304

第四部分交织的数据

9章S表达式之诗310

19.1树310

19.2森林316

19.3S表达式317

19.4对交织数据的设计321

19.5项目:二叉查找树322

19.6函数的简化325

第20章迭代改进327

20.1数据分析327

20.2数据定义的改进328

20.3函数的改进330

第21章解释器的改进332

21.1表达式的解释332

21.2变量的解释335

21.3函数的解释336

21.4解释一切338

第22章项目:XML商业340

22.1XML和S表达式340

22.2XML枚举的呈现344

22.3领域特定语言348

22.4读入XML352

第23章同时处理355

23.1同时处理两个链表:情况1355

23.2同时处理两个链表:情况2356

23.3同时处理两个链表:情况3357

23.4函数的简化360

23.5设计读入两个复杂输入的函数361

23.6熟练习题:两个输入362

23.7项目:数据库365

第24章总结374

独立章节4数值的本质375

固定大小的数值算术375

溢出379

下溢出379

教学语言中的数值380

第五部分生成递归

第25章非标准递归386

25.1无结构体的递归386

25.2忽略结构体的递归389

第26章设计算法393

26.1调整设计诀窍393

26.2终止394

26.3对比结构化递归和生成递归396

26.4做出选择397

第27章主题的变化401

27.1初试分形401

27.2二分查找403

27.3初探解析407

第28章数学的例子411

28.1牛顿法411

28.2数值积分414

28.3项目:高斯消元418

第29章回溯的算法423

29.1图的遍历423

29.2项目:回溯430

第30章总结434

独立章节5计算的成本435

具体的时间和抽象的时间436

“数量级”的定义440

为何使用谓词和选择函数442

第六部分知识的累积

第31章知识的丢失446

31.1结构处理的问题446

31.2生成递归的问题449

第32章累积器风格函数的设计453

32.1认识到需要累积器453

32.2添加累积器454

32.3将函数转换为累积器风格455

32.4带鼠标的图形编辑器464

第33章累积的更多用途466

33.1累积器和树466

33.2带累积器的数据表示470

33.3作为结果的累积器474

第34章总结479

尾声:继续前进481

内容摘要
本书从系统设计的角度出发介绍计算以及程序设计的方法和过程。全书由6个部分和5个独立章节组成,6个部分侧重于介绍程序设计,分别介绍从数值和图像等原子数据到区间、枚举、条目、结构体及其组合等新方法的基本概念,任意大的复合数据及其用途,用于创建和使用抽象的设计诀窍,迭代改进的思想,生成递归以及关于累积器的用法;5个独立章节引入编程机制和计算的概念,分别介绍教学语言的语法和语义、引用和反引用、作用域和抽象、数值的本质以及计算的成本。本书强调程序设计的计划和构建、设计诀窍、抽象和迭代改进等思想,逻辑清晰,循序渐进,示例丰富,可以指导有一定编程经验的读者系统地学习程序设计,也可作为高等院校计算机科学与技术专业程序设计导论和计算导论的教材和教学参考书。

主编推荐
1.世界知名的计算机科学家、PLT Scheme(Racket)语言的创始人Matthias Felleisen作品。
2.第2版经过了全面的修订。虽然本书仍然是在教系统化的程序设计方法,但第2版为图形界面的交互式程序和批处理程序提供了不同的设计诀窍。
3.对于函数的设计诀窍,第2版增加了很多新的提示。
4.本书使用的教学语言及其集成开发环境(IDE)现在还可以像支持数值一样支持图像,并支持测试、事件驱动编程,甚至分布式编程。

本书关注程序设计的过程,呈现程序设计的准则,向读者展示如何分析问题陈述,如何编写简明的目的声明,如何列举示例,如何开发解决方案的框架,如何完成程序,以及如何测试程序。因为学习程序设计的重点在于研究原理和获得通用技能,所以本书并没有采用现成的工业用编程语言,而是提供了专门定制的教学用编程语言。出于同样的理由,本书还提供了面向初学者的编程环境——DrRacket,它寓教于乐,注重教学反馈。随着读者逐步熟悉书中的内容,编程环境也会不断完备,直至可以支撑一种适用于所有编程任务的成熟语言。

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP