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

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个自然数求和的算法

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

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

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

第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等)的控制结构来描述算法步骤的执行顺序。但是,任何计算机高级程序设计语言都是无法被计算机直接执行的,必须先将其转换成低级语言(由高级程序设计软件中的编译器完成),然后才能被计算机执行。

怎么用计算机标准表示方法,算法及其表示方法相关推荐

  1. 用计算机解题前 需要将解题方法,算法及其表示方法

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

  2. 计算机组成原理---第二章运算器和运算方法

    一.数据与文字的表示方法 (1) 数据格式 (1) 定点数的表示方法 假设用一个 n+1 位的字来表示一个定点数 x,xn 放在最左位置,并用数值 0 和 1 分别代表正号和负号,其余位数代表它的量值 ...

  3. 计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文

    计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文 版权所有使用者请联系我 刘创 QQ:903188593 2.2.2 Phong光照模型 事实上对于漫反射的物体表面,使用Lambert ...

  4. 学校计算机数据采集处理系统,一种计算机数据采集处理分析系统的制作方法

    一种计算机数据采集处理分析系统的制作方法 [技术领域] [0001]本发明涉及数据分析领域,具体涉及一种计算机数据采集处理分析系统. [背景技术] [0002]当进行数据分析时,经常面对一类业务需要多 ...

  5. mergesort_Mergesort算法的功能方法

    mergesort by Joe Chasinga 通过乔·查辛加(Joe Chasinga) Mergesort算法的功能方法 (A functional approach to mergesort ...

  6. 讨论帖:比特币中的SHA256算法的实现与标准的SHA256算法实现是否相同?

    近日阅读了比特币源码中与哈希相关的部分,对于其中一些细节还是有不清晰的地方. 于是我写了一个小的测试demo:sha256_test,代码下载 分别测试了三个版本对于SHA-256算法的实现: Bit ...

  7. 计算机算法对程序设计的作用,算法计算机论文,关于数学算法对计算机编程优化相关参考文献资料-免费论文范文...

    导读:本论文主要论述了算法计算机论文范文相关的参考文献,对您的论文写作有参考作用. (重庆人文科技学院 理工学院数学系,重庆 401572) 摘 要:数学算法是一种将很多问题进行归纳总结,然后采用统一 ...

  8. 计算机地图制图原理与算法,计算机地图制图原理与算法基础.ppt

    计算机地图制图原理与算法基础;目录:;第一章 绪论; 计算机地图制图又称为自动化地图制图或机助地图制图(Computer-Aided Cartography,简称CAC).它是研究以传统的地图制图原理 ...

  9. JPEG2000图象压缩标准及其关键算法(转)

    JPEG2000图象压缩标准及其关键算法(转) 摘  要:JPEG2000是为适应不断发展的图像压缩应用而出现的新的静止图像压缩标准.阐述了JPEG2000图像编码系统的实现过程, 对其中采用的基本算 ...

最新文章

  1. linux安装eclipse运行web,Linux安装Tomcat,运行Eclipse,web项目
  2. 利用切片操作,实现一个trim()函数,去除字符串首尾的空格,不调用str的strip()方法:
  3. 神经网络模式识别matlab,基于matlab仿真的神经网络模式识别
  4. intellij出现Initial job has not accepted any resources;
  5. QQuickWidget + QML编程实现酷炫动态动画效果
  6. 阿里云混合云新一代运维平台的演进与实践
  7. python 2.7版本解决TypeError: 'encoding' is an invalid keyword argument for this function
  8. python+matlab2014b混合编程
  9. Mysql学习——建表语句详解
  10. 微型计算机上的射箭成为什么,《说文解字》第429课:“谢”字里为什么有一个“射箭”的“射”...
  11. 队列同步器(AbstractQueuedSynchronizer)(一)
  12. 百度可视化工具Sugar简单介绍以及使用说明
  13. element中滑块组件Slider展示一天24小时的时间问题
  14. 前端集成解决方案(webpack、gulp)
  15. 第十九章:如何组建团队
  16. 自己动手做聊天机器人 一-涉及知识
  17. ubuntu + eigen3 安装(解决 fatal error: Eigen/Core: No such file or directory)
  18. 记一次解决Intel 9462无线网卡的笔记本安装Ubuntu16.04后无法连接WIFI问题的艰难历程
  19. JavaScript性能优化详解
  20. 证书关于 pem der cer crt csr pfx 的区别

热门文章

  1. oracle ebcdic 转换,使用sqlldr导入EBCDIC格式数据并新增Oracle字符集
  2. [模拟电路]ADI放大器笔记 - 差分放大器单端输入电阻设计
  3. Android-Q显示白平衡
  4. MoCo 动量对比学习——一种维护超大负样本训练的框架
  5. 洛谷 P4094 [HEOI2016/TJOI2016]字符串 后缀数组+二分+主席树
  6. 《咸鱼分享》DNS轮询
  7. TensorFlow 线性代数编译框架 XLA
  8. 编辑视频贴纸软件_视频贴纸软件介绍
  9. 为什么java反射比较慢
  10. [RK3288][Android6.0] 调试笔记 --- apk安装添加黑名单