软件工程第六章习题

1 假设只有 SEQUENCE 和 DO_WHILE 两种控制结构,怎么利用它们完成 IF_THEN_ELSE 操作?

关键是对次数进行限制,伪码如下

K = 1;

DO WHILE(condition1 AND (K EQ 1))
	code1;
	K+=1;
END DO

DO WHILE(condition2 AND (K EQ 1))
	code2;
	K+=1;
END DO

2 假设只有 SEQUENCE 和 IF_THEN_ELSE 两种控制结构,怎么利用它们完成 DO_WHILE 操作?

//背景知识,运用顺序,选择,循环理论上可以实现任何单入口单出口的程序,如果只用到两种,可能需要用到goto语句

label: IF(condition)THEN
			code1
			GOTO label
		ELSE
			code2
		END IF

3 画出下列伪代码程序的流程图和盒图

START 
	IF p THEN 
		WHILE q DO 
			f 
		END DO 
	ELSE 
		BLOCK 
			g 
			n 
		END BLOCK 
	END IF 
STOP

流程图
在这里插入图片描述
在这里插入图片描述

4 图 6.18 给出的程序流程图代表一个非结构化的程序

在这里插入图片描述

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

因为通常所说的结构化设计是按照狭义的结构程序定义,图中所示程序的循环部分,存在两个出口,不符合结构化程序的定义,所以时非结构化。

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

在这里插入图片描述

3)在( 2)题的设计中使用附加的标识变量 flag 了吗?

若用了,在设计一个不用 flag 的程序(独立循环的判断)
在这里插入图片描述

9 把统计空格程序的 Jackson 图( 图 6.13 )改画为等价的程序流程图和盒图。

在这里插入图片描述
参考答案
在这里插入图片描述
另外一个博主的参考答案
第一个答案是普遍存在的参考答案,第二个时那个博主自己根据定义整理的。

  • 17
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值