High-level Language Programmer's View

main:

maxNum = 3

maxPower = 4


CalculatePowers(maxNum, maxPower)

(*)

. . .

end main



CalculatePowers(In: integer numLimit,

                           integer powerLimit)

integer num, pow, result


for num := 1 to numLimit do

      for pow := 1 to powerLimit do 

          Power(num, pow, result)

(**)    print num " raised to " pow " power is "  	

		result

     end for pow

end for num


end CalculatePowers



Power( In:  integer n, integer e, Out: result)


if e = 0 then 

     result = 1

else if e = 1 then

     result = n

else

     Power(n, e - 1, result)

     result = result * n            (***)

end if


end Power


1) Trace the next execution of the recursive function Power when num=3 and pow=3 by showing the run-time stack. 

2) What is the most number of call frames on the stack at any one time for the whole program?