- 計算機數學:算法基礎 線性代數與圖論
- 鄧潔 桂改花
- 800字
- 2020-08-21 17:40:57
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)