1.1.3 算法的表示
算法可以用自然语言、程序框图、N-S图、伪代码、计算机语言表示。例1.1就是用自然语言描述求整数序列最大值的算法。
1.程序框图
程序框图又叫流程图,是由一些规定的图形、流程线和文字说明来直观描述算法的图形。程序框及其说明如表1.1所示。
表1.1 程序框及其说明
续表
例1.2 画出例1.1的算法的流程图(见图1.1)。
2.N-S图
流程图由一些特定意义的图形、流程线及简要的文字说明构成,它能清晰、明确地表示程序的运行过程。因为在使用过程中发现流程线不是必需的,人们设计了一种新的流程图,它把整个程序写在一个大框内,这个大框图由若干个小的基本框图构成,这种流程图简称N-S图。N-S图是无线的流程图,又称盒图,在1973年由美国两位学者I.Nassi和B.Shneiderman提出。
例1.3 例1.1算法的N-S图(见图1.2)。
图1.1
图1.2
3.伪代码(Pseudocode)
伪代码是一种介于自然语言与编程语言之间的算法描述语言,便于理解,并不依赖于语言,它用来表示程序执行过程,而不一定能编译运行的代码。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言实现。
例如:
IF 九点以前 THEN
做私人事务;
ELSE 9点到18点 THEN
工作;
ELSE
下班;
END
4.计算机语言(Computer Language)
计算机语言的种类非常多,总的来说可以分成机器语言、汇编语言、高级语言三大类。
计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,并不采用机器语言,因为它非常难于记忆和识别。汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。高级语言是目前绝大多数编程者的选择,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的C、C++、C#、Java、VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
例1.4 例1.1算法的C语言程序。
#include <stdio.h>
int main()
{
int a[100],i,n,max;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
max=a[0];
for(i=1;i<=n-1;i++)
{
if(a[i]>=max)
{
max=a[i];
}
}
printf("%d ",max);
}
例1.5 例1.1算法的MATLAB语言程序。
x=input('x=');
n=length(x);
max=x(1);
for i=1:n
if x(i)>=max
max=x(i);
end
i=i+1;
end
fprintf('max=%d\n',max)