资源预览内容
第1页 / 共46页
第2页 / 共46页
第3页 / 共46页
第4页 / 共46页
第5页 / 共46页
第6页 / 共46页
第7页 / 共46页
第8页 / 共46页
第9页 / 共46页
第10页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
程序设计思想变革及发展,Contents,程序设计的基本,概念,通俗地说, 程序就是人们让 计算机完成特定任务的一系列命令 的总称, 而用某种编程语言编写程 序的过程就是程序设计。,程序设计的步骤,程序设计面对的问题,面向过程编程,面向过程编程关注的是解决问题的步骤,先把软件 系统分解成多个模块,然后逐步细化,完成整个软 件系统。各模块之间存在相互调用和信息传递。,程序设计思想的发展,面向过程编程的产生,60 年代末, 国际著名学者E.W.Dijkstr首先提出了 “ 结构化程序设计” 的思想, 按照结构化程序设计 思想编制出来的程序称为结构化程序,即 面向 过程编程。、Pascal 和ortran 语言均采用 面向过程编程思想。,面向过程编程,面向过程编程的设计思想,采用“ 自顶向下,逐步求精” 的方法, 即当编写程序时 常从总体出发, 把任务分解为若干个多少有些独立 的模块, 对于每一个模块, 又需分解为若干个低一层 的子模块, 直到最低层的每一个子模块都有明确的 解决步骤为止, 每一个模块内部均是由顺序、选择 和循环三种基本结构组成, 其模块化的具体实现方 法是使用子程序。,面向过程编程的设计思想,正如上面的程序段所示, 结构化的程序方法通常是: (1) 定义变量及其初始值; (2) 根据事件发展顺序, 进行对应的处理。,面向过程编程的设计思想,示例: 铅笔数=5 钢笔数=6 圆珠笔数=4 其它笔数=7 / 销售程序段 铅笔数=铅笔数- 1 / 卖出了1 支铅 笔 其它笔数=其它笔数- 2 / 卖出了2 支其它笔 / 采购程序段 钢笔数=钢笔数+20 / 新进了20 支 钢笔 圆珠笔数=圆珠笔数+10 / 新进了10 支圆珠笔 ,面向过程编程的特点,面向过程的程序设计的特点:面向过程的程序设计 方法强调需求分析。 强调在软件生命周期的每个阶段结束之前必须进行 评审,从而提高了开发的成功率。,面向过程编程的问题产生的原因,原因是:某些系统类型需求是模糊的,预先定 义需求的策略对于某些类型的软件系统是适用 的。但是,对于数量占多数的一些应用系统, 其需求往往难以预先准确地指定。,面向过程编程的总结,面向过程编程的思维方式易于理解、条理清 晰,曾被广泛应用,但随着软件系统规模的扩大和 性能要求的提高,面向过程编程的缺陷日益明显。 软件系统规模的扩大,使得模块的分解难度加大, 模块之间的联系也更加复杂,软件的可靠性难以提 高,可维护性差。,为了提高软件系统的稳定性、可修改性、可重 用性。人们在实践中逐渐创造出软件开发的新 途径:面向对象的程序设计方法,面向对象编程,所谓面向对象就是在处理问题时,从该问题所存在 的事物本身出发,以类及对象作为基本构造单元, 逐步认识事物的属性和行为特征。,面向对象编程,面向对象编程的产生,结构化程序设计方法的可重用性差,使用面向 过程的方法来开发和维护此类软件将非常困难。 因此提出了面向对象编程。,面向对象编程的概念,面向对象编程思想,面向对象编程的中心思想是: 软件模块的分解并不 是从功能上, 或是从处理问题的算法上出发, 而是从 系统的组成上考虑。,优点,面向对象编程的总结,总体来说,较面向过程编程相比,面向对象编程可以描述更 复杂、更接近现实的系统,描述方法灵活,具备良好的可重 用性和可扩展性,提高了软件系统的质量和开发效率,保证 了对系统项目的有效管理。,面向方面编程,在软件术语中,面向方面的编程能够独立于任何继承层次 结构而应用改变类或对象行为的方面。,缺点,代码散乱和代码纠缠使得面向对象编程的系统 结构混乱,难以维护和扩展,降低了软件系统 的质量。,面向方面编程的产生,面向方面编程()的概念是regoriczaes 在 eroxarc 团队于 世纪 年代后期提出的, ilman 与riedman年在关于分离关 注点的讨论会上给出了得到公认的面向方面的定义。虽然面 向方面编程还处于不完善的阶段,但它已经受到了广泛的关 注。,面向方面编程,面向方面编程的概念,面向方面编程的思想,面向方面编程的特点,优点及缺点,面向方面编程的总结,较面向对象编程相比降低了系统实施的难度,解决了代码散 乱和代码纠缠的问题。但其本身存在的问题也给使用带来了 一定的困难。目前在开发过程中,面向方面编程技术只作为 面向对象编程技术的补充加以运用。,面向过程VS面向对象,以一辆汽车为例: 用面向过程的思想去考虑它应该是这样的:如何启动汽车、 如何起步、加速、刹车、熄火等一个个操作。而汽车在这里 并不是我们所关心的。 而面向对象则以汽车为对象,一切由汽车开始,以上的可 用操作,即功能是汽车这个对象本身所具有的,做任何操作 只要告诉汽车就可以。,面向过程VS面向对象,使用面向过程的语言,你需要告诉电脑要做什么,怎么做,一步步教它。 使用面向对象的语言,你只需要告诉它要做什么,不用告诉它过程。,面向过程VS面向对象,又例如五子棋,面向过程的设计思路就是首先分析问题的步骤: 1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。 把上面每个步骤用分别的函数来实现,问题就解决了。 而面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为: 1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。,面向过程VS面向对象,功能上的统一保证了面向对象设计的可扩展性。 因此,就实际编程情况来说在大多时候面向对象更为实际。,程序设计语言的变化及发展,机器语言,机器语言是计算机诞生和发展初期使用的语言,表现为二进 制的编码形式,是由CPU可以直接识别的一组由0和1序列构 成的指令码。,机器语言,例如,下面列出的一串二进制编码 011011 000000 000000 000001 110101 命令计算机硬件完成清除累加器,然后把内存地址为117的 单元内容与累加器的内容相加的操作。 可以看出,使用机器语言编写程序是很不方便的,它要求用 者熟悉计算机的所有细节,程序的质量完全决定于个人的编 程水平。,汇编语言,汇编语言开始于20世纪50年代初期,它是用助记符来表示每一条机器指令的。 例如,机器指令可以表示为 CLA 00 017,高级语言、算法语言,高级语言起始于20世纪50年代中期,它允许人们用熟悉自然语言和数学语言编写程序代码,可读性强,编程方便。例如,在高级语言中写出如下语句: X(A+B)/(C+D) 与之等价的汇编语言程序如下: CLA C ADD D STD M CLA A ADD B DIV M STD X,非过程化语言,用户在使用这种语言时,不必关心问题的解法和处理过程 的描述,只需说明所要完成的工作目标及工作条件,就能 得到所要的结果,而其他的工作都由系统来完成。,非过程化语言,例如,用户想检索出满足一定条件的学生名单,只要通过 SQL语言的SELECT语句告诉计算机查询的范围(查学生 信息表)、查询内容(查出姓名和年龄)和检索条件(查年龄 小于18岁的学生)即可得到查询结果。该语句形式如下: SELECT sname,age FROM students WHERE age18,智能性语言,第五代语言除具有第四代语言的基本特征外,还具备许多新 的功能,特别是具有一定的智能。 PROLOG(PROgramming in LOGic)语言是第五代语言 的代表。智能化语言主要应用于抽象问题求解、数据逻辑 、公式处理、自然语言理解、专家系统和人工智能等领域。,Thank You!,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号