《高等学校计算机基础教育规划教材:程序设计基础(从问题到程序)》以c/c枓程序设计语言为工具,以程序设计过程为主线,通过“问题一想法一算法一程序”的问题求解过程,提高学生的程序设计能力和计算思维能力。书中绝大部分程序设计实例(包括例题)不是单纯地为了解释语言概念,而是以任务驱动的方式,带领学生分析问题、构造算法、应用程序设计语言解决实际问题,使学生在潜移默化中学会程序设计。
《高等学校计算机基础教育规划教材:程序设计基础(从问题到程序)》适用于程序设计的初学者,主要面向没有任何编程知识和编程经历的读者,遵循认知规律,科学安排知识单元之间的拓扑关系,概念清晰,实例丰富,深入浅出,是程序设计初学者的理想教材。
把握初学者的知识基础。 《高等学校计算机基础教育规划教材:程序设计基础(从问题到程序)》将程序设计所需的计算机软硬件基本知识融合进来.解决了初学者的知识衔接问题。 遵循初学者的认知规律。 提炼程序设计语言的基本内容,科学安排知识单元之间的拓扑关系,对于有一定难度的主题采用增量式递进,先讲授基本内容,再讲授高级内容。 站在内存的角度理解程序。 强调内存对于程序设计的重要性,通过图示阐述内存在程序执行过程中的动态变化过程,降低理解程序的抽象程度。 强调程序设计的一般过程。 以程序设计过程为主线,采用“问题 想法 算法 程序”的问题求解过程,正确处理算法和语言的关系,培养学生的计算思维能力,提高学生程序设计语言的应用能力。 程序实例体现学以致用。 程序设计实例(包括例题)不是单纯地为了解释语言概念,而是以任务驱动的方式,带领学生分析问题、构造算法、应用程序设计语言解决实际问题,在潜移默化中学会程序设计,提高用计算机解决实际问题的能力。
随着信息时代的到来,计算机技术的普及与应用已成为提高综合国力的需要,每个受过高等教育的人应该成为提高综合国力的主力军。对于非计算机专业的学生,仅仅能够进行文字编辑、网页制作等技能性操作是远远不够的,还应该具有程序设计的初步能力,因为通过编写程序,可以进一步了解计算机的工作原理,掌握用计算机解决实际问题的思想和方法,才能更好地理解和应用计算机;对于计算机专业及相关专业的大学生,程序设计能力是应具备的基本能力,是衡量其是否合格的基本标准,程序设计训练还可以提高学生分析问题、解决问题的能力,以及计算思维(逻辑思维、抽象思维)的能力。因此,学习程序设计非常重要。对于程序设计的初学者,用一种具体的程序设计语言作为工具来学习程序设计是比较通用的方法。那么,众多的程序设计语言从哪里开始学习?如何学习程序设计?
实际上,所有程序设计语言的最终目的都是一样的,就是控制计算机按照人们的意愿去工作。共同的目的使各种各样的程序设计语言具有共同的基本内容,无论哪一种程序设计语言,都是以数据的表示和组织、数据处理、程序的流程控制、数据传递为基本内容,只是不同的程序设计语言采用不同的方法实现上述基本内容,表现为不同的程序设计语言具有不同的表述格式(即语法规则)。
程序设计的过程就是利用计算机求解问题的过程,这个过程最终需要借助程序设计语言来表示解决方案,因此,学习程序设计语言的最终目的是能够表示问题的解决方案。但是,掌握了程序设计语言的语法规则并不意味着能够编写程序解决实际问题,因为计算机不能分析问题并产生问题的解决方案,程序设计者必须分析问题,确定问题的解决方案,然后再用程序设计语言表示这个解决方案。因此,学习程序设计的重点和核心不是程序设计语言本身,而是掌握程序设计的基本思想、基本方法和一般过程,只要理解了程序设计的基本思想和一般过程,掌握了程序设计语言的基本规则,就能够触类旁通、举一反三,同时为学习新语言奠定知识基础。
本书以C/C++程序设计语言为工具,以程序设计过程为主线,通过问题的求解过程提高学生的程序设计能力和计算思维能力。
本书的读者定位
本书的读者定位是程序设计的初学者,主要面向没有任何编程知识和编程经历的读者,包括:
* 计算机专业的学生;
* 非计算机专业的学生;
* 希望更好地理解和应用计算机的非计算机行业的读者。
本书的教材设计
① 把握知识基础。程序设计需要具备一定的计算机软硬件基本知识,本书将这些基本知识(二进制、内存、整数的补码表示、实数的浮点表示、编译的基本过程、算法及其描述方法等)融合起来,解决知识的衔接问题。
② 提炼程序设计语言的基本内容。本书的重点在于讲授程序设计的基本思想和一般过程,对于C/C++语言采取有所取、有所不取的策略,主要讲授数据的表示和组织、数据处理、程序的流程控制、数据传递(函数)等基本内容,不深究C/C++语言的语法细节和语言特性,学生在学会了编写程序后,这些细枝末节的问题完全可以自己解决。
③ 遵循认知规律。C/C++语言的语法细节很多,语法细节之间的联系很多,这种结构不良性导致学习不能完全按照线性的顺序。本书强调循序渐进,科学安排知识单元之间的拓扑关系,如图1所示。对于有一定难度的主题(函数、指针、文件)采用增量式的方式,先讲授基本内容,再讲授高级内容。
图1 知识单元的拓扑结构
④ 强调程序设计的一般过程。本书以程序设计过程为主线,采用“问题→想法→算法→程序”的问题求解过程,正确处理算法和语言的关系,通过“问题→想法→算法”的过程(即算法设计)提高学生分析问题、解决问题的能力,达到培养学生计算思维的教学目标,通过“算法→程序”的过程(即编写程序)提高学生程序设计语言的应用 能力。
⑤ 站在计算机内存的角度理解程序。强调内存对于程序设计的重要性,通过图示阐述内存(变量)在程序执行过程中的动态变化过程,降低学习程序的抽象程度,使学生不仅知其然,还能知其所以然,然后才能使其然,从而很好地驾驭程序设计语言解决实际问题。
⑥ 程序设计实例体现学以致用。本书绝大部分程序设计实例(包括例题)不是单纯地为了解释语言概念,而是以任务驱动的方式,带领学生分析问题、构造算法、应用程序设计语言解决实际问题,在潜移默化中学会程序设计,提高学生用计算机解决实际问题的能力。
⑦ 注重程序风格,扎实编程基本功。本书强调程序的规范性和可读性,如程序中适当加空格和空行,关键语句后要有注释,变量名、函数名等标识符的规范命名,将逻辑上相对独立的功能组织为函数,而不是将所有代码都写在main函数中,使学生在开始写程序时就养成良好的编程习惯。
作 者
2010年10月
第1章 绪论
1.1 问题求解与程序设计
1.1.1 程序、程序设计与程序设计语言
1.1.2 程序设计的一般过程
1.2 算法及其描述方法
1.2.1 算法及其特性
1.2.2 算法的描述方法
1.3 程序设计语言
1.3.1 程序设计语言的发展
1.3.2 程序设计语言的排名
1.4 程序的基本构成
1.4.1 基本字符集
1.4.2 词法单位
1.4.3 语法单位
1.4.4 程序
1.5 程序的上机过程
1.5.1 编程环境
1.5.2 程序编辑
1.5.3 程序编译
1.5.4 程序连接
1.5.5 运行调试
1.6 程序风格
1.6.1 标识符的命名规则
1.6.2 注释
1.6.3 缩进
1.6.4 行文格式
习题1
第2章 数据的存储和组织
2.1 数据的存储介质——存储器
2.1.1 二进制
2.1.2 存储器
2.2数据的组织
2.3 基本数据类型
2.3.1 整型
2.3.2 实型
2.3.3 字符型
2.3.4 逻辑型
习题2
第3章 数据的基本表现形式(任务3.1)计算圆的面积
3.1 常量
3.1.1 字面常量
3.1.2 符号常量
3.2 变量
3.2.1 变量的概念
3.2.2 变量的定义和初始化
3.2.3 变量的赋值
3.2.4 强制类型定义
3.3 解决任务3.1的程序
3.4 程序设计实例
3.4.1 实例1——华氏温度转换为摄氏温度
3.4.2 实例2——计算本息和
习题3
第4章 数据的基本处理
4.1 输入输出(任务4.1)计算圆的面积(改进版)
4.1.1 输入输出的概念
4.1.2 格式化输入输出函数
4.1.3 解决任务4.1的程序
4.2 数据的基本运算(任务4.2)疯狂赛车
4.2.1 算术运算
……
第5章 程序的基本控制结构
第6章 程序的组装单元——函数
第7章 变量的间接访问——指针
第8章 批量同类数据的组织——数组
第9章 字符数据的组织——字符串
第10章 自定义数据类型
第11章 再谈函数
第12章 再谈指针
第13章 再谈输入输出——文件
第14章 再谈程序的基本结构
第15章 基本的算法设计技术
附录A 标准ASCII码
附录B 运算的优先级和结合性
附录C 常用库函数
附录D 程序设计实例索引
参考文献