- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章程序设计与C语言概述
第1章 程序设计与C语言概述
l.1 程序设计的基本概念
程序设计是伴随着计算机应用发展的一门学科,是使用和开发计算机的重要工具。本节简单介绍程序设计的基本概念。
1.1.1 程序
人们要使用计算机,就必须把要解决的问题变成计算机能够接受且能执行的一条条指令,即编排一系列计算机解题步骤,这就是程序。完整的说,所谓程序,就是为完成某个任务而设计的,由有限步骤所组成的一个有机的指令序列。简言之,程序是指令的序列。程序是对所要解决问题的各个对象和处理规则的描述,是由程序员编制设计的静态过程,而输入计算机实现指令的过程是动态过程。
PASCAL语言的创建者沃斯(N.Witrh)对程序给出了一个简明而确切的定义:
算法+数据结构=程序(Algorithm+Data Structure=Program)
算法集中地反映了计算机执行的过程,数据结构是大批数据之间的构造关系,针对所处理的对象,设计好数据结构可极大地简化算法。算法和数据结构是程序的两个重要方面。早期的程序设计语言对数据结构的描述极为薄弱,造成算法任务的加重,随着语言的发展,数据描述能力逐渐增强,这也是语言发展的一个重要标志。
程序与计算机的应用和开发密切相关,为了更好地使用计算机,必须了解程序的共同性质:
目的性。程序必须有明确的目的,即为了解决什么问题。
分步性。程序是分成许多步骤的,不可能一步就解决问题。
有序性。程序不是解题步骤随意的堆积,而是要按照一定的顺序有机排列。
有限性。解决问题的步骤不可能是无穷多,必须由有限的步骤组成,否则计算机无法实现。
操作性。程序总是施加各种操作于某些对象,对象就是数据。
1.1.2 程序设计语言的发展和特点
程序设计语言是指用来书写计算机程序的语言,是人与计算机进行信息通讯的工具。
程序设计语言目前多达上千种,常用的也有几十种。众多的程序设计语言如何进行分类,目前众说纷纭,多数人认为程序设计语言分为三大类:面向机器的语言、面向过程的语言和面向问题的语言。
(1) 面向机器的语言。面向机器的语言是针对特定的计算机而设计的语言,是不能独立于机器的语言。如机器语言和汇编语言。
(2) 面向过程的语言。面向过程的语言是用于各种计算机并能解决各种题目的语言,它是独立于机器的。使用面向过程的语言,用户不仅要告诉计算机“做什么”,而且还要告诉计算机“如何做”,需要详细地描述解题过程,因此称为面向过程的语言即为过程化语言。如FORTRAN语言、PASCAL语言、C语言、Ada语言等。
(3) 面向问题的语言。面向问题的语言也是独立于计算机的语言,利用这种语言解题,不仅摆脱计算机内部逻辑,而且不必关心问题的解法和解题的过程。只需要指出问题、输入数据和输出形式,就能得到所需要的结果。面向问题的语言与面向过程的语言之间区别就是不需要要告诉计算机“如何做”,即不需要描述解题过程。因此,面向问题的语言又称为非过程化语言或陈述性语言。如报表语言、判定语言、SQL(Structured Query Language)语言等。SQL语言是数据库查询和操纵语言,可直接使用数据库管理系统。非过程化语言是程序设计语言发展的目标,对用户来说是方便的,但实现起来是比较困难的,实现更为理想的非过程化语言,目前仍在努力地研制之中。
1.1.3 程序设计的一般过程
从基本概念出发,一般来说,程序设计的过程可以分为以下五个基本步骤:
1、问题分析
问题分析是进行程序设计的基础。如果在没有把所要解决的问题分析清楚之前就编制程序,后果难于预想。基本的分析内容如下:
(1) 问题的性质
例如,你所要解决的问题是属于数值型还是属于非数值型的问题,如果是数值型的问题,就要确定一个合理的精度要求。
(2) 输入、输出数据
例如,数据的类型、输入输出的设备和格式。
(3) 数学模型或常用的方法
例如,求一元二次方程的根通常有三种方法
求根公式
韦达定理
迭代法
选择哪种方法处理结果不一样,因为计算工具的有效数字位是有限的,在运算过程中难免出现误差。
2、问题解的描述
问题解的描述就是问题求解的步骤,是解题方案的准确而完整的描述,也就是前面所提到的算法,算法不同与一般的计算公式,应具备以下基本特征。
(1) 可行性
算法中的每一个步骤都必须是可实现的。
(2) 确定性
算法中的每一个步骤都必须有明确的定义。不允许模棱两可的解释,也不允许多义性。
(3) 有穷性
算法必须在有限的时间内完成。
(4) 一个算法应有零个或多个输入
算法可以没有输入。例如一盒音乐磁带,启动后就会放出音乐,不需要输入。
(5) 一个算法应有一个或多个输出
算法的目的是解决问题,“解”就是输出,没有输出的算法是没有意义的。
3、编写程序
设计好合适的算法后,下一个步骤就是用选择的程序设计语言(例如C语言)描述该算法,这一工
文档评论(0)