软件工程应用题
一、程序流程图、N-S、PAD图、伪码(PDL语言)之间的转换
1.现有程序流程图表示:输入10个数据,输出其中的最小数和最大数。试根据程序流程图画出N-S图。
参考答案:
1 / 12
2.请使用PAD图和PDL语言描述在数组A(1)~A(10)中找最大数的算法。
参考答案:
(1)PDL语言: N=1
WHILE N<=10 DO
IF A(N)<=A(N+1) MAX =A(N+1); ELSE MAX =A(N) ENDIF; N=N+1; ENDWHILE;
解题思路:人工查找时,是从第一个元素开始查找,用当前元素与下一个元素比较,将较大者作为当前元素又与下一元素比较,如此循环,直到数组末尾。 (2)PAD图:
6.根据下面的伪代码程序,完成相应要求。
START
IF C1
THEN
WHILE C2 DO f ENDDO ELSE BLOCK g p ENDBLOCK ENDIF
REPEAT UNTIL C3
q r ENDREP
STOP
问题:
(1)画出程序流程图 (2)画出N-S图
2 / 12
3 / 12
7.将下面给出的伪码转换为N-S图和PAD图。 void root ( float root1, float root2 ) { i = 1; j = 0; while ( i <= 10 ) { 输入一元二次方程的系数a, b, c; p = b*b – 4*a*c;
if ( p < 0 ) 输出“方程i无实数根”; else if ( p > 0 ) 求出根并输出; if ( p == 0 ) {
求出重根并输出;
j = j + 1;
}
i = i +1; }
输出重根的方程的个数j; }
4 / 12
解:
while a do
If x>0 then x1; Else x2; If y>0 then y1; If z>0 then z1;
Else z2;
Else y2; Y3;
End;
5 / 12