1. 画出下列伪码程序的程序流程图和盒图:
START
IF p THEN
WHILE q DO
f
END DO
ELSE
BLOCK
g
n
END BLOCK
END IF
STOP
程序流程图:
盒图:
2. 下图给出的程序流程图代表一个非结构化的程序,问:
(1)为什么说它是非结构化的?
(2)设计一个等价的结构化程序。
(3)在(2)题的设计中使用附加的标志变量flag了吗?若没用,再设计一个使用flag的程序;若用了,再设计一个不用flag的程序。
答:(1)结构化的狭隘定义:一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口。但是图示的程序流程图的循环结构中有两个出口,所以说它是非结构化的。
(2)使用附加标志flag,可以把该程序改造为结构化程序:
(3)不使用附加的标志变量,把程序改造成等价的结构化程序:
结构化程序设计: 一种使程序代码容易阅读、容易理解的编程方法,限制使用GO TO语句
结构化程序设计方法的特点:
1. 整体思路清楚,目标明确;
2. 在系统分析时可以诊断出原系统中存在的问题和结构上的缺陷;
3. 设计工作中阶段性非常强,有利于系统开发的总体管理和控制。