计算机基础原理7.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机基础原理7

第7.8章 算法与程序 1.什么是算法 软件的核心是程序,程序的核心是算法! 算法:算法是描述求解问题方法的操作步骤集合,这些操作步骤必须具有确定性、可终止性和可执行性。 算法的时间复杂度是指算法需要消耗的时间资源。 算法的空间复杂度是指算法需要消耗的空间资源。 2.算法的设计要求 1)正确性(Correctness)  有4个层次: A.程序不含语法错误; B.程序对几组输入数据能够得出满足规格要求的结果; C.程序对精心选择的、典型的、苛刻的、带有刁难性的几组输入数据能够得出满足规格要求的结果; D.程序对一切合法的输入数据都能产生满足规格要求的结果。 2.算法的设计要求 2)可读性(Readability)? 算法的第一目的是为了阅读和交流;? 可读性有助于对算法的理解;? 可读性有助于对算法的调试和修改。 2.算法的设计要求 3)高效率与低存储量? 处理速度快;存储容量小? 时间和空间是矛盾的、实际问题的求解往往是求得时间和空间的统一、折中。? 算法的一个简单的例子 我们有一串随机数列。我们的目的是找到这个数列中最大的数。如果将数列中的每一个数字看成是一颗豆子的大小 可以将下面的算法形象地称为“捡豆子”: 1.首先将第一颗豆子(数列中的第一个数字)放入口袋中。 2.从第二颗豆子开始检查,直到最后一颗豆子。如果正在检查的豆子比口袋中的还大,则将它捡起放入口袋中,同时丢掉原先的豆子。 3.最后口袋中的豆子就是所有的豆子中最大的一颗。 算法的一个简单的例子 下面是一个形式算法,用近似于编程语言的 伪代码 表示 给定:一个数列“list,以及数列的长度length(list) largest = list[0] ; for (counter = 1;counterlength(list);counter++) if( list[counter] largest) largest = list[counter] 3.算法的基本元素 1).变量 2)赋值 3)分支 4)循环 5)过程(函数) 4.算法的表示 1.文字形式 2.伪码形式 3.程序形式 5.程序设计语言 在过去的几十年间,大量的程序设计语言被发明、被取代、被修改或组合在一起。尽管人们多次试图创造一种通用的程序设计语言,却没有一次尝试是成功的。 之所以有那么多种不同的编程语言存在的原因是,编写程序的初衷其实也各不相同;新手与老手之间技术的差距非常大,而有许多语言对新手来说太难学 还有,不同程序之间的运行成本(runtime cost)各不相同。 5.程序设计语言 程序设计语言的发展历史 1)机器语言 2)汇编语言 3)高级程序设计语言 1)机器语言 1949年,普林斯顿大学von Neumann研制出了EDVAC电子离散变量计算机,这是世界上第一台能把可执行的程序放在磁芯中的计算机,从此现代意义上的计算机便真正诞生了。 这台计算机一问世便奠定了所谓von Neumann式体系结构:程序与数据不加区别地存储在(磁芯)存储器中。它所能处理的最基本的信息单位就是二进制数字 ,即计算机只能识别理解由0与1构成的二进制序列。 那时人们要用二进制机器代码编成代码序列(即程序)来控制计算机执行规定的操作。这种代码就是第一代程序设计语言或称机器语言。 1)机器语言 机器语言的特点是它能直接反映计算机的硬件结构,用之编写的程序不须作任何处理即可直接输入计算机执行。 编写机器语言程序是一种非常枯燥而繁琐的工作,要记住每一条指令的编码与含义极端困难,编写出的程序既不易阅读也不易于修改。 而且由于机器语言是特定于机器的,不同的机器有不同的指令系统,人们无法把为一种机器编写的程序直接搬到另一种机器上运行。 由于机器语言程序直观性差,与人们习惯使用的数学表达式及自然语言差距太大,故而难学、难记,程序难以编写、调试、修改、移植和维护,限制了计算机的推广作用。 2)汇编语言 人们设想,能不能用更接近于自然语言与数学语言的语言。经过努力,第二代语言——汇编语言问世了。 汇编语言也是一种面向机器的程序设计语言,它用助记符号来表示机器指令的操作符与操作数(亦称运算符与运算对象),如:用“ADD”取代机器语言中的加法操作。 汇编指令与机器指令之间关系是一对一的关系 汇编语言程序要经过一特定的翻译程序(即汇编程序),将其中的各个指令逐个翻译成相应的机器指令后才能执行。 汇编语言的问世使人们在编写程序时不必再花较多的精力去记忆、查询机器代码与地址,编程工作变得容易多了 2)汇编语言 尽管与机器语言相比,汇编语言的抽象程度要高得多,但由于它们之间是一对一的关系,用它编写哪怕是一个很简单的程序,也要使用数百条指令。 为了解决这个问题,人们又研制

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档