程序设计方法.[美]Matthias Felleisen(带书签文字版).pdf

时间:2022-02-21 07:44:03
【文件属性】:

文件名称:程序设计方法.[美]Matthias Felleisen(带书签文字版).pdf

文件大小:3MB

文件格式:PDF

更新时间:2022-02-21 07:44:03

程序设计 方法 架构 编程 面向对象

国外著名高等院校信息科学与技术优秀教材:本书以Scheme语言为基础介,绍计算和程序设计的一般理论,具体讨论了程序设计、基于数据驱动的程序设计基础、程序设计中的抽象问题等。 第一部分 简单数据的处理 18 第1章 学生,教师和计算机 18 第2章 数、表达式和简单程序 19 2.1 数和算术运算 19 2.2 变量和程序 20 2.3 字处理问题 23 2.4 错误 23 2.5 设计程序 25 第3章 程序就是函数加上变量定义 27 3.1 函数复合 28 3.2 变量定义 30 3.3 复合函数练习 31 第4章 条件表达式和函数 32 4.1 布尔类型和关系 32 4.2 函数和测试条件 34 4.3 条件和条件函数 37 4.4 条件函数的设计 39 第5章 非数值信息 42 5.1 符号的手工练习 44 第6章 复合数据之一,结构体 45 6.1 结构体 结构体 45 6.2 补充练习:绘制简单图形 47 6.3 结构体定义 49 6.4 数据定义 52 6.5 设计处理复合数据的函数 53 6.6 补充练习: 圆和长方形的移动 57 6.7 补充练习:刽子手游戏 61 第7章 数据的多样性 62 7.1 数据混合与区分 63 7.2 设计处理混合数据的函数 66 7.3 再论函数复合 69 7.4 补充练习:图形的移动 72 7.5 输入错误 72 第8章 语法和语义 74 8.1 Scheme 的词汇 74 8.2 Scheme 的文法 75 8.3 Scheme 的含义 76 8.4 错误 79 8.5 布尔值表达式 81 8.6 变量定义 82 8.7 结构体的定义 83 第二部分 任意数目数据的处理 86 第9章 复合数据类型之二:表 86 9.1 表 86 9.2 任意长的表的数据定义 89 9.3 处理任意长的表 90 9.4 处理自引用数据的函数 92 9.5 更多关于简单表的例子 94 第10章 表的进一步处理 97 10.1 返回表的函数 97 10.2 包含结构体的表 101 10.3 补充练习:移动图像 105 第11章 自然数 106 11.1 定义自然数 107 11.2 处理任意大的自然数 108 11.3 补充练习:创建表,测试函数 110 11.4 自然数的另一种数据定义 111 11.5 更多与自然数有关的性质 115 第12章 三论函数复合 116 12.1 设计复杂的程序 116 12.2 递归的辅助函数 117 12.3 问题泛化与函数泛化 120 12.4 补充练习:字母的重新排列 123 第13章 用 list 构造表 125 第三部分 再论任意大数据的处理 129 第14章 再论自引用数据定义 129 14.1 结构体中的结构体 129 14.2 补充练习: 二叉搜索树 135 14.3 表中的表 138 14.4 补充练习: Scheme 求值 140 第15章 相互引用的数据定义 141 15.1 由结构体组成的表,结构体中的表 142 15.2 为相互引用的定义设计函数 146 15.3 补充练习:网页再谈 148 第16章 反复精化设计 148 16.1 数据分析 149 16.2 定义数据类型,再改进它们 150 16.3 改进函数和程序 152 第17章 处理两种复杂数据 153 17.1 同时处理两个表:第一种情况 153 17.2 同时处理两个表:第二种情况 155 17.3 同时处理两个表:第三种情况 157 17.4 函数的简化 160 17.5 设计读入两个复杂输入的函数 161 17.6 处理两个复杂输入的练习 162 17.7 补充练习: Scheme 求值之二 165 17.8 相等与测试 166 第18章 局部定义和词汇的范围 172 18.1 用 local 组织程序 172 18.2 辖域和块结构 183 第四部分 抽象设计 187 第19章 定义的相似性 187 19.1 函数的类似之处 187 19.2 数据定义的类似之处 193 第20章 函数也是值 196 20.1 语法和语义 197 20.2 抽象和多态函数的合约 198 第21章 抽象设计的例子 201 21.1 从实例中抽象 201 21.2 抽象表处理函数的练习 205 21.3 抽象与唯一控制点 206 21.4 补充练习:再论移动图像 207 21.5 注意:由模板设计抽象 208 第22章 使用函数设计抽象 209 22.1 返回函数的函数 210 22.2 把函数当成值来设计抽象 211 22.3 图形用户界面初探 213 第23章 数学方面的例子 218 23.1 数列和级数 219 23.2 等差数列和等差级数 220 23.3 等比数列和等比级数 221 23.4 函数曲线下方的面积 223 23.5 函数的斜率 225 第24章 定义匿名函数 229 24.1 lambda 表达式的语法 229 24.2 lambda 表达式的辖域和语义 230 24.3 lambda 表达式的语用 232 第五部分 生成递归 233 第25章 一种新的递归形式 233 25.1 为桌上的一个球建立模型 233 25.2 快速排序 236 第26章 设计算法 239 26.1 终止 240 26.2 结构递归和生成递归的比较 243 26.3 做出选择 243 第27章 主题的变更 246 27.1 分形 247 27.2 从文件到行,从表到表的表 251 27.3 二分查找 254 27.4 牛顿法 258 27.5 补充练习: 高斯消去法 259 第28章 回溯算法 263 28.1 图的遍历 263 28.2 补充练习: 皇后之间的相互阻碍 267 第29章 计算的代价、向量 268 29.1 具体的时间和抽象的时间 269 29.2 “阶”的定义 272 29.3 向量初探 274 第六部分 知识累积 283 第30章 知识的丢失 283 30.1 一个关于结构处理的问题 283 30.2 一个关于生成递归的问题 286 第31章 设计带累积器的函数 288 31.1 认识累积器的必要性 289 31.2 带累积器的函数 289 31.3 把函数转换成带累积器的变体 291 第32章 使用累积器的更多例子 298 32.1 补充练习:有关树的累积器 298 32.2 补充练习:传教士和食人者问题 302 32.3 补充练习:单人跳棋 304 第33章 非精确数的本质 305 33.1 固定长度的数的算术运算 305 33.2 上溢出 309 33.3 下溢出 309 33.4 DrScheme 数 310 第七部分 改变变量的状态 312 第34章 函数的记忆 312 第35章 对变量赋值 315 35.1 简单的、能工作的赋值 315 35.2 顺序计算表达式 316 35.3 赋值和函数 318 35.4 第一个有用的例子 320 第36章 设计有记忆的函数 322 36.1 对记忆的需求 322 36.2 记忆与状态变量 323 36.3 初始化记忆的函数 324 36.4 改变记忆的函数 325 第37章 使用记忆的例子 329 37.1 状态的初始化 329 37.2 与用户交互并改变状态 331 37.3 在递归中改变状态 338 37.4 状态变量的练习 342 37.5 补充练习:探索 343 第38章 最终的语法和语义 345 38.1 Advanced Scheme 的词汇 345 38.2 Advanced Scheme 的语法 345 38.3 Advanced Scheme 的含义 347 38.4 Advanced Scheme 中的错误 357 第八部分 复合值的改变 361 第39章 封装 361 39.1 状态变量的抽象 361 39.2 封装练习 368 第40章 可改变的结构体 369 40.1 由函数得出结构体 370 40.2 可变泛函结构体 372 40.3 可变的结构体 374 40.4 可变的向量 379 40.5 改变变量,改变结构体 380 第41章 设计改变结构体的函数 383 41.1 为什么改变结构体 383 41.2 结构体的设计诀窍与变化器之一 384 41.3 结构体的设计诀窍与变化器之二 392 41.4 补充练习:最后一次移动图像 401 第42章 相等 401 42.1 外延相等 401 42.2 内涵相等 402 第43章 修改结构体、向量和对象 404 43.1 关于向量的更多练习 404 43.2 循环结构体的收集 415 43.3 状态的回溯 423 结语 425 计算 425 程序设计 425 与时俱进 426


网友评论