常用算法表示工具

常用算法表示工具


2024年5月15日发(作者:)

描述算法有多种工具有自然语言、传统流程图、N-S流程图、伪码等。

一、用自然语言表示算法

用自然语言表示算法,通俗易懂。特别适用于对顺序程序结构算法的描述。但自然语言

存在二义性,在使用时,要特别注意算法逻辑的正确性和操作的精准性。比如,判断正整数

数n是不质数的自然语言算法描述。

①输入正整数n,置除数i的值为2;

②n除以i取余数r;

③判断余数r是否为零,如果r为零,则转⑥,否则继续;

④除数增加1;

⑤判断除数i是否小于n-1,如果i小于n-1,则跳转到②,否则⑦;

⑥输出n不是质数,结束;

⑦输出n是质数,结束。

二、用流程图表示算法

1.传统流程图

传统流程图四框一线,符合人们思维习惯,用它表示算法,直观形象,易于理解(教材

中有详细说明,此处略)。仅举一例,判断素数算法用流程图表示如下:

2.用N-S流程图表示算法

N-S流程图是由美国人和erman共同提出的,其任何算法都是3种基

本结构组成的,那么各基本结构之间的流程线就是多余的,因此去掉了所有的流程线,将全

部的算法写在一个矩形框内。N-S流程图比较容易描述较复杂的选择结构和循环结构。这种

流程图描述顺序结构、选择结构、当型循环结构、直到型循环结构如下图所示。

顺序结构:程序执行完A语句后接着执行B语句。

A

B

选择结构:当条件P成立时,则执行A语句,否则执行B语句。

当型循环结构:当条件P1成立时,则循环执行A语句。

直到型循环结构:循环执行A语句,直到条件P1成立为止。

用N-S流程图表示判断数n是否为素数的算法。

开始

输入n的值

i = 2

n除i取余→r

r==0

i=i+1

显示n不是质数 i>n-1

显示n是质数

结束

三、伪代码表示算法

用流程图表示算法,直观易懂,但画起来比较费劲,在设计一个算法时,可能要反复修

改,而修改流程图是比较麻烦的,因此,流程图适用于表示一个算法,但在设计算法的过程

中使用却不是很理想,尤其当算法比较复杂、需要反复修改时。为设计算法时方便,就产生

了伪代码。伪代码是介于自然语言和机器语言之间用文字和符号来描述算法的,它不用图形

符号,因此书写方便,格式紧凑,也比较好懂。虽然伪代码不是一种实际的编程语言,但是

在表达能力上类似于编程语言,同时避免了描述技术细节带来的麻烦,所以伪代码更适合描

述算法,故被称为“算法语言”或“第一语言”。伪代码便于向计算机语言算法(如C语言、

Java)过渡。

伪代码的7个主要部分:

(1) 算法名称

(2)指令序列

(3)输入/输出

(4)分支选择

(5)赋值

(6)循环

(7)算法结束

1.算法名称

两种表示算法的伪代码:

过程(Procedure) 函数(Function)

过程和函数的区别是: 过程是执行一系列的操作,不需要返回操作的结果,无返回数

据;函数是执行一系列的操作后,要将操作的结果返回,有返回数据。

算法伪代码的书写规则:

procedure <算法名> ([<参数列表>])

function <算法名> ([<参数列表>])

如:procedure Hanoi_Tower() 表示名为Hanoi_Tower的一个过程

function Fac(x) 表示名为Fac的一个函数

2.指令序列

指令序列的书写规则:

用Begin作为开始、用End作为结束;

用“{”作为开始、用“/}”作为结束。

例如:

Begin

指令序列;

End

或者:

{

指令序列;

/}

3.输出/输出

输入:Input

输出:Output 或 Return

4.分支选择

两种分支:

if <条件> Then

{

指令序列

}

If <条件>Then

{

指令序列1

}

else

{

指令序列2

}

5.赋值

用:=或者←作为赋值操作符,表示将赋值号右边的值赋值给左边的变量。

例如: x:=x+1 或: y←x*x

6.循环

两种方式:计数式循环和条件式循环。

(1)计数式循环

for 变量:=初值 To 终值

{

指令

}

循环次数: (终值−初值+1)

(2)条件式循环

While (条件) do

{

指令

}

条件为真,则循环执行指令,直到条件为假。

7.算法结束

关键字End的后面加上算法名称,表示算法结束,是算法的最后一句。

例如:

End Hanoi_Tower

End Fac

分别表示算法Hanoi_Tower和Fac的结束。

用伪代码表示判断n是否为质数的算法如下:

procedure isPrime()

{

input n

for i:=2 to n-1

if(n%i=0)

{

break

}

if(i

output(“n不是质数”)

else

output(“n是质数”)

}

四、用计算机语言表示算法

程序设计的最终目标是要用一种计算机语言来表示算法,常用的程序设计语言有C、C++、

Java等。下例用C语言表示判断n是否为质数的算法。

#include

void main()

{

int n,i;

scanf(“%d”,&n);

for(i=2;i

if(n%i==0)

break;

if(i

printf(“%d不是质数”);

else

printf(“%d是质数”);

}


发布者:admin,转转请注明出处:http://www.yc00.com/web/1715749001a2665728.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信