一、将下面给出的DFD转换为初始的模块结构图。其中,虚线表示输入部分、变换部分和输出部分之间的界面。
1、
解:转化后的初始模块结构图如下所示:
2、
解:转化后的初始模块结构图如下所示:
3、
解:转化后的初始模块结构图如下所示:
二、应用题
1、将下面的伪码转换为PAD图和N-S图。
begin
S1;
if x>5 then S2
else S3;
while y<0 do S4;
S5;
if u>0 then begin
S6;
while k>5 do S7;
end;
S8;
end.
解:上述伪码对应的PAD图如下所示:
对应的N-S图如下所示:
2、将下面的伪码转换为PAD图和N-S图。
begin
S1;
if m>0 then begin
S2;
Do S3 until m<=0;
end
else begin
S4;
If n>3 then S5
Else S6;
End;
while y<0 do S7;
S8;
while u>0 do begin
S9;
If w>0 then S10
else S11;
end;
S12;
end.
while语句流程图的例题解:上述伪码对应的PAD图如下所示:
对应的N-S图如下所示:
3、把下面的程序流程图转换为伪码、PAD图和N-S图。
解:该程序流程图中包含非结构化的GOTO语句,在转换为结构化的伪码和PAD图、N-S图时需要进行处理。
转换的伪码如下:
begin
S1;
if x<=5 then S2
i:=1;
while i<3 do begin
S3;
i:=i+1;
end;
if y<0 then S4
else S5;
end.
转换的PAD图如下所示:
转换的N-S图如下所示:
4、针对以下的程序伪码,给出该程序的控制流程图,并设计实现分支覆盖所需要的测试用例(表达用例的方法是任意的)。
Begin
输入一元二次方程的系数A,B,C;
为根变量赋初值;
IF 平方项的系数A=0且一次项系数B<>0
THEN BEGIN Root1:=-C/B;输出“A=0”;
Root2:=-C/B
END;
IF 平方项的系数A<>0且一次项系数B=0
THEN BEGIN
IF (-C/A)>=0
THEN BEGIN Root1:=SQR(-C/A);输出“B=0”;
Root2:=-SQR(-C/A)
END
END;
IF 平方项的系数A<>0且一次项系数B<>0
THEN BEGIN
IF (B2-4AC)>=0
THEN BEGIN Root1:=(-B+SQR(B2-4AC))/2A;
Root2:= (-B-SQR(B2-4AC))/2A
END
ELSE 输出“此方程无实根”;
end
输出root1和root2的值
END.
解:首先设定上述伪码中各过程块的编号,设定如下:
Begin
输入一元二次方程的系数A,B,C;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论