本书在初版的基础上,内容取舍、概念叙述和例题选择更加科学而严密,全面地介绍了PASCAL语言的数据类型、语句及结构特点,系统地讲述了程序设计方法,特别是自顶向下逐步求精的结构化程序设计‘方法,并强调培养良好的程序设计风格和习惯。讲述力求理论联系实际、深入浅出、通俗易懂。\r\n\r\n 全书共分十二章。第一章介绍必要的基本知识。第二章到第五章介绍结构化程序的四种基本结构(顺序、选择、重复、函数与过程)的设计方法,以及PASCAL的标准数据类型和基本语句。第六章到第十一章介绍PASCAL的各种用户定义数据类型(枚举、子界、数组、集合、记录、文件和指针)及其程序设计。第十二章介绍其它余留问题。每章后面均附有习题。\r\n\r\n 本书可作为高等院校计算机软件、硬件专业或其它专业的计算机程序设计教学用书、也可作为从容计算机应用的科技人员的自学或培训教材。\r\n\r\n 为了配合本书的学习,并由郑启华老师新编了与本书配套的《PASCAL程序设计习题与选解(新编)》,可供学习时参考使用。\r\n\r\n \r\n
\r\n
第一章 计算机和程序设计介绍 \r\n\r\n I. 1 引言 \r\n\r\n 1. 2 计算机的发展与应用 \r\n\r\n 1. 2. 1 计算机的发展 \r\n\r\n l. 2. 2 计算机的应用 \r\n\r\n 1. 3 计算机的组成 \r\n\r\n 1. 4 计算机语言 \r\n\r\n 1. 5 PASCAL介绍 \r\n\r\n 1. 5. 1 PASCAL语言的特点 \r\n\r\n 1. 5. 2 基本符号. 保留字. 标识符 \r\n\r\n 1. 5. 3 程序结构 \r\n\r\n 1. 6 小结 \r\n\r\n 习题 \r\n\r\n 第二章 顺序结构程序设计 \r\n\r\n 2. 1 引言 \r\n\r\n 2. 2 用计算机解题的基本方法 \r\n\r\n 2. 2. 1 问题分析 \r\n\r\n 2. 2. 2 问题解的描述 \r\n\r\n 2. 3 标准数据类型 \r\n\r\n 2. 3. 1 实型(feal) \r\n\r\n 2. 3. 2 整型(integer) \r\n\r\n 2. 3. 3 字符型(char) \r\n\r\n 2. 3. 4 布尔型(boolean) \r\n\r\n 2. 3. 5 标准类型小结 \r\n\r\n 2. 4 表达式与赋值语句 \r\n\r\n 2. 5 READ语句 \r\n\r\n 2. 6 WRITE语句 \r\n\r\n 2, 7 顺序程序设计举例 \r\n\r\n 2. 8 常见的错误 \r\n\r\n 2. 9 小结 \r\n\r\n 习题 \r\n\r\n 第三章 选择结构程序设计 \r\n\r\n 3. 1 引言 \r\n\r\n 3. 2 IF语句 \r\n\r\n 3. 2. 1 IF语句的两种形式 \r\n\r\n 3. 2. 2 复合语句 \r\n\r\n 3. 2, 3 复合IF语句 \r\n\r\n 3. 3 CASE语句 \r\n\r\n 3. 4 常见的错误 \r\n\r\n 3. 5 小结 \r\n\r\n 习题 \r\n\r\n 第四章 循环结构程序设计 \r\n\r\n 4. 1 引言 \r\n\r\n 4. 2 FOR语句 \r\n\r\n 4. 3 WHILE语句 \r\n\r\n 4. 4 REPEAT语句 \r\n\r\n 4. 5 多重循环 \r\n\r\n 4. 6 常见的错误 \r\n\r\n 4. 7 小结 \r\n\r\n 习题 \r\n\r\n 第五章 函数与过程程序设计 \r\n\r\n 5. 1 引言 \r\n\r\n 5. 2 自顶向下程序设计方法 \r\n\r\n 5. 3 函数 \r\n\r\n 5. 3. 1 标准函数回顾 \r\n\r\n 5. 3. 2 定义新函数 \r\n\r\n 5. 3. 3 函数调用 \r\n\r\n 5. 4 过程 \r\n\r\n 5. 5 嵌套与递归 \r\n\r\n 5. 5. l 嵌套 \r\n\r\n 5. 5. 2 递归 \r\n\r\n 5. 6 函数与过程作为参数 \r\n\r\n 5. 7 标识符的作用域 \r\n\r\n 5. 8 常见的错误 \r\n\r\n 5. 9 小结 \r\n\r\n 习题 \r\n\r\n 第六章 枚举与子界类型 \r\n\r\n 6. 1 引言 \r\n\r\n 6. 2 枚举类型 \r\n\r\n 6. 2. 1 枚举类型说明 \r\n\r\n 6. 2. 2 枚举类型运算 \r\n\r\n 6. 2. 3 读和打印枚举值的方法 \r\n\r\n 6. 3 子界类型 \r\n\r\n 6. 3. 1 子界类型说明 \r\n\r\n 6. 3. 2 子界运算 \r\n\r\n 6. 4 常见的错误 \r\n\r\n 6. 5 小结 \r\n\r\n 习题 \r\n\r\n 第七章 数组类型 \r\n\r\n 7. 1 引言 \r\n\r\n 7. 2 一维数组 \r\n\r\n 7. 3 多维数组 \r\n\r\n 7. 4 紧缩字符数组 \r\n\r\n 7. 5 保形数组参数 \r\n\r\n 7. 6 八皇后问题 \r\n\r\n 7. 7 常见的错误 \r\n\r\n 7. 8 小结 \r\n\r\n 习题 \r\n\r\n 第八章 集合类型 \r\n\r\n 8. 1 引言 \r\n\r\n 8. 2 集合类型说明 \r\n\r\n 8. 3 集合运算 \r\n\r\n 8. 3. 1 赋值空集和全集 \r\n\r\n 8. 3. 2 集合的并交差 \r\n\r\n 8. 3. 3 集合关系运算 \r\n\r\n 8. 4 类型间的关系 \r\n\r\n 8. 4. 1 定义 \r\n\r\n 8. 4. 2 应用 \r\n\r\n 8. 5 常见的错误 \r\n\r\n 8. 6 小结 \r\n\r\n 习题 \r\n\r\n 第九章 记录类型 \r\n\r\n 9. 1 引言 \r\n\r\n 9. 2 记录说明 \r\n\r\n 9. 3 WITH语句 \r\n\r\n 9. 4 记录数组 \r\n\r\n 9. 5 层次记录 \r\n\r\n 9. 6 记录变体 \r\n\r\n 9. 7 常见的错误 \r\n\r\n 9. 8 小结 \r\n\r\n 习题 \r\n\r\n 第十章 文件类型 \r\n\r\n 10. 1 引言 \r\n\r\n 10. 2 建立和使用文件 \r\n\r\n 10. 3 文件的处理 \r\n\r\n 10. 3. 1 文件比较 \r\n\r\n lO. 3. 2 文件修改 \r\n\r\n 10. 3. 3 文件合并 \r\n\r\n 10. 4 正文文件 \r\n\r\n 10. 5 文件缓冲器变量 \r\n\r\n lO. 5. 1 引言 \r\n\r\n 10, 5. 2 GET操作 \r\n\r\n 10. 5. 3 PUT操作 \r\n\r\n 10. 5. 4 GET (PUT)和READ(WRITE)之间的关系 \r\n\r\n 10. 6 常见的错误 \r\n\r\n 10. 7 小结 \r\n\r\n 习题 \r\n\r\n 第十一章 指针和动态数据结构 \r\n\r\n 11. 1 引言 \r\n\r\n 11. 2 NEW语句和指针 \r\n\r\n 11. 3 链表 \r\n\r\n 11. 3. 1 建立链表 \r\n\r\n 11. 3. 2 删除一个结点 \r\n\r\n 11. 3. 3 插入一个结点 \r\n\r\n 11. 3. 4 建立有序链表 \r\n\r\n 11. 4 1 树 \r\n\r\n 11. 4. 1 建立排序的二叉树 \r\n\r\n 11. 4. 2 树的遍历 \r\n\r\n 11. 5 常见的错误 \r\n\r\n 11. 6 小结 \r\n\r\n 习题 \r\n\r\n 第十二章 其它问题 \r\n\r\n 12. 1 GOTO语句 \r\n\r\n 12. 2 形式语法描述 \r\n\r\n 12. 2. 1 引言 \r\n\r\n 12. 2. 2 语法图 \r\n\r\n 12. 2. 3 巴科斯—瑙尔范式(BNF) \r\n\r\n 12. 3 TURBO PASCAL简介 \r\n\r\n 习题 \r\n\r\n 附录A FASCAL的字汇表 \r\n\r\n A. 1 保留字 \r\n\r\n A. 2 标识符 \r\n\r\n A. 3 标点符号 \r\n\r\n 附录B 标准标识符 \r\n\r\n 附录C PASCAL语法 \r\n\r\n C. 1 语法图 \r\n\r\n C. 2 巴科斯—瑙尔范式(BNF) \r\n\r\n 附录D ASCII码 \r\n\r\n \r\n
\r\n
郑启华
第二版前言
本书初版受到读者厚爱, 被清华大学. 北京大学等数百所高等院校选作教材, 已重印lO次. 发行超过30万册.
为了进一步提高该书的质量, 我们征集了许多大专院校使用过该书的教师和学生的意见, 并结合作者近几年来在清华大学使用该书进行教学的实践, 以及参考国内外最新教材, 对该书作了较大的修改, 现出版了《PASCAL程序设计(第二版)》, 并由郑启华新编了与此书配套的《PASCAL程序设计习题与选解(新编)》.
这次修改的主要内容包括以下几方面:
1. 对内容的取舍和组织安排, 概念的叙述, 例题和习题的选取以及有关程序等方面, 力求内容组织得更加合理, 概念叙述更加清断, 例题和习题更能反映基本概念和程序设计的要求, 程序更易阅读和理解. 为此, 几乎每章都作了修改, 其中修改最多的是第一章. 第七章和第十一章.
2. 为了提高语言的科学性和严密性, 在每章都给出了相应语法图的描述.
3. 为了提高程序的可读性, 将原来一律用大写的程序, 改成保留字用大写, 其它用小写.
4. 为了配合本书的学习, 由郑启华新编了与本书配套的《PASCAL程序设计习题与选解(新编)》. 该书包括了《PASCAL程序设计(第二版)》一书的全部习题和一些补充题, 并依照不同情况给出了这些题的提示. 算法. 程序或结果, 并在书末提供了TURBO PASCAL上机操作说明.
郑启华
l995年于清华大学
第一版前言
PASCAL语言是由瑞士的沃斯(N.Wirth)教授于1971年提出来的. 它的命名是为了纪念法国数学家Pascal.
PASCAL语言的建立基于两个主要目的:第一, 提供一种能够清晰. 自然地表述某些基本概念的语言, 使其成为基本概念系统训练的工具, 适合于程序设计教学. 第二, 使新定义的语言能在现有计算机上可靠. 有效地加以实现.
PASCAL语言是系统地体现由戴克斯特拉(E. W. Dijkstra)和霍尔(C.A.R. Hoare)定义的结构化程序设计概念的第一个语言, 因此它是程序设计语言发展史中的一个里程碑. 由于它结构清晰. 便于学习和有较丰富的数据类型和语句, 而且编译. 运行效率高, 便于移植, 它已广泛地用于大学程序设计语言的教学和许多应用软件. 系统软件的开发中.
本书是作者在长期教学经验的基础上, 参考国内外有关教材编写的. 它不仅可以作为大学计算机软件. 硬件专业和其它专业的程序设计教学用书, 还可以作为工程技术人员的自学参考书和培训教材.
本书不仅全面介绍了标准PASCAL语言, 而且通过介绍PASCAL语言讲述了自顶向下逐步求精的结构化程序设计的基本思想和基本方法. 学习程序设计必须理论联系实际, 本书在介绍基本概念的同时, 列举了大量典型而有意义的例题和习题. 读者通过阅读这些例题和自己动手完成习题, 并尽可能地上机通过, 就一定可以学好程序设计. 本书还强调培养良好的程序设计风格和习惯, 这对于一个优秀的程序设计者是很重要的.
全书共分十二章. 第一章介绍了必要的基本知识. 第二章到第五章介绍了结构化程序的四种基本结构(顺序结构. 选择结构. 重复结构. 函数与过程)及其设计方法, 此外还介绍了PASCAL的四种标准数据类型和一些基本语句. 这四章是本书的核心, 掌握了这四章的内容也就掌握了程序设计的基本方法. 第六章到第十一章介绍了PASCAL的各种用户 . 定义数据类型(枚举类型. 子界类型. 数组类型. 集合类型. 记录类型. 文件类型. 指针类型), 它们的引入扩大了PASCAL的应用领域. 通过这几章的学习, 不仅能了解PASCAI的丰富的数据类型和处理语句, 而且对前几章所讲述的程序设计基本方法是一次新的应用和提高. 第十二章是——些余留问题. 在每章之后都附有一些精选的习题. 书末列有4个附录.
为了配合读者学习本书, 我们另编了一本《PASCAL程序设计习题与选解》, 该书已由清华大学出版社出版.
本书如有不妥之处. 希盟读者批评指正.
郑启华
l991年于清华大学