阅读下列说明和流程图,回答问题1~3,将解答写在答卷的对应栏内。
[说明]
流程图实现下列递归函数的计算。递归函数定义如下:
|
┌ |
n+1 |
当 n=0 时 |
A(n,x,y)= |
┤ |
1 |
当 m≠0 且 y=0 时 |
|
└ |
A( n-1,A(n,x,y-1),x ) |
当 m≠0 且 y≠0 时 |
其中 n,x,y 均为非负整数。
递归函数的计算使用了三个栈,它们分别用数组 N(1:5000),X(1:5000),Y(1:5000) 来存放,top 为栈顶指针,中间计算结果和最终计算销果均存放在变量 F 中。
[问题1]
填充流程图中的①~⑤,使之成为完整的沉程图。
[问题2]
指出应在流程图的哪些位置(用⑤~⑨表示 y 上增加检测错误的流程图,并分别指出这些位置能报告哪些错误信息。
答案:
[问题1]
① X(top)+1→F ② 1→9 ③ N(top)→N(top+1) ④ X(top)→X(top+1) ⑤ Y(top)→1+Y(top+1)
[问题2]
在⑤处增加出错处理,报告“n,x,y不全是非负整数”。在③处增加出错处理,报告“栈满”信息