第5章程序设计基础课件

PPT
  • 阅读 63 次
  • 下载 0 次
  • 页数 66 页
  • 大小 722.500 KB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
第5章程序设计基础课件
可在后台配置第一页与第二页中间广告代码
第5章程序设计基础课件
可在后台配置第二页与第三页中间广告代码
第5章程序设计基础课件
可在后台配置第三页与第四页中间广告代码
第5章程序设计基础课件
第5章程序设计基础课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 66
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】第5章程序设计基础课件.ppt,共(66)页,722.500 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2497.html

以下为本文档部分文字说明:

5.1程序设计概述5.2算法概述5.3软件工程概述第5章程序设计基础5.1.1程序设计的基本过程5.1.2程序设计的方法5.1.3程序设计语言5.1程序设计概述5.1.1程序设计的基本过程程序设计:编写程序的过程程序设计过程包括分析、设计、编码、测试、编写文档等不同阶段5.1.

2程序设计的方法结构化程序设计方法面向对象程序设计方法结构化程序设计结构化程序设计的原则◼自顶向下◼逐步细化◼模块化◼限制使用goto语句结构化程序设计结构化程序设计的基本结构◼顺序结构◼选择结构◼循环结构结构化程序设计顺序结构◼按照程序语句

的书写顺序一条一条的执行◼最基本、最常用的结构结构化程序设计选择结构(分支结构)◼根据设定的条件,判断应该执行哪一条语句◼包括单分支结构、双分支结构和多分支结构Aab条件为真?YNABab条件为真?YN结构化程序设计循环结构(重复结构)◼根据给定的条件,判断是

否需要重复执行相同的程序段◼分为当型循环结构和直到型循环结构Aab条件为真?YNabYN条件为真?A面向对象程序设计结构化程序设计又称为面向过程的程序设计面向对象程序设计方法模拟人们理解和处理客观

世界的方式来分析问题,把系统视为一系列对象的集合,分析者、设计者和编程者都可以使用相同的概念,从而使面向对象的程序设计方法能比较自然地模拟客观世界的活动,使问题描述空间与解空间在结构上尽可能一致。面向对象的基本概念对象:客

观世界中的任何实体,既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。对象的特点:◼标识唯一性◼分类型◼多态性◼封装性◼模块独立性面向对象程序设计类:◼类是对象的抽象,它描述了该对象类型的所有对象的性质,而一个

对象则是其对应类的一个实例消息◼面向对象的世界是通过对象与对象间彼此的相互合作来推动的,对象间的这种相互合作需要一个机制来协助完成,这种机制称为“消息”面向对象程序设计继承◼使用已有的类定义作为基础建立新类的定义技术◼已有的类可当做基类来引用,新类可当做派生类来引用

◼继承具有传递性面向对象程序设计封装性◼所谓封装,指的就是类中定义的数据只能被类中定义的方法所访问,除此之外别无它法◼封装的结果实际上隐蔽了复杂性,并提供了代码重用性,从而降低了软件开发的难度。多态性◼对象根据所接收的消息而做出动作,同样的消息被不同的对象接收

时,可导致完全不同的行动,该现象称为多态性面向对象程序设计面向对象方法的优点:◼与人类习惯的思维方法一致◼稳定性好◼可重用性好◼易于开发大型软件产品◼可维护性好5.1.3程序设计语言程序设计语言就是用于书写计算机程序的一组记号和一组规则。分类:◼机器语言◼汇编语言◼高级语言(1)机器语言由0

、1代码组成,能被计算机硬件系统直接识别和执行的计算机语言,不需要翻译。特点:•占用空间小、执行速度快•不易学习和修改•不同类型机器的机器语言不同,通用性差程序设计语言机器语言程序注释1011000000001000

把8存放到累加器A中0010110000001010将10与累加器中的8相加,结果存在A中11110100程序结束机器语言实例(2)汇编语言(符号语言)程序设计语言用助记符代替机器语言中的指令和数据特点:•易

修改,保持速度快,占用空间小•不同类型机器的汇编语言不同,通用性差实例:8+10加法题MOVAX,8HMOVBX,0AHADDBX,AX(3)高级语言程序设计语言由贴近自然语言的“词”和“数学公式”组成特点:•易学、易读,易修改•通用性好,不依赖于机器•具有很强的通用性和可移植性实

例:c=8+10常用的程序设计语言面向过程语言◼Fortran、Pascal、C等面向对象语言◼C++、java语言处理系统的作用就是把程序语言编写的程序变换成计算机上执行的程序分类•汇编程序•编译程序•解释程序

程序设计语言处理系统汇编语言源程序机器语言程序汇编程序•汇编程序程序设计语言处理系统高级语言源程序高级语言目标源程序程序编译程序连接程序可执行程序计算结果数据解释程序计算结果数据编译程序:执行速度快,但占用内存多,可脱离编译程序和源程序独立存在并反复使用.如:C

/C++、Pascal、FORTRAN等解释程序:边解释边执行,便于查错,占用内存少,执行效率低、速度慢。如:BASIC语言程序设计语言处理系统编译程序与解释程序的区别5.2.1算法的概念5.2.2算法的表示5.2.3常用算法介绍5.2算

法概述算法算法(Algorithm):算法就是一个有穷规则的集合,其中的规则确定了一个解决某一特定类型问题的运算序列。5.2.1算法的概念算法的特性①有限性②确定性③可行性④输入⑤输出算法的表示方法算法的表示方法:⚫自然语言;⚫程序流程图;⚫N-S流程图;⚫伪代码;自然语言

使用自然语言描述求解sum=1+2+3+4+5……+(n-1)+n的方法。①确定一个n的值;②设等号右边的算式项中的初始值i为1;③设sum的初始值为0;④如果i≤n时,执行⑤,否则转出执行⑧;⑤计算sum加上i的值后,重新赋值给sum;⑥计算i加1,然后将值重新赋值给i;⑦转

去执行④;⑧输出sum的值,算法结束。自然语言自然语言描述方法的缺点:◼自言语言的歧异性容易导致算法执行的不确定性。◼自然语言的语句一般太长,从而导致了用自然语言描述的算法太长。◼由于自然语言表示的串行性,因此,当一个算法中循环和分支较多时就很难清晰地表示出来。◼自然语言表示的算法不便翻译成计

算机程序设计语言理解的语言。程序流程图符号名称意义作业的开始或结束流程图的开始和结束处理具体的任务或工作决策不同方案选择流程线指示路径方向输入输出表示数据的输入输出操作文件输入或输出文件预定义流程使用某预定义处理程序注释表示附注说明之用

连接流程图向另一流程图之出口或从另一地方之入口程序流程图符号程序流程图以求解sum=1+2+3+4+5……+(n-1)+n为例来介绍算法的流程图描述方法N-S流程图N-S流程图简称N-S图,也被称为盒图。N-S图是在1973年,由

美国学者I.Nassi和B.Shneiderman提出来的,并分别取两人名字的首字母来进行命名。N-S图是在程序流程图的基础上去掉流程线,将全部算法写在一个矩形框内,在该框内还可以包含其他的从属于它的框的一种算法表示方法。即由一

些基本的框组成的一个大框。N-S流程图N-S流程图的三大结构顺序结构选择结构循环结构当条件成立语句块1直到条件成立语句块1N-S流程图写出求sum=1+2+3+4+5……+(n-1)+n的N-S图的描述方法伪代码用流程图或N-S图来描述算法虽然形象直

观,但在算法设计过程中使用起来并不十分方便,特别是当算法稍微复杂一点时,不易修改。在实际的算法设计中,常常使用自然语言或计算机语言或类计算机语言来描述。这里的类计算机语言是一种非计算机语言,借用了一些高级语言的某些成分,没有加入严格的规则,而且不能够

被计算机所接受,称其为“伪代码”。伪代码写出求sum=1+2+3+4+5……+(n-1)+n的伪代码的描述方法(1)算法开始;(2)输入n的值;(3)i←1;(4)sum←0;(5)dowhilei<=n(6){sum←sum+i;(7)i←i+1;}(8)输出sum的值;(9)算法结束;5.

2.3常用算法介绍1.枚举法2.递推法3.求最大值、最小值问题4.交换两个变量的值5.排序算法6.查找算法枚举法又称为穷举法基本思想:根据题目的部分条件确定答案的大致范围,然后在此范围内对所有可能的情况逐一验证,直到所有情况均通过验证。若某个情况符合题目条件,则为本题的一个答

案;若全部情况验证完后均不符合题目的条件,则问题无解。特点:算法简单,容易理解,运算量大1.枚举法1.枚举法应用:百钱买百鸡问题假定公鸡每只5元,母鸡每只3元,小鸡3只1元。现有100元钱要求买100只鸡,问共有几种购鸡方案?问题分析:根据题目,设公鸡、母鸡、小鸡各为x,y,z只,列出

方程为:x+y+z=1005x+3y+z/3=100巧妙和高效的算法很少来自于穷举法,但基于以下因素,穷举法仍是一种重要的算法设计策略:①穷举法几乎可以通用于任何领域的问题求解,可能是唯一一种解决所有问题的一般性方法②即使效率低下,仍可用穷举法求解一些小规

模的问题实例;③如果解决的问题实例不多,而穷举法可用一种可接受的速度对问题求解,那么花时间去设计一个更高效地算法是得不偿失的。1.枚举法[思考题]举例说明生活中的穷举法应用。递推法又称为迭代法基本思想:利用问题本身所具有

的某种递推关系求解问题。从初值出发,归纳出新值与旧值间存在的关系,从而把一个复杂的计算过程转换为简单过程的多次重复,每次重复都从旧值的基础上递推出新值,并由新值代替旧值。2.递推法2.递推法基本思想:采用如同打擂台的方法。在n个数中,先假设第一个数为最大值,称为擂主,依次

同第2,3,……,n个数据逐一比较,一旦某个数大,马上替换擂主;所有值比较完,最大值也就获得。求最小值问题则先假设第一个数为最小值。3.求最大值、最小值问题3.求最大值、最小值问题应用:对输入的若干个学生成绩,求出最高分和最低分。max=min=a[0];用max依次与后续的成绩进行对比,若比

max大则将相应值赋值给max;用min依次与后续的成绩进行对比,若比min小则将相应值赋值给min;最后输出max和min的值。基本思想:由于计算机内存的特点,因此,计算机中交换两个变量的值只能采取间接交换的方法。4.交换两个变量的值4.交换两个变量的值有黑和蓝两个

墨水瓶,但却把黑墨水装在了蓝墨水的瓶子里,而把蓝墨水错装在了黑墨水瓶子里,要求将其互换。4.交换两个变量的值应用:a=5,b=10,交换a,b的值并输出引入一个新的变量c;将a的值赋值给c;将b的值赋值给a;将c的值赋值给

b;选择排序的基本思想:每一轮从待排序列中选取一个关键码最小的记录与第i个位置的记录进行交换,也即第一轮从n个记录中选取关键码最小的记录与第1个位置的记录交换,第二轮从剩下的n-1个记录中选取关键码最小的记录与第2个位置的记录进行交换,直到整个序列的记录选完5.排序算法5.排序算法【例5.

6】给出一组关键字(28,6,72,85,39,41,13,20),排序后得到(6,13,20,28,39,41,72,85),其选择排序过程如下初始关键字:286728539411320第1轮选择后:□628728539411320第2轮选择后:6

□13728539412820第3轮选择后:613□208539412872第4轮选择后:61320□2839418572第5轮选择后:6132028□39418572第6轮选择后:613202839□418572第7轮选择后:613

20283941□7285查找是指从给定的数据结构中查找某个给定的值。常用的查找算法有顺序查找、二分查找等等。顺序查找是直接从头到尾搜索集合中满足条件的值。二分查找是必须首先将集合按照降序或升序排序,然后利用折半技术搜索集合中满足条件的值

。6.查找算法6.查找算法二分查找的方法如下:将x与线性表的中间项进行比较;若中间项的值等于x,则说明查找到,查找结束;若x小于中间项的值,则在线性表的前半部分以相同的方法进行查找。若x大于中间项的值,则在线性表的后半部分以相同的方法进行查找。这个过程一直进行到

查找成功或子表长度为0为止。【例5.7】有序表中关键字序列为3,10,13,17,40,43,50,70,要查找关键字值为43的数据元素6.查找算法5.3.1软件危机5.3.2软件工程5.3.3软件生存周期5.3软件工程概述5.3.1软件危机软件危机是指在计算机软件的开发和维护过程中所

遇到的一系列严重问题,主要有以下一些表现形式。①软件开发费用和进度失控。②软件的可靠性差。③生产出来的软件难以维护。④用户对“已完成”的系统不满意现象经常发生。5.3.2软件工程IEEE给出的软件工程的定义是:软件工程是将系统化的、规范的、可度量的方法应用于软件的开

发、运行、维护过程,即将工程化应用于软件中的方法的研究。人们给出的一般定义是:软件工程是一门旨在生产无故障的、积极交付的、在预算之内的和满足用户需求的软件的学科。实质上,软件工程就是采用工程的概念、原理、技术和方法来开发与维护软件,把经过实践

考验而证明正确的管理方法和最先进的软件开发技术结合起来,应用到软件开发和维护过程中,来解决软件危机问题。5.3.2软件工程软件工程包括三要素:方法、工具和过程。软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有

效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难软件工程的原则:抽象、信息隐藏、模块化、局部

化、一致性、确定性、完备性和可验证性5.3.3软件生存周期软件定义期——“做什么”,确定工程的总目标和可行性,导出实现工程目标应使用的策略及系统必须完成的功能,估计完成工程需要的资源和成本,制定进度表。软件开发期——“如何做”,具体设计和实现在前一个使其定义的软件软件维护期——“如何长久的做

”,使软件持久地满足用户的需求。软件过程模型定义:从软件项目需求定义直至软件运行维护为止,跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。常见的软件过程模型:◼瀑布模型◼原型模型◼

增量模型◼螺旋模型瀑布模型(WaterfallModel)1970年提出,又称线性模型,是历史上第一个正式使用并得到业界广泛认可的软件开发模型具体划分:◼制定计划、需求分析、软件设计、程序编写、软件测试、运行维护◼规定了自上而

下、相互衔接的固定次序原型模型原型模型的基本思想是:原型模型从需求采集开始,如图所示,然后是“快速设计”,集中于软件中那些对用户可见的部分的表示,并最终导致原型的创建。螺旋模型1988年由TRW公司的B.Boehm提出,将瀑布模型和演化模型结合,并强调了其他模型都忽略了的风险分析。

并发模型并发模型也称并发工程,它表达了在软件项目任一阶段的活动之间存在的并发性。基于构件的开发模型基于构件的开发(CBD)模型(如图5.18所示)融合了螺旋模型的许多特征,本质上是演化型的,要求软件创建迭代过程,但是基于构件的开发模型是利用预先

封装好的软件构件来构造应用的。小结•程序设计的基本方法•程序设计语言•算法的表示方法•常用的算法•软件工程•软件生存周期

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?