- 10
- 0
- 约2.85千字
- 约 5页
- 2017-06-08 发布于重庆
- 举报
第3章C程序设计初步
第3章 C程序设计初步
算法是程序设计的基础,本章首先介绍算法的并举例对顺序结构程序设计加以说明。
3.1算法
3.1.1算法的概念
著名的计算机科学家沃思曾提出一个经典的公式:数据结构+算法 程序。这个公式说明一个程序应由两部分组成:
1 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。
2 对操作的描述。即操作步骤,也就是算法(algorithm)。
广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。
计算机解决问题的算法可分为两大类别:
1 数值算法:解决的是求数值解的问题,例如用辗转相除法求两个数的最大公约数等。
2 非数值算法:主要用于解决需要分析推理、逻辑推理才能解决的问题,例如解决人工智能问题的许多算法都属于非数值运算算法,再如查找、分类等也都属于这类算法。
一般地,算法具有如下特性:
1 有穷性:一个算法应包含有限的操作步骤而不能是无限的。
2 确定性:算法中每一个步骤应当是确定的,而不能是含糊的、模棱两可的。
3 有零个或多个输入:所谓输入是指在执行算法时需要从外界取得必要的信息。一个算法也可以没有输入。
4 有一个或多个输出:算法的目的是为了求解,“解” 就是输出。没有输出的算法是没有意义的。
5 有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。
3.1.2算法描述
为了描述一个算法,可以用不同的方法。常用的有自然语言、传统流程图、结构化流程图、伪代码等。
1.自然语言表示
自然语言就是人们日常生活中使用的语言,用自然语言表示算法时,通俗易懂,但文字冗长,容易出现“歧义性”。自然语言表示的含义往往不太严格,要根据上下文才能判断其正确含义。此外,用自然语言描述包含分支和循环的算法,很不方便。因此,除了很简单的问题以外,一般不用自然语言描述算法。
例如:计算5!的自然语言描述算法。
1 使N等于1,N←1;
2 使I等于2I←2;
3 使N等于N乘以I,N←N×I;
4 使I等于I的原值加1,I←I+1;
5 如果I小于等于5,转第 3 步,否则输出N后停止。
如果只给出“求5!”,计算机就不能执行,而详细给出计算的每一步细节,计算机就能够执行,因为算法中的每一步都可以用高级语言提供的语句来实现。
2用传统流程图表示算法
流程图(Flow Chart)是一个描述程序的控制流程和指令执行情况的有向图,它是程序的一种比较直观的表示形式,美国国家标准化协会ANSI American National Standard Institute 规定了一些常用的流程图符号(如图3.1所示)。
图3.1传统流程图中常用符号
用传统流程图描述的计算n!的算法如图3.2所示。
图3.2 计算n!的传统流程图
从图中可以看出:用传统流程图描述算法的优点是形象直观,各种操作一目了然,不会产生“歧义性”,便于理解,算法出错时容易发现,并可以直接转化为程序。但缺点是所占篇幅较大,由于允许使用流程线,过于灵活,不受约束,使用者可使流程任意转移,从而造成程序阅读和修改上的困难,不利于结构化程序设计。算法上难免会包含一些分支和循环,而不可能全部由一个一个框顺序组成。例如图3.2不是由各框顺序进行的,包含一些流程的向前或向后的非顺序转向。为了解决这个问题,人们设想,规定出几种基本结构,然后由这些基本结构按一定规律组成一个算法结构,整个算法的结构是由上而下地将各个基本结构顺序排列起来的。如果能做到一点,算法的质量就能得到保证和提高。
1966年,Bohra和Jacopini提出了以下三种基本结构,作为表示一个良好算法的基本单元。
1 顺序结构,如图3.3所示,虚线框内是一个顺序结构。
2 选择结构,或称选取结构,或称分支结构,如图3.4所示。 图3.3 顺序结构流程图 图3.4选择结构流程图1 图3.5 选择结构流程图2
请注意,无论P条件是否成立,只能执行A框或B框之一,不可能既执行A框又执行B框。无论走哪一条路径,在执行完A或B之后,都经过b点,然后结束本选择结构。A或B两个框中可以有一个是空的,即不执行任何操作,如图3.5所示。 3 循环结构,它又称重复结构。有两类循环结构:
当型循环结构(如图3.6所示)
它的功能是当给定的条件P成立时,执行A框操作,执行完A后,再判断条件P是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次P条件不成立为止,此时不执行A框,而从b点结束本循环结构。
图3.6 当型循环结构流程图 图3.7 直到型循环结构流程图
直到型循环(如图3.7所示)
它的功能是先执行A框,然后判断给定的P条件是否成立,如果P条件不成立,则再执行A,然后再对P条件作判断,如果P条件
您可能关注的文档
最近下载
- 2023年江苏省徐州市中考数学试卷.docx VIP
- 微党课认真落实三会一课制度PPT模板课件.pptx VIP
- 常见引流管的护理ppt课件.pptx
- 征兵理论考试题库及答案2025.docx VIP
- ZD中大力德 C20-800LRC驱动器说明书_V1.04.docx VIP
- 山西省英语中考试题及解答参考(2025年).docx VIP
- 05系列建筑标准设计图集05J7-1内装修-墙面、楼地面(上_共二册).pdf VIP
- 语文高考现代文阅读训练试题及答案共50篇.pdf VIP
- 区域数字基础设施碳足迹评估模型构建.pdf VIP
- 2025年特许金融分析师权益投资组合管理策略专题试卷及解析.pdf VIP
原创力文档

文档评论(0)