实验2:基于visio的系统hipo图和程序流程图

实验2:基于visio的系统hipo图和程序流程图

ID:12473845

大小:652.00 KB

页数:9页

时间:2018-07-17

实验2:基于visio的系统hipo图和程序流程图_第1页
实验2:基于visio的系统hipo图和程序流程图_第2页
实验2:基于visio的系统hipo图和程序流程图_第3页
实验2:基于visio的系统hipo图和程序流程图_第4页
实验2:基于visio的系统hipo图和程序流程图_第5页
资源描述:

《实验2:基于visio的系统hipo图和程序流程图》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验2:基于VISIO的系统HIPO图和程序流程图目的:1)掌握HIPO画法2)掌握数据流程图画法内容:1)本文附录图3-25、教材P66图4.32)本文附录图3-44、图3-45、图3-47图3-25销售管理系统的HIPO图例题1(1994年软件设计师试题)阅读下列说明和流程图,如图3-44所示,回答问题1和问题2,把解答写在答案的对应栏里。【说明】流程图3-45用来将数组A中的n(n2)个数经变换后存储到数组B中。变换规则如下:(1)若A中有连续t个相同的元素(t>1),则在B存入t和该元素的值。(2)若A中

2、有连续t个元素(t1),其中每个元素都与相邻的元素不相同,则在B中存入t和这t个元素的值。例如:A={3,3,3,3,5,5,7,6,3,6,2,2,2,2,1,2}则变换后B={4,3,2,5,-4,7,6,3,6,4,2,-2,1,2}流程图中,逻辑变量C用来区分正在进行连续相同元素的计数还是连续不等元素的计数,Ki用来记录数组B存放t或-t的元素的下标。【问题1】填充流程图中的①至⑤,使之成为完整的流程图。【问题2】如果删除流程图中的判断框t:1,那么,当数组A={5,5,4,4}时,经改变后的流程图的变换

3、,数组B将会有什么样的元素值?图3-44例题1流程图分析:首先应仔细地阅读说明部分,了解程序实现什么样的功能。程序实际上是完成一个数组的变换。例如:A={3,3,3,3,5,5,7,6,3,6,2,2,2,1,2}则变换后;B={4,3,2,5,-4,7,6,3,6,4,2,-2,1,2}也就是说,A中有4个“3”,所以在B中写入“3”的个数t(即4),再写入该元素值(即3),A中接下来是两个“5”,所以在B中添加数据“2,5”;再下来是4个相邻但不同的数“7,6,3,6”,所以在B中写入-t(即-4),再写入t

4、个元素值(即7,6,3,6),后面的依次类推。通过上面的分析,我们已经了解了程序要实现的功能,现在开始分析程序流程。从整体上看,此程序的分支比较多,用到的变量也比较多。这种情况下,最好是自己手动地把数据代到程序中去,手动地模拟程序运行。这样,能让你最快地了解到程序的算法结构。题目中其实已近为考生提供了相当便利的条件,有一个实例,可以就用提供的实例来手动运算。所以,A(1)=A(2)=3C=’true’K1=1B(2)=A(1),这一句是把A(1)赋值给B(2),当A的前t个元素相等时,B(1)保存t的值,B(2)

5、保存该元素,元素值为A(1),当A中连续t(t1)个元素都与其相邻的元素不相同时,则在B(1)中存入-t,B(2)保存这t个元素中的第1个元素即A(1)。所以不管什么情况,B(2)都应该等于A(1)。接着看下一步,2→K,暂时不管空①,继续往下看,2→i,因为in,所以,A(i-1)=A(i)(C值为’true’),再接着执行t=t+1,i=i+1……当i=5时,A(i-1)<>A(i),又因为C值为’true’,所以t→B(K1)。因为K1=1,B(K1)是存储连续相同数字的个数的,按我们的实例,现在的t应等于

6、4,再往前推算,可以知道t应有初值1,所以空①应填1→t。再往下走,K1=K+1,此时的K1=3,为下一次记录t或是-t做准备,A(i)→B(K1+1)。与前面的B(2)=A(1)类似,为下一轮的解析做准备。K=K+2t=1,到此,空④其实不用去搞复杂的分析和推敲,细心一点儿就能一下写出来。因为这里必须填’true’→C,如果不填这句,程序的两大分支将永远不能执行。同理可得空③应填’false’→C。空②所在的分支是当有n个连续不等数后接有相同的两个数时才执行的分支。前面已经说过B(K1)是用来存储t或-t的,但

7、这里应该注意一点,t是否符合题目的要求。当判断A(i-1)=A(i)成立时,t计数到了第i-1个元素,但按题目的要求,A(i-1)不能计入n个不同的数中,所以空②应填1-t。空⑤是直接从i:n的判断分支出去的一部分,如果i>n则执行那一部分分支。其实可以不看底下的大段程序,只要n=1(当然,这个题出题时考虑不够周全,没有考虑到n=1时会产生数组溢出,正确的做法应是把这种情况归到A(1)<>A(2)这个分支,但我们做题时可以这么考虑),又因为当C为’true’时B(K1)=t,所以C为’false’时应填:B(K1

8、)=-t。问题2,前面已经把所有的空都填好了,所以此题只需把数组,代入到删除了的程序中手动运行即可得到答案:B={2,5,0,2,4}。参考答案【问题1】①1->t②1-t③'true'->c④'false'->c⑤-t->B(K1)【问题2】B={2,5,0,2,4}例题2(1993年软件设计师试题)阅读下列说明和流程图,如图3-45所示,回答问题1至问题3,把解答写在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。