一个程序主要包括以下两个方面:
1)对数据的描述。在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。这就是数据结构。
2)对操作的描述。要求计算机进行操作的步骤,也就是算法
算法+数据类型=程序
通俗的说程序就是对数据的操作,程序包括数据和对数据的操作;
算法可以分为数值算法和非数值算法;
算法的特性
(1)有穷性。一个算法应该包含有限的操作步骤,而不能是无限的,有穷性是指“在合理的范围内的”;
(2)确定性。算法中的每一个步骤都应当是确定的,而不应当是含糊的,模棱两可的。算法的含义是唯一的,而不应当产生歧义性;
(3)有零个或多个输入。执行算法的时候需要从外界取得必要的信息;如果以赋值,则有零个输入;
(4)有一个或多个输出。算法的目的是为了求解;没有输出的算法是没有意义的。
(5)有效性。每一个步骤都应当有效的执行,并得到确定的结果;eg:b=0时;a/b是不能有效的执行,是没有意义的;
怎样表示一个算法
(1)用自然语言表示算法;eg“张先生对刘先生说他的孩子考上了大学”,对于这句话,人会产生歧义;
到底是谁的孩子考上了大学;
(2)用流程图表示
1)表示相应操作的框;
2)*带箭头的流程线*;
3)有必要的文字说明;
3)N-S流程图表示;
4)用伪代码表示;
eg:求5!;
begin (算法开始)
1——>t
2——>i;
while i<=5
{t*i=5——>t
i+1——>i
}
printf t
end (算法结束)
5)用计算机语言表示;
求5!,用c语言表示。
#include<stdio.h>
#include<windows.h>
int main()
{
int i,t;
t=1;
i=2;
while(i<=5)
{
t=i*t;
i=i+1;
}
printf("5!=%d\n",t);
getchar();
getchar();
return 0;
}
算法的基本结构
1顺序结构;
2)选择结构;
3循环结构;
1当型(while型)循环结构;
2直到型(until型)循环型;