寒假总结—C语言(2)
程序的灵魂—算法
一个程序应该包括两部分:
1.对数据的描述,在程序中要指定数据的类型和组成形式,即数据结构;
2.对操作的描述,即操作步骤,也就是算法:
Nikiklaus Wirth 提出的公式:
数据结构+算法=程序
教材认为:
程序=算法+数据结构+程序设计方法+语言工具和环境
2.1算法的概念
做任何事情都有一定的步骤。为解决一个问题而采取的方法和步骤,就称为算法。 计算机算法:计算机能够执行的算法。
计算机算法可分为两大类:
- 数值运算算法:求解数值;
- 非数值运算算法:事务管理领域。
2.2算法的特性
-
有穷性:一个算法应包含有限的操作步骤而不能是无限的。
-
确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两可的。
有零个或多个输入。 有一个或多个输出。 × -
有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。
对于程序设计人员,必须会设计算法,并根据算法写出程序。
2.3怎样表示算法
2.3.1用自然语言表示算法
略
2.3.2用流程图表示算法
以下是流程图基本描述
2.3.3三种流程图的基本结构
- 顺序结构
- 选择结构
- 循环结构
三种基本结构也有共同特点:
1.只有一个入口
2.只有一个出口
3.内循环的每一部分都有机会被执行到
4.结构内不存在“死循环”(虽然我觉得这个有待考虑 ,如果我随便写一个程序在某些编译器上不提示报错,但是还是会有运行异常)
如 :
int i=0;
while(1)
{
i++;
}
2.3.4用N-S图表示算法
2.3.5用伪代码表示算法
伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法。
2.3.6用计算机语言表示算法
这就不用我多说了,这也是我们用的最多的方法之一。
2.4 结构化程序设计方法
- 自上而下
- 逐步细化
- 模块化设计
- 结构化编码