一、将下面给出的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小时内删除。