LOOP:DO WHILE X>0 A=B+1 IF A>10 THEN X=A ELSE Y=Z END IF IF Y<5
THEN PRINT X,Y
ELSE IF Y=2
THEN GOTO LOOP
ELSE C=3 END IF END IF G=H+R END DO IF F>0
THEN PRINT G ELSE PRINT K END IF STOP
解:流程图:
STARTFZ>0TA=B+1A>10TX=AY<5TPrint X,YF
Y=ZF Y>=5TY=2FC=31234687109111111115
G=H+RFF>0TPrint GPrint K
stop
环形复杂度:
V(G)=结点E-弧数n+1=17-11+1=7=判断结点 +1=6 +1=7=封闭的区域数
逻辑有问题,当Z>0时,容易形成死循环;条件Y<5包含条件Y=2。 9、把统计空格程序的Jackson图(图6.13)该画为等价的程序流程图和盒图。 解:流程图:
盒图:
10、人机对话由操作员信息和系统信息交替组成。假设一段对话总是由操作员信息开始以系统信息结束,用Jackson图描绘这样的人机对话过程。 解:
开始 文件尾? N 读一个字符 Y 换行,输出字符串,换行 统计空格数并输出 读取下一个字符 换行,输出空格总数 结束 文件不是文件尾? 读一个字符串 换行,输出字符串,换行 统计空格数并输出 取下一个字符串 换行,输出空格数
操作员文件 系统文件 操作员记录* 操作员记录* 学号 姓名 专业班级 学号 姓名 分数 新文件 操作员记录* 学号 姓名 专业班级 分数 产生新文件 取操作员文件记录 取系统记录 产生新纪录 学号
姓名 专业 班级 学号 姓名 专业 班级 学号 姓名 专业 班级 分数 第七章
第一题
1、下面给出的伪码中有一个错误。请仔细阅读这段伪码,说明该伪码的语法特点,找出并改正伪码中的错误。字频统计程序的伪码如下:
INITIALIZE the Program READ the first text record
DO WHILE there are more words in the text record
DO WHILE there are more words in the text record EXTRACT the next text word
SEARCH the word-table for the extracted word IF the extracted word is found INCREMENT the word’s occurrence count ELSE
INSERT the extracted word into the table END IF
INCREMENT the words-processed count END DO at the end of the text record READ the next text record
END DO when all text records have heen read PRINT the table and summary information TERMINATE the program
答:INSERT the extracted word into the table在这个后面,有没有给这个word的occurrence/count赋值为1 第二题
2、研究下面给出的伪码程序,要求: (1) 画出它的程序流程图。
(2) 它是结构化的还是非结构化的?说明理由。 (3) 若是非结构化的,则
(a) 把它改造成仅用3种控制结构的结构化程序; (b) 写出这个结构化设计的伪码; (c) 用盒图表示这个结构化程序。 (4) 找出并改正程序逻辑中的错误。
COMMENT:PROGRAM SEARCHES FOR FIRST N REFERENCES TO A TOPIC IN AN INFORMATION RETRIEVAL SYSTEM WITH T TOTAL ENTRIES INPUT N
INPUT KEYWORD(S)FOR TOPIC I=O MATCH=0 DO WHILE I≤T I=I+1
IF WORD=KEYWORD THEN MATCH=MATCH+1 STORE IN BUFFER
END
IF MATCH=N THEN GOTO OUTPUT END END IF N=0 THEN PRINT ″NO MATCH″
OUTPUT:ELSE CALL SUBROUTINE TO PRINT BUFFER INFORMATION END