软件工程CH6PPT文件格式下载.ppt
《软件工程CH6PPT文件格式下载.ppt》由会员分享,可在线阅读,更多相关《软件工程CH6PPT文件格式下载.ppt(67页珍藏版)》请在冰豆网上搜索。
p清晰性好的程序一般效率较低;
清晰性好的程序一般效率较低;
p要求效率高的程序往往清晰度不太好。
要求效率高的程序往往清晰度不太好。
n对于大多数模块,编码时对于大多数模块,编码时应该把应该把简明清晰简明清晰放在放在效效率率前。
前。
10/27/202246.1编码概念编码概念p【目标】【目标】n产生产生正确可靠正确可靠、简明清晰简明清晰、具有、具有较高效率较高效率的源程序。
p【结构化的程序设计】【结构化的程序设计】n严格控制严格控制GOTO语句语句10/27/202256.1编码概念编码概念p例例1:
打印:
打印A、B、C中的最小值中的最小值p程序程序1pif(AB)goto120;
pif(BC)goto110;
p100write(C);
goto140;
p110write(B);
p120if(AC)goto130;
pgoto100;
p130write(A);
p140end10/27/202266.1编码概念编码概念p例例1:
打印A、B、C中的最小值中的最小值p程序程序2pif(AB)and(AC)thenpwrite(A);
pelsepif(AB)and(BC)thenpwrite(B);
pelsepwrite(C);
pendifpendif10/27/202276.1编码概念编码概念p【目标】【目标】n产生产生正确可靠正确可靠、简明清晰简明清晰、具有、具有较高效率较高效率的源程序。
p【结构化的程序设计】【结构化的程序设计】n严格控制严格控制GOTO语句语句n使用语言中基本控制结构表示程序逻辑使用语言中基本控制结构表示程序逻辑p顺序、选择、重复顺序、选择、重复;
p选用的控制结构只准许有选用的控制结构只准许有一个入口一个入口和和一个出口一个出口;
10/27/202286.1编码概念编码概念p例例2:
二分法求方程二分法求方程f(x)0在区间在区间a,b中的根中的根(假设在闭区间假设在闭区间a,b上函数上函数f(x)有唯一的一个零有唯一的一个零)10/27/202296.1编码概念编码概念p例例2:
二分法求方程二分法求方程f(x)0在区间在区间a,b中的根中的根p程序程序1pf0=f(a);
f1=f(b);
pif(f0*f1=0)px0=a;
x1=b;
pfor(i=1;
i=n;
i+)pxm=(x0x1)/2;
fm=f(xm);
pif(abs(fm)eps|abs(x1x0)0)x0=xm;
f0=fm;
pelsex1=xm;
ppfinish:
printf(xm);
p正常出口正常出口非正常出口非正常出口10/27/2022106.1编码概念编码概念p例例2:
二分法求方程二分法求方程f(x)0在区间在区间a,b中的中的p程序程序2pf0=f(a);
ppprintf(xm);
p正常出口正常出口非正常出口非正常出口10/27/2022116.1编码概念编码概念p例例2:
二分法求方程二分法求方程f(x)0在区间在区间a,b中的中的p程序程序3pf0=f(a);
i=1;
finished=0;
pwhile(i=n&
0=finished)pxm=(x0x1)/2;
pppprintf();
p正常出口正常出口引入变量引入变量finished,改改for型循环为型循环为while型,型,将单入口多出口结构改为单入口单出口结构。
将单入口多出口结构改为单入口单出口结构。
10/27/2022126.1编码概念编码概念p【目标】【目标】n产生产生正确可靠正确可靠、简明清晰简明清晰、具有、具有较高效率较高效率的源程序。
p【基本思想【基本思想自顶向下,逐步求精】自顶向下,逐步求精】n把一个模块的功能逐步分解。
把一个模块的功能逐步分解。
n详细设计详细设计p模块功能模块功能细化为一系列细化为一系列具体的步骤具体的步骤。
n编码阶段编码阶段p用程序设计语言把用程序设计语言把具体的步骤具体的步骤翻译成翻译成一系列的程序一系列的程序。
10/27/2022136.1编码概念编码概念p例例3:
用筛选法求:
用筛选法求100以内的素数以内的素数。
(从从2到到100中中去掉素数去掉素数2,3,5,7的倍数,剩下的就是的倍数,剩下的就是100以内的以内的素数。
素数。
)p【先按程序功能写出一个框架】先按程序功能写出一个框架】nmain()nn/1、建立、建立2到到100的数组的数组A,其中,其中Aiin/2、建立、建立2到到10的素数表的素数表Bn/3、若、若Aii是是B中任一数的倍数,则剔除中任一数的倍数,则剔除Ain/4、输出、输出A中所有没有被剔除的数中所有没有被剔除的数n10/27/2022146.1编码概念编码概念p例例3:
p【对框架中的局部再做细化,得到整个程序】对框架中的局部再做细化,得到整个程序】nmain()nnfor(inti=2;
i=100;
i+)Ai=i;
/1nB1=2;
B2=3;
B3=5;
B4=7;
/2nfor(intj=1;
j=4;
j+)nn/*3.1检查检查A所有的数能否被所有的数能否被Bj整除整除n并将能被整除的数从并将能被整除的数从A中剔除中剔除*/nnfor(intk=2;
k=100;
k+)nn/*4.1若若Ak没有被剔除,则输出没有被剔除,则输出*/nn10/27/2022156.1编码概念编码概念p例例3:
p【对框架中的局部再做细化,得到整个程序】对框架中的局部再做细化,得到整个程序】nmain()nnnfor(j=1;
j+)nfor(i=2;
i+)nif(0=Ai%Bj)Ai=0;
/3.1nnnfor(i=2;
i+)nif(0!
=Ai)nprintf(“A%d%dn”,i,Ai);
/4.1nn10/27/2022166.1编码概念编码概念p【基本思想【基本思想自顶向下,逐步求精】自顶向下,逐步求精】优点:
优点:
n符合人们解决复杂问题的普遍规律符合人们解决复杂问题的普遍规律。
n用用先全局后局部,先抽象后具体先全局后局部,先抽象后具体的过程开发出来的过程开发出来的的程序具有清晰的层次结构程序具有清晰的层次结构。
p同一层节点的细化工作相互独立。
同一层节点的细化工作相互独立。
p每一步工作仅在上层节点的基础上做不多的设计扩每一步工作仅在上层节点的基础上做不多的设计扩展。
展。
10/27/2022176.2程序设计语言程序设计语言计算机硬计算机硬件仅仅知件仅仅知道道0和和1有问题需有问题需要计算机要计算机解决的人解决的人交流的鸿沟交流的鸿沟10/27/2022186.2程序设计语言程序设计语言p程序设计语言程序设计语言指编写计算机程序所用的语言指编写计算机程序所用的语言,是是人与计算机进行交流的工具人与计算机进行交流的工具。
p【程序设计语言的特性】【程序设计语言的特性】n会影响人思维和解决问题的方式会影响人思维和解决问题的方式;
n会影响人和计算机会影响人和计算机通信的方式和质量通信的方式和质量;
n会影响其它人会影响其它人阅读和理解程序的难易程度阅读和理解程序的难易程度。
程序设计语言程序设计语言计算机硬计算机硬件仅仅知件仅仅知道道0和和1有问题需有问题需要计算机要计算机解决的人解决的人编码以前一定要慎重地选择一种适当的程序设计语言。
编码以前一定要慎重地选择一种适当的程序设计语言。
10/27/2022196.2.1程序设计语言分类程序设计语言分类p按发展过程,程序设计语言分为:
按发展过程,程序设计语言分为:
低级语言低级语言高级语言高级语言硬件硬件依赖于机器依赖于机器系统软件系统软件硬件硬件独立于机器独立于机器机机器器语语言言汇汇编编语语言言10/27/2022206.2.1程序设计语言分类程序设计语言分类p按发展过程,程序设计语言分为:
低级语言低级语言高级语言高级语言机机器器语语言言汇汇编编语语言言人工智能人工智能Lisp、PrologCC、C+、C#JAVA10/27/2022216.2.3程序设计语言的选择程序设计语言的选择p【适宜的程序设计语言】【适宜的程序设计语言】n使编码时困难减少使编码时困难减少;
减少程序测试量减少程序测试量;
n得到更得到更容易阅读容易阅读、更容易维护更容易维护的程序。
的程序。
p【选择编程语言的经验准则】【选择编程语言的经验准则】n系统用户的要求;
系统用户的要求;
n选择适合应用领域的语言;
选择适合应用领域的语言;
n可以得到的软件工具可以得到的软件工具p是否有支持某种语言程序开发的软件工具可以利用是否有支持某种语言程序开发的软件工具可以利用n人的因素人的因素p尽量选用程序员和系统维护人员熟悉的语言环境,尽量选用程序员和系统维护人员熟悉的语言环境,以节省开发时间,也有利于将来使用和维护工作以节省开发时间,也有利于将来使用和维护工作10/27/2022226.2.3程序设计语言的选择程序设计语言的选择p【语言选择的一些比较、综合性资料】【语言选择的一些比较、综合性资料】nC/C+是程序员必须掌握的语言吗是程序员必须掌握的语言吗nhttp:
/n2005年年11月程序语言世界排行榜揭晓月程序语言世界排行榜揭晓Java居首位居首位nhttp:
/nPHP窜红:
革命尚未成功窜红:
革命尚未成功Java仍需努力仍需努力nhttp:
/nperl仍是很有用的语言吗仍是很有用的语言吗?
nhttp:
/10/27/202223世界前世界前20位语言排行榜(位语言排行榜(1-10)10/27/202224世界前世界前20位语言排行榜(位语言排行榜(11-20)10/27/202225世界前世界前10位语言位语言01-05内发展内发展10/27/2022266.2.3程序设计语言的选择程序设计语言的选择p【语言选择的一些比较、综合性资料】【语言选择的一些比较、综合性资料】nC/C+是程序员必须掌握的语言吗是程序员必须掌握的语言