- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章C语言程序基础
第1章 程序设计基础 ;本章学习目标 ;1.1 程序设计语言 ;1.1.1 机器语言 ;1.1.2 汇编语言;1.1.3 高级语言 ;1.2 程序设计 ;1.2.1 算法;一、算法及其特性
1、算法
所谓算法,就是解决某类问题的办法。确切地说,就是对某一类特定的问题,给出解决该问题的一系列(有穷的)操作,而每一操作都有其确定的意义,并在有限时间内可以计算出结果。
计算机算法可分为两大类:数值算法和非数值算法。;2、算法的特性
(1)确定性
算法中每一个操作步骤都有确切的含义
(2)有穷性
算法的步骤不能是无限的。
(3)可执行性
算法中每个步骤对计算机来说都是可以有效执行的,并得到确定的结果。
(4)输入
一个算法有零个或多个输入。
(5)输出
一个算法必须有一个或多个输出;3、算法的评价
如何评价一个算法呢?对算法的要求有:必须是正确的,必须能高效率执行,即占用内存空间少,所需运行时间短。于是,对算法的评价可以从两个方面进行:
(1)执行算法所需的时间长短;
(2)执行算法所需的计算机内容容量大小。
;二、算法的描述
常用的描述算法的方法有:自然语言、伪代码、流程图。
1、自然语言
自然语言就是人们日常使用的语言,可以是汉语、英语或其他语言。用自然语言描述算法具有通俗易懂的优点,但缺点也比较多:
(1)比较繁琐。
(2)容易出现“歧义性”。
(3)用自然语言容易描述顺序执行的步骤。;例1.1 将两个变量x和y的值互换
用自然语言描述如下:
步骤1 将x值存入中间变量z中:x→z
步骤2 将y值存入变量x中:y→x
步骤3 将中间变量z的值存入y中:z→y
;2、伪代码
伪代码(pseudo code)一般介于自然语言与程序设计语言之间,它具有自然语言灵活的特点,同时又接近于程序设计语言的描述。
伪代码与程序设计语言最大的区别就在于,伪代码描述比较自由,不像程序设计语言那样受语法的约束,只要描述得人们能理解就行,而不必考虑计算机处理时所要遵循的规定或其他一些细节。 ;例如,在例1.1中,将两个变量x和y的值互换,可以用伪代码描述如下:
BEGIN
x→z
y→x
z→y
END
;3、流程图
流程图是用一些图框、流程线以及文字说明来表示算法。用图来表示算法,直观、形象、容易理解。
(1)传统流程图
美国国家标准化协会ANSI规定了一些常用的流程图符号,各种流程图符号表示如下:
;起止框 :;例1.2 判断一个数是否是素数的算法用流程图表示如图1.2所示。 ; i?;(2)结构化流程图
①顺序结构 ②选择结构 ;③循环结构 ;以上三种基本结构有以下共同的特点:
只有一个入口。
???? 只有一个出口
?? 每一个基本结构中的每一部分都有机会被执行到。
结构内不存在“死循环”(即无终止的循环)。 ;(3)N-S流程图
①顺序结构: ②选择结构: ; ③循环结构: ;例1.2 将求最大公约数的算法用N-S流程图描述如图1.7所示。 ; 1.2.2 结构化程序设计 ;一、自顶向下、逐步细化的设计过程
自顶向下、逐步细化的设计过程,包括以下两个方面:
(1)将一个复杂问题的解法分解和细化成由若干模块组成的层次结构;
(2)将一个模块的功能逐步分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机器指令。
自顶向下、逐步细化的设计过程具有以下两个优点:
(1)自顶向下、逐步细化的方法符合人们解决复杂问题的普遍规律,可以显著提高程序设计的效率;
(2)用先全局后局部、先整体后细节、先抽象后具体的逐步细化过程设计出的程序具有清晰的层次结构,容易阅读和理解。
;二、模块化设计
模块化设计是指把一个大程序按人们能理解的大小规模进行分解。由于经过分解后的各模块比较小,因此容易实现,也容易调试。
在进行模块化程序设计时,应重点考虑以下两个问题:
(1)按什么原则划分模块?
(2)如何组织好各模块之间的联系? ;1、按功能划分模块
在按功能划分模块时,要求各模块的功能尽量单一,各模块之间的联系尽量少。满足这些要求的模块有以下几个优点:
(1)模块间的接口关系比较简单,并且每个模块都是人的智力所能及的。因此,这种程序的可读性和可理解性都比较好。
(2)各模块的功能比较单一,当需要修改某一功能时,一般只涉及到一个模块,不会影响到其他模块。因此,这种程序的可修改性和可维护性比较好。
(3)人们可以脱离程序的上、下文也能单独验证一个模块的正确性,便于对程序进行模块化测试。因此,这种程序的可验证
您可能关注的文档
最近下载
- Unit 6 Rain or Shine (第3课时) 课件人教版(2024)英语七年级下册.pptx VIP
- 港珠澳大桥岛隧工程沉管隧道混凝土质量控制措施.pdf
- 2025年中考数学复习热搜题速递之尺规作图(2024年7月).docx
- 股市风险预警机制-深度研究.pptx
- 政策解读2025年中央一号文件PPT.pptx VIP
- 5.0MPa路面抗折混凝土配合比.docx VIP
- 17J927-1 车库建筑构造(OCR).pdf VIP
- XX市疾病预防控制中心-艾滋病HIV筛查实验室管理手册_精品.doc
- 2025年春季小学学校德育工作计划(1975字).docx VIP
- 渤海水泥厂包装车间除尘系统设计.docx
文档评论(0)