预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共45页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一个程序应包括两个方面的内容:§2.1算法的概念§2.1算法的概念有穷性:包含有限的操作步骤 确定性:算法中的每一个步骤都应当是确定的 有零个或多个输入:输入是指在执行算法时需要从外界取得必要的信息 有一个或多个输出:算法的目的是为了求解,“解”就是输出 有效性:算法中的每一个步骤都应当能有效地执行,并得到确定的结果。§2.2算法的描述方法1、用自然语言表示算法2、用传统的流程图表示算法三种基本结构 Bohra和Jacopini提出了以下三种基本结构: 顺序结构、选择结构、循环结构 用这三种基本结构作为表示一个良好算法的基本单元。三种基本结构的图示: 循环结构的图示:3、用N--S流程图表示算法N--S流程图用以下的流程图符号: 用三种N--S流程图中的基本框,可以组成复杂的N--S流程图。图中的A框或B框,可以是一个简单的操作,也可以是三个基本结构之一。4、用伪代码表示算法IFxispositiveTHEN printx ELSE print-x 也可以用汉字伪代码表示: 若x为正 打印x 否则 打印-x 也可以中英文混用,如: IFx为正 printx ELSE print-x5、用计算机语言表示算法强调说明: 写出了C程序,仍然只是描述了算法,并未实现算法。只有运行程序才是实现算法。应该说,用计算机语言表示的算法是计算机能够执行的算法。例1、从a,b中找出一个较大数赋给max。例1、从a,b中找出一个较大数赋给max。Y例1、从a,b中找出一个较大数赋给max。例1、从a,b中找出一个较大数赋给max。例1、从a,b中找出一个较大数赋给max。例2、计算S=(2)传统流程图的算法描述如下:(3)N-S流程图的算法描述如下:(4)伪代码的算法描述如下:(5)计算机语言的算法描述如下:N--S图表示算法的优点1、三种基本结构 Bohra和Jacopini提出了以下三种基本结构: 顺序结构、选择结构、循环结构 用这三种基本结构作为表示一个良好算法的基本单元。三种基本结构的图示: 循环结构的图示:2、三种基本结构的共同特点: (1)只有一个入口; (2)只有一个出口;(请注意:一个菱形判断框有两个出口,而一个选择结构只有一个出口。不要将菱形框的出口和选择结构的出口混淆。) (3)结构内的每一部分都有机会被执行到; (4)结构内不存在“死循环”(无终止的循环)。图中没有一条从入口到出口的路径通过A框。扩展:这是一个多分支选择结构,根据表达式的值决定执行路线。虚线框内的结构是一个入口一个出口,并且有上述全部的四个特点。由此构成的算法结构也是结构化的算法。可以认为这是由三种基本结构所派生出来的。小结:小结:3、结构化程序设计的优点4、结构化程序设计方法的基本思路用这种方法逐步分解,直到作者认为可以直接将各小段表达为文字语句为止。这种方法就叫做“自顶向下,逐步细化”。自顶向下,逐步细化方法的优点: 考虑周全,结构清晰,层次分明,作者容易写,读者容易看。如果发现某一部分中有一段内容不妥,需要修改,只需找出该部分修改有关段落即可,与其它部分无关。我们提倡用这种方法设计程序。这就是用工程的方法设计程序。5、结构化程序设计过程