程序设计方法(第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,它寓教于乐,注重教学反馈。随着读者逐步熟悉书中的内容,编程环境也会不断完备,直至可以支撑一种适用于所有编程任务的成熟语言。
— 没有更多了 —
以下为对购买帮助不大的评价