程序=算法+数据结构
一个程序主要包括以下两方面信息: 1、对数据的描述。在程序中要指定用到那些数据,以及这些数据的类型和数据的组成形式。这就是数据类型。 2、对操作的描述。要求计算机进行操作的步骤,也就是算法。
算法+数据结构=程序 算法是解决“做什么”和“这么做”的问题。
什么是算法
广义的来说,为了解决一个问题而采取的方法和步骤,就称为“算法”。
计算机算法可分为两大类: 1、数值运算法 目的是求数值解,例如求方程的根、求一个函数的定积分等,都属于数值运算范围。 2、非数值运算法 它涉及的面十分广泛,最常见的是用于事务管理领域,例如按一批职工按姓名排序、图书检索、人事管理等
算法特性
为了能编写程序,必须学会涉及算法。一个有效的算法应该具有以下特点:(1)有穷性。一个算法应该包含有限的操作步骤,而不能是无限的。(2)确定性。算法中每一个步骤都应当是确定的,而不应当是含糊的,模棱两可的。(3)有零个或多个输入。(4)有一个或多个输出。(5)有效性。算法中的每一个步骤都应当能有效的执行,并得到确定的结果。
怎样表示一个算法
为了表示一个算法,可以用不同的方法。常用的方法有:自然语言、传统流程图、结构化流程图和伪代码。
除了一些很简单的问题外,一般不用自然语言
三种基本结构
(1)顺序结构。
(2)选择结构。
(3)循环结构。 分为当型(while)和直到型(until),见图2-17
以上三种结构有共同特点:
(1)只有一个入口。图2-17中a点为入口点。
(2)只有一个出口。图2-17中b点为出口点。注意:一个判断框有两个出口,一个选择程序只有一个出口。
(3),结构内每一个部分都有机会被执行到。
(4)结构内不存在“死循环”。
以上三种基本结构顺序组成的算法结构,可以解决任何复杂的问题。
传统流程图
判断2500年内的闰年
N-S流程图
如果一个算法不能分解为若干个基本结构,则它必然不是一个结构化算法。
伪代码表示算法
伪代码是介于自然语言与计算机语言之间的文字与符号来表示算法。 它如同一篇文字一样,从上而下的写下来。每一行(或几行)表是一个基本操作。它不用图形符号,因此书写方便,格式紧凑,修改方便,容易看懂,也便于向计算机语言算法(即程序)过渡。
用伪代码写算法并无固定的、严格的语法规范。可以用英文,也可以用中英文混用。只要把意思表达清楚,便于书写和阅读即可。
但是用伪代码写算法不如流程图直观,可能出现逻辑图上的错误(列如循环或选择结构的范围弄错等)。
要完成一项工作,包括设计算法和实现算法两个部分。
结构化程序设计方法
采取以下方法来保证得到结构化的程序:1、自顶向下。2、逐步细化。3、模块化设计(当程序复杂时,更有必要)。4、结构化编码。
有了正确·的·算法,用任何语言进行编码都不是什么困难的事。
版权归原作者 Morrnah 所有, 如有侵权,请联系我们删除。