博主本人整理资料不易,如果文章对大家有用的话,恳请大家能够动动小手帮忙点个赞,如果能点个关注的话那就更好了…
一个程序主要包括以下两方面的信息:
- (1)对数据的描述。在程序中要指定到哪些数据以及这些数据的类型和结构的组织形式,这就是数据结构。
- (2)对操作的描述。即要求计算机进行操作的步骤,也就是算法。
数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。
著名计算机科学家沃思提出一个公式:
算法+数据结构=程序
算法、数据结构、程序设计方法和语言工具是一个程序设计人员应具备的知识。
算法是解决“做什么”和“怎么做”的问题,程序中的操作语句,是算法的体现,不了解算法就谈不上程序设计。
算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用合适的方法。
2.1 什么是算法
广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。
对同一个问题,可以有不同的解题方法和步骤。
为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。
2.2 算法的特性
一个有效的算法应该具有以下特点:
- (1)有穷性
一个算法应包含有限的操作步骤,而不能是无限的。 - (2)确定性
算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。 - (3)有零个或多个输入
所谓输入是指在执行算法时需要从外界取得必要的信息。 - (4)有一个或多个输出
算法的目的是为了求解,“解”就是输出。没有输出的算法是没有意义的。 - (5)有效性
算法中的每一个步骤都应当能有效地执行,并得到确定的结果。
2.3 怎样表示一个算法
-
1、用自然语言表示
用自然语言表示通俗易懂,但文字冗长,容易出现歧义性。
用自然语言描述包含分支和循环的算法,不是很方便。
除了很简单的问题外,一般不用自然语言。 -
2、用流程图表示
流程图是用一些图框来表示各种操作。
用图形表示算法,直观形象,易于理解。
一个流程图包括以下几个部分:
(1)表示相应操作的框
(2)带箭头的流程线
(3)框内外必要的文字说明
流程线不要忘记画箭头,否则难以判定各种框的执行次序。 -
3、三种基本结构和改进的流程图
(1)顺序结构:
(2)选择结构
(3)循环结构
以上三种基本结构,有以下共同特点:
(1)只有一个入口
(2)只有一个出口
一个判断框有两个出口,一个选择结构只有一个出口。
(3)结构内的每一部分都有机会被执行到。也就是说,对每一个框来说,都应当有一条从入口到出口的路径通过它。
(4)结构内不存在“死循环”。 -
4、用N-S流程图表示
N-S流程图用以下的流程图符号:
-
5、用伪代码表示
伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。
用伪代码来写算法并无固定的、严格的语法规则,可以用英文,也可以中英文混用。 -
6、用计算机语言表示
要完成一项工作,包括设计算法和实现算法两部分。
设计算法的目的是为了实现算法。
不仅要考虑如何设计一个算法,也要考虑如何实现一个算法。
2.4 结构化程序设计方法
结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。
结构化程序设计方法的基本思路是:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。
采取以下方法保证得到结构化的程序:
(1)自顶向下
(2)逐步细化
(3)模块化设计
(4)结构化编码