怎么用计算机标准表示方法,算法及其表示方法

科学技术的进步,社会生产力的发展,都是由于相关的问题得到不断的解决的结果。在当今社会中,由于信息化概念的提出,许多问题的解决都使用到了电子计算机。人们解决问题一般使用到以下两种方法:

1、人工解题

2、计算机解题

下面,我们来比较一下人工解题和计算机解题在操作步骤上的区别:

人工解题步骤

计算机解题步骤

1、理解和分析所面临的问题

1、理解和分析所要解决的问题

2、寻找解题的途径和方法

2、寻找解题的途径和方法

3、用笔、纸和算盘、计算器等工具进行计算

3、生成解题算法

4、验证计算结果

4、选用一种编程语言根据算法编写程序

5、通过编辑、编译和连接产生计算机能够识别的指令序列

6、在计算机上执行该指令序列

一、人工解题和计算机解题的异同点

相同点:无论何种解题方式,在解决某一实际问题时,都应该正确的理解问题的题意,从看似复杂的问题中整理出一个头绪,然后通过算法(即解决问题的一个一个步骤)描述出某一问题的解决过程,进行一定量的计算,最后都必须验证计算结果。

不同点:当计算量较大时,人工解题就有点力不从心了,而计算机每秒上亿次的计算速度却不在话下,并且只要算法正确,编程语句无误的话,使用计算机编写的解题程序可以反复使用。例如:sum=1+2+3+4+5……+(n-1)+n这样的问题。

二、算法概念的定义

什么是算法?我不忙着回答,先来看下面的这个小故事:

从前有1个农夫带着狼狗、山羊和萝卜去赶集。当他来到渡口时发现过河的小船除了能装下自己之外,只能再带2样东西过河。这使他有点犯愁了,因为如果农夫不在场的情况下,狼狗会咬山羊,山羊会吃萝卜。请同学们帮助农夫解决安全过河问题。

我们一起来分析两种解决问题的方法。

解题方法一

解题方法二

步骤1:农夫带着狼狗和山羊撑船过河

步骤1:农夫带着狼狗和萝卜撑船过河

步骤2:农夫带着山羊撑船返回

步骤2:农夫带着狼狗撑船返回

步骤3:从船上放下羊后,带萝卜过河

步骤3:从船上放下狼狗后,带山羊过河

步骤4:放下萝卜后,农夫撑船空身返回

步骤4:放下山羊后,农夫撑船空身返回

步骤5:农夫带山羊撑船过河

步骤5:农夫带狼狗撑船过河

从以上两个解题方法分析中,我们可以看到如果农夫执行方法一来过河,那么他可以顺利的带着东西过河,而方法二在执行过中肯定会发生意外(在执行完方法二中的步骤4之后,山羊吃萝卜的事情发生)。但是,无论怎么说这两种提出的带东西过河的过程都是在寻求解决问题的方法,只是方法一能够成功的解决问题,方法二是失败的。请同学们考虑一下,除了方法一之外,还有没有正确的解决问题的方法?

(一)算法的定义

由前面的这个小故事,我们引出对算法概念的定义。所谓算法,是指在使用计算机解题前,需要将解题方法转换成一系列具体的在计算机上可执行的步骤,这些步骤能够清楚的反映解题方法一步步“怎么做”的过程,这个过程就是通常所说的算法。

小知识:算法一词最早起源于公元9世纪的阿拉伯。有一位名叫花拉兹米的阿拉伯数学家,在他的一生中发现了很多求解算术问题的算法,并撰写了《合并与回代》一书,后被翻译成为拉丁文。合并与回代这两个词是指解方程时所用的两个主要过程,后被人简称为“代数学”。

(二)算法的特点

1、有穷性(有限性)。任何一种提出的解题方法都是在有限的操作步骤内可以完成的,哪怕是失败的解题方法。

2、确定性(唯一性)。解题方法中的任何一个操作步骤都是清晰无误的,不会使人产生歧义或者误解。

3、可行性(能行性)。解题方法中的任何一个操作步骤在现有计算机软硬件条件下和逻辑思维中都能够实施实现。

4、有0到多个输入。解题算法中可以没有数据输入,也可以同时输入多个需要算法处理的数据。

5、有1到多个输出。一个算法执行结束之后必须有数据处理结果输出,哪怕是输出错误的数据结果,没有输出的算法使毫无意义的。

三、算法的表示方法

算法的常用表示方法有如下三种:

1、使用自然语言描述算法

2、使用流程图描述算法

3、使用伪代码描述算法

我们来看怎样使用这3种不同的表示方法去描述解决问题的过程,以求解sum=1+2+3+4+5……+(n-1)+n为例。

第1种:使用自然语言描述从1开始的连续n个自然数求和的算法

① 确定一个n的值;

假设等号右边的算式项中的初始值i为1;

假设sum的初始值为0;

如果i≤n时,执行⑤,否则转出执行⑧;

计算sum加上i的值后,重新赋值给sum;

计算i加1,然后将值重新赋值给i;

⑦ 转去执行④;

⑧ 输出sum

的值,算法结束。

从上面的这个描述的求解过程中,我们不难发现,使用自然语言描述算法的方法虽然比较容易掌握,但是存在着很大的缺陷。例如,当算法中含有多分支或循环操作时很难表述清楚。另外,使用自然语言描述算法还很容易造成歧义(称之为二义性),譬如有这样一句话——“武松打死老虎”,我们既可以理解为“武松/打死老虎”,又可以理解为“武松/打/死老虎”。自然语言中的语气和停顿不同,就可能使他人对相同的一句话产生不同的理解。又如“你输他赢”这句话,使用不同的语气说,可以产生3种截然不同的意思,同学们不妨试试看。为了解决自然语言描述算法中存在着可能的二义性,我们提出了第2种描述算法的方法——流程图。

第2种:使用流程图描述从1开始的连续n个自然数求和的算法

vblearn01-01.gif

从上面的这个算法流程图中,可以比较清晰的看出求解问题的执行过程。在进一步学习使用流程图描述算法之前,有必要对流程图中的一些常用符号做一个解释。

vblearn01-02.gif

流程图的缺点是在使用标准中没有规定流程线的用法,因为流程线能够转移、指出流程控制方向,即算法中操作步骤的执行次序。在早期的程序设计中,曾经由于滥用流程线的转移而导致了可怕的“软件危机”,震动了整个软件业,并展开了关于“转移”用法的大讨论,从而产生了计算机科学的一个新的分支学科——程序设计方法。

无论是使用自然语言还是使用流程图描述算法,仅仅是表述了编程者解决问题的一种思路,都无法被计算机直接接受并进行操作。由此我们引进了第三种非常接近于计算机编程语言的算法描述方法——伪代码。

第3种:使用伪代码描述从1开始的连续n个自然数求和的算法

1) 算法开始;

2) 输入 n 的值;

3) i ←

1;

4) sum ←

0;

5) do while

i<=n

6)    { sum ← sum +

i;

7)     i ← i +

1;}

8) 输出 sum

的值;

9) 算法结束;

伪代码是一种用来书写程序或描述算法时使用的非正式、透明的表述方法。它并非是一种编程语言,这种方法针对的是一台虚拟的计算机。

伪代码通常采用自然语言、数学公式和符号来描述算法的操作步骤,同时采用计算机高级语言(如C、Pascal、VB、C++、Java等)的控制结构来描述算法步骤的执行顺序。但是,任何计算机高级程序设计语言都是无法被计算机直接执行的,必须先将其转换成低级语言(由高级程序设计软件中的编译器完成),然后才能被计算机执行。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值