第5章习题修改ok答案.docx

上传人:b****6 文档编号:12262875 上传时间:2023-06-05 格式:DOCX 页数:26 大小:94.10KB
下载 相关 举报
第5章习题修改ok答案.docx_第1页
第1页 / 共26页
第5章习题修改ok答案.docx_第2页
第2页 / 共26页
第5章习题修改ok答案.docx_第3页
第3页 / 共26页
第5章习题修改ok答案.docx_第4页
第4页 / 共26页
第5章习题修改ok答案.docx_第5页
第5页 / 共26页
第5章习题修改ok答案.docx_第6页
第6页 / 共26页
第5章习题修改ok答案.docx_第7页
第7页 / 共26页
第5章习题修改ok答案.docx_第8页
第8页 / 共26页
第5章习题修改ok答案.docx_第9页
第9页 / 共26页
第5章习题修改ok答案.docx_第10页
第10页 / 共26页
第5章习题修改ok答案.docx_第11页
第11页 / 共26页
第5章习题修改ok答案.docx_第12页
第12页 / 共26页
第5章习题修改ok答案.docx_第13页
第13页 / 共26页
第5章习题修改ok答案.docx_第14页
第14页 / 共26页
第5章习题修改ok答案.docx_第15页
第15页 / 共26页
第5章习题修改ok答案.docx_第16页
第16页 / 共26页
第5章习题修改ok答案.docx_第17页
第17页 / 共26页
第5章习题修改ok答案.docx_第18页
第18页 / 共26页
第5章习题修改ok答案.docx_第19页
第19页 / 共26页
第5章习题修改ok答案.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第5章习题修改ok答案.docx

《第5章习题修改ok答案.docx》由会员分享,可在线阅读,更多相关《第5章习题修改ok答案.docx(26页珍藏版)》请在冰点文库上搜索。

第5章习题修改ok答案.docx

第5章习题修改ok答案

1.简述详细设计的任务。

包括模块的算法设计、模块内的数据结构设计、模块接口设计、其它根据

软件特点需要完成的设计、模块测试用例设计、设计文档编写、设计评审。

2.简述详细设计的原则。

①模块的逻辑描述应清晰易读、正确可靠;

②设计的处理过程应该简明易懂;

③选择恰当的描述工具来描述模块算法。

3.简述结构化程序设计基本要求和特点。

要点:

a.采用自顶向下、逐步求精的程序设计方法

b.使用三种基本程序控制结构构造程序

1).用顺序方式对过程分解,确定各部分的执行顺序。

2).用选择方式对过程分解,确定某个部分的执行条件。

3).用循环方式对过程分解,确定某个部分重复的开始和结束的条件。

c.主程序员组的组织形式。

特点:

①自顶向下、逐步求精;

②具有单入、单出的控制结构(取消GOTO语句)

4.简述用户界面设计的基本原则

(1)可靠性

用户界面应当提供可靠的、能有效减少用户出错的、容错性好的环境。

一旦用户出错,

应当能检测出错误、提供出错信息,给用户改正错误的机会。

(2)简单性

简单性能提高工作效率。

用户界面的简单性包括输入、输出的简单性;系统界面风格的

一致性;命令关键词的含义、命令的格式、提示信息、输入输出格式等的一致性。

(3)易学习性和易使用性

用户界面应提供多种学习和使用方式,应能灵活地适用于所有的用户。

(4)立即反馈性

用户界面对用户的所有输入都应立即做出反馈。

当用户有误操作时,程序应尽可能明确

地告诉用户做错了什么,并向用户提出改正错误建议。

三、下图是使用Basic语言编写的一个打印A,B,C三数中最小者的程序的流

程图。

其中出现了6个GOTO语句,一个向前,5个向后,程序可读性很差。

if(A

if(B

100printC;

goto140;

110printB;

goto140;

120if(A

goto100;

130printA;

140

试利用基本控制结构,将程序中的GOTO语句消去。

(10分)

三、答案:

使用if-then-else结构化构造,则上述程序段可改成如下形式。

if(A

printA

elseif(A>=BandB

printB

else

printC;

4.请使用流程图、PAD图各PDL语言描述下列程序的算法。

(1)在数据A

(1)-A(10)中求最大数和次大数。

(2)输入三个正整数作为边长、判断该三条边构成的三角形是等边、等腰或一般三角形。

答:

(1)

1)流程图:

2)PAD图

3)PDL语言

定义n1=n2=0

输入A

(1).......A(10)

n1=n2=A

(1)

whilei>10

ifA(i)>=n1

n2=n1

n1=A(i)

endwhile

四、选择一种将三个数从小到大排序的算法,分别用

(1)流程图,

(2)N-S图,(3)

PAD图描述其详细过程。

设数为a,b,c,其详细过程如下:

(1)流程图

(2)N-S图

(3)PAD图

40.请使用PAD图和PDL语言描述在数组A

(1)~A(10)中找最大数的算法。

解:

PDL语言:

N=1

WHILEN<=10DO

IFA(N)<=A(N+1)MAX=A(N+1);

ELSEMAX=A(N)ENDIF;

N=N+1;

ENDWHILE;

PAD图:

[解析]人工查找时,是从第一个元素开始查找,用当前元素与下一个元素比较,将

较大者作为当前元素又与下一元素比较,如此循环,直到数组末尾。

2、将下面给出的伪码转换为N-S图和PAD图。

voidroot(floatroot1,floatroot2){

i=1;j=0;

while(i<=10){

输入一元二次方程的系数a,b,c;

p=b*b–4*a*c;

if(p<0)输出“方程i无实数根”;

elseif(p>0)求出根并输出;

if(p==0){

求出重根并输出;

j=j+1;

}

i=i+1;

}

输出重根的方程的个数j;

i=1;j=0;

}

while(i<=10)【解答】

输入a,b,c;计算p=b

2-4ac;

(1)N-S图

p<0?

TF

输出“方程i”

p>0?

FT

无实根求出根并输出

p==0?

FT

求出重根并输出;j=j+1;

i=i+1;

输出重根的方程个数i

(2)PAD图

i=1;j=0;

2

输入a,b,c;计算p=b

–4ac;

求出根并输出p>0?

p<0?

while(i<=10)

输出方程i无实根

求出重根并输出;j=j+1;p=0?

输出重根的方程个数ii=i+1;

9.下图给出的程序流程图代表一个非结构化的程序,请问:

(1)为什么说它是非结构化的?

(2)设计一个等价的结构化程序。

(3)在

(2)题的设计中你使用附加的标志变量flag吗?

若没用,请再设计一个使用flag

的程序;若用了,再设计一个不用flag的程序。

START

IFpTHEN

WHILEqDO

f

ENDDO

ELSE

BLOCK

g

n

ENDBLOCK

ENDIF

STOP

开始

p

gq循环WHILEp

nf

q循环

停止

答:

(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。

图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构

化的程序。

(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,

图4-3描绘了等价的结构化程序的盒图。

flag=TRUE

flag=TRUE

p

pANDflag

FT

g

flag=FALSEg

q

FT

flag=FALSE(NOTq)OR(NOTflag)

(a)解法1(b)解法2

图4-3与该图等价的结构化程序(用flag)

(3)不使用flag把该程序改造为等价的结构化程序的方法如图4-4所示。

p

FT

g

(NOTq)OR(NOTflag)

图4-4与该图等价的结构化程序(不用flag)

5.某厂对部分职工重新分配工作的政策是:

年龄在伙岁以下者,初中文化程度脱产学习。

高中文化程度当电工;年龄在20岁到40岁之

间者,中学中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员。

年龄在40

岁以上者,中学文化程度当材料员,大学文化程序当技术员。

请用结构化语言、判定表或判

定树描述上述问题的加工逻辑。

(1)结构化语言:

根据职工年龄和文化程序:

REPEAT

If年龄<=20

If初中文化Then脱产学习endif

elseif高中文化Then电工endif

endif

If20<年龄<40

If中学文化

If男性Then钳工

Else

车工

Endif

elseif大学文化Then技术员endif

endif

endif

If年龄>=40

If中学文化Then材料员

elseif大学文化Then技术员endif

endif

endif

Until没有剩余未分配员工

判定表

1234567891011

年龄CCDDDDDEEE

文化GHHGGHIGHI

性别----MMFF--------

脱产学习√

电工√

钳工√√

车工√√

技术员√√

材料员√√

条件取值表

条件名取值符号取值数

<=20C

年龄>20,<40DM1=3

>=40E

中学G

文化程度高中HM2=3

大学I

性别

男M

女F

M3=2

8.画出下列伪码程序的流图,计算它的环形复杂度。

你觉得这个程序的逻辑有什么问题吗?

CEXAMPLE

LOOP:

DOWHILEX>0

A=B+1

IFA>10

THENX=A

ELSEY=Z

ENDIF

IFY<5

THENPRINTX,Y

ELSEIFY=2

THENGOTOLOOP

ELSEC=3

ENDIF

ENDIF

G=H+R

ENDDO

IFF>0

THENPRINTG

ELSEPRINTK

ENDIF

STOP

答:

(1)该伪码的流程图如图4-8所示:

开始

N

Z>0?

Y

A=B+1

Y

N

A>10?

Y=ZX=A

NY

Y<5?

Y

Y=2?

PrintX,Y

N

C=3

G<=H+R

N

Y

F>0?

PrintKPrintG

结束

图4-8程序流程图

根据该程序流程图,可得该程序流图如图4-9所示:

1

2

3

45

6

8

7

9

10

11

1213

14

图4-9程序流图

环形复杂度V(G)=流图中的区域数

=流图中判定结点数目+1=5+1=6

(2)该算法问题在于控制最外层循环的变量Z不仅没有经过初始化,并且在该循环内部没

有任何有可能该变Z的语句。

因此,该段代码中的WHILE循环部分代码要么不会执行,要

么可能出现死循环。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2