大学计算机基础第6章-程序设计基础OK优质PPT.pptx
- 文档编号:14648215
- 上传时间:2022-10-23
- 格式:PPTX
- 页数:114
- 大小:559.77KB
大学计算机基础第6章-程序设计基础OK优质PPT.pptx
《大学计算机基础第6章-程序设计基础OK优质PPT.pptx》由会员分享,可在线阅读,更多相关《大学计算机基础第6章-程序设计基础OK优质PPT.pptx(114页珍藏版)》请在冰豆网上搜索。
b=b-a;
(乙计算思维难度系数2)方法3:
b=a*b;
a=b/a;
b=b/a;
(丙计算思维难度系数3),以上均为5060年代的编程技术案例,方法4:
c=a;
a=b;
b=c;
(丁计算思维难度系数0),资源利用的编程技术案例,通过以上各种问题求解的案例可以看出,问题求解的方法,将会受到人的思维活跃度的制约,也会受到条件或环境等因素的制约。
8,计算机开发问题求解的软件4个阶段,计算机软件问题求解的一般过程,1,2,3,4,9,计算机开发问题求解的软件4个阶段(续),1.问题求解的计划与需求分析阶段明确问题解决要达到的目标,当问题求解能够达到共识,要综合用户需求,制定软件需求说明书、系统功能说明书、用户使用手册等。
2.软件设计阶段根据需求分析建立问题求解的模型,进行概要设计和详细设计,并形成相应的文档,并准备典型而又完备的系统测试数据。
3.编码和测试阶段编写程序,并使用系统测试数据进行单元测试、组装测试和确认测试。
并审核问题求解的所有需求是否满足要求。
4.运行、评价与维护阶段将软件、硬件及其他相关设备集成在一起进行系统测试,主要测试系统的安全性、容错性,给出评价并进入系统运行与维护阶段。
10,6.1.2算法的定义与特征,算法的定义一个可终止过程的一组有序的、无歧义的、可执行的步骤的集合。
算法顺序算法由冯诺依曼型计算机体系结构所决定的,其主要思想是指令逐条运行,每次执行一步操作。
并行算法要求在一些更新式的计算机中可以在同一时间执行多条指令。
算法是对解决某个具体问题而采取的方法与步骤的完整和准确的描述。
它是指令的有限序列,其中每一条指令表示一个或多个操作。
11,算法的定义与特征,1976年NiklausWirth(也是Pascal语言发明者,1984年获得图灵奖)的专著:
AlgorithmsDataStructuresPrograms(算法十数据结构=程序)在计算机软件开发行业中产生了极为深远的影响,从而推动了软件开发技术和方法步入正轨,使人们开始深入研究数据结构和算法设计与分析的技术和方法。
12,算法的定义与特征(续),一个算法必须具备五项基本特征:
有穷性、确定性、数据输入、数据输出和可行性。
(1)有穷性算法是有序指令的集合,并在执行有穷步骤后能够终止。
(2)确定性每条指令必须有确切的含义,且无二义性。
在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入数据只能得到相同的输出数据。
(3)输入数据可有零个或多个输入数据。
这些输入数据取自于某个特定对象的集合。
(4)输出数据必须有一个或多个输出数据。
(5)可行性描述的操作都可以通过已经实现的基本运算执行有限次来实现,也可以证明整个算法实施后可以得到预期的解。
13,用自然语言编写算法,【例6.4】编写a与b的整型数值交换问题的算法。
输入a、b两个整数。
若有资源c,则c=a,a=b,b=c;
否则,a=a+b,b=a-b,a=a-b。
输出a、b交换后的结果,且算法到此结束。
结论:
从第步到第步的顺序结构叙述中,有头有尾满足了可执行。
在第步中是有条件的选择结构(也称分支结构)中内嵌了顺序结构,也满足可执行,符合算法的特征,可以称为两整数交换算法。
14,一个非算法的举例,【例6.5】一个非算法的计数过程。
令n为0;
置n为n+1;
返回。
不能称为算法。
原因:
违背了算法特征中
(1)、(4)、(5)。
15,稍加修改的计数器算法,【例6.6】编写一个不超过1万次的计数器算法:
置n为n+1若n小于10000,则返回;
否则,输出n之值,且算法到此结束。
是算法。
符合算法特征。
在算法设计过程中,其实还有有关正确性、可读性、健壮性、效率与低存储量需求,以及算法效率的度量等问题。
16,6.1.3算法的描述方法,流程图(FlowChart)PAD图(ProblemAnalysisDiafram,问题分析图)N-S图自然语言伪代码UML图(UnifiedModelingLanguage,统一建模语言),17,1.流程图,流程图(框图)用不同形状的几何图形表示不同性质的操作,用流程线指明算法的执行方向。
ANSI(美国国家标准化协会)、ISO(国际标准化组织)和我国国家标准中均有类似的规定。
常见的流程图符号如下:
向下或向右的流程线可以不画出箭头。
当流程线有交叉时,则画一半圆通过交叉点。
18,用流程图描述的计数器算法,19,2.N-S图,1973年美国两位学者提出无流程线的N-S图(盒图)。
结构化程序设计由三种基本结构而组成,则算法也应采用结构化描述方法,N-S图的基本单元是矩形框,框内可以有三种基本结构,形如堆积木,也只有一个入口和一个出口。
三种基本结构的N-S图如下:
20,用N-S图描述的计数器算法,21,3.伪代码,伪代码是介于自然语言和计算机语言之间的文字和符号,它不能被计算机所理解,但使用伪代码描述的算法很容易转变成某种编程语言。
/用伪代码描述的计数器算法如下:
n0donn+1whilen10000输出n,且算法到此结束。
常用的伪代码是用自然语言与类Pascal或类C语言相结合的方法来描述算法。
22,*4.UML图,UML(UnifiedModelingLanguage,统一建模语言)是一个复杂而庞大的系统建模语言,是一种典型的面向对象建模语言,它不是编程语言,而是用符号描述概念,概念间的关系描述为连接符号的线。
它的重要内容是各种类型的图形,分别描述软件模型的静态结构、动态行为及模块的组织和管理。
(有用例、静态、类、对象、行为等图),面向对象的分析与设计方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。
它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为被大众所接受的标准建模语言。
23,5.自然语言,自然语言是人们日常生活、工作和学习中使用的通用语言,使用自然语言的文字描述算法通俗易懂,但也有它的缺陷:
(1)容易产生歧义性,因为自然语言经常要根据上下文才能判别其含义,不太严格。
(2)自然语言很难清楚地表达算法的逻辑流程,对于算法中的条件判断、循环,尤其是在这些处理中还有多层嵌套,就很难用清晰而直观的语言来表达算法的流程。
因此仅适于描述简单问题。
24,流程图形的绘制工具,当使用图形描述算法时,流程图形的绘制工具有很多。
一般比较简单的图形可用Word或PowerPoint中的绘图工具栏来制作完成,若安装了功能强大的Visio,则可以更快地绘制具有专业水平的高质量图形。
在Visio2003中:
含有丰富的基本流程图形状。
能够快速、简便地建立流程图、组织图、日历时间表和其它多种图表。
支持缩放矢量图形(SVG),这是一种新的图形格式标准。
集合Internet的运用,可使用不同的语言创建绘图、创建包含多种语言的绘图以及跨多种语言共享绘图和展开协作。
通过支持新的汉字编码标准GB18030,可从这个新的字符编码集中创建包含汉字的绘图。
25,6.1.4程序设计方法与步骤,当设计问题求解方法时,如果能够结合程序设计方法进行设计,则利用计算机语言编程实现就要容易得多。
因此,了解和掌握程序设计方法与技术,也是直接关系到问题求解在设计阶段的成与败,失败的因素往往在于不了解计算机将会采用什么方法或技术去实现,而不得不重新设计问题求解的方法。
早期的程序设计方法结构化程序设计方法面向对象程序设计方法,26,1.早期的程序设计方法,早期(20世纪70年代中期之前)的程序设计方法追求程序的高效率,编程过份依赖技巧,忽视程序清晰,而不注重所编写程序的结构,很少考虑程序的规范化问题,也就是没有固定程序设计方法的时期。
程序的可读性、可重用性都很差。
其中典型问题是:
频繁使用goto语句,特意算计如何节省内存空间。
虽然这些方法存在很多问题,但当时受限于计算机运行速度慢、内存容量小、硬件价格昂贵,程序的规模也比较小,对于单人完成较为简单的任务,事实上这些方法还是经常被采用的。
27,2.结构化程序设计方法,结构化程序设计方法出现在20世纪70年代中期。
随着计算机硬件成本急剧下降,软件需要处理的复杂问题也就越来越多。
为了摆脱6070年代初的软件危机,因为当时编程无章可循,程序常常带有强烈的个人色彩,程序的可读性差,程序的调试和维护更困难,促使人们认真反省和研究程序设计中一系列根本性问题:
程序的基本结构是什么?
程序设计应当采用什么方法?
算法设计先于程序编码?
清晰第一,效率第二?
程序设计技术与方法如何规范化和工程化?
解决手工作坊式软件开发的弊端,28,2.结构化程序设计方法(续),荷兰科学家EWDijkstra早在1969年就提出了结构化程序设计(StructuredProgramming)的概念,强调从程序的结构和风格上来研究程序设计方法,提倡利用三种基本结构进行规范化程序设计,使程序具有模块化特征,结构化程序设计方法是从程序要实现的功能的角度出发,目的是使程序具有良好的结构框架。
1971年,NiklausWirth教授推出了Pascal结构化程序设计语言,在计算机软件开发与编程人员中,兴起了学用Pascal语言结构化编程的高潮。
29,结构化程序设计方法的特点,使得程序层次分明、逻辑清晰、功能独立,简化了开发程序的复杂性,增加了程序的可靠性,能够充分发扬团队精神快速而高效地完成项目开发,增强系统的可维护性,使程序设计更加规范化。
结构化程序设计方法的特点:
自顶向下、逐步求精划分功能模块结构化编程,30,3.面向对象程序设计方法,面向对象程序设计方法出现在20世纪80年代中后期。
随着计算机硬件技术的高速发展,计算机的性能也越来越强,用途也更加广泛。
软件产业所面临的问题是用户需求不断扩大,程序也就越来越庞大而复杂。
在面向过程的程序设计中软件设计的主要工作就是用不同的功能模块分别描述问题的求解过程。
在结构化程序设计中数据和处理数据的过程分离为相互独立的实体,它只是封装了各个功能模块,而每个功能模块可以随意修改未加封装的数据。
新时期的新问题,以及软件产业的更高要求,迫使人们再次寻求更加科学、更加先进的程序设计方法。
31,面向对象程序设计(OOP),Object-OrientedProgramming是建立在结构化程序设计基础上的,但它不再是从功能入手,而是从对象入手。
采用的是一种结构模拟的方法。
用“类”描述具有相同属性特征的一组对象,用“封装”将对象的属性和行为分别用适当的数据结构和方法来描述,并将它们绑定在一起形成一个可供访问的基本逻辑单元,利用“继承”实现类与类之间的数据和方法的共享。
32,面向对象程序设计的重要概念,面向对象程序设计的重要概念对象(Object)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机 基础 程序设计 OK