第3章C程序设计初步.docVIP

  • 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条件

文档评论(0)

1亿VIP精品文档

相关文档