PROGRAM "Sudan function" VERSION "0.0000" DECLARE FUNCTION Entry () DECLARE FUNCTION F (n, x, y) FUNCTION Entry () FOR n = 0 TO 1 PRINT " Values of F("; n; ", x, y ):" PRINT " y/x 0 1 2 3 4 5" PRINT " ----------------------------" FOR y = 0 TO 6 PRINT y; " |"; FOR x = 0 TO 5 PRINT FORMAT$("####", F(n, x, y)); NEXT x PRINT NEXT y PRINT NEXT n PRINT "F(2,1,1) ="; F(2, 1, 1) PRINT "F(3,1,1) ="; F(3, 1, 1) PRINT "F(2,2,1) ="; F(2, 2, 1) END FUNCTION FUNCTION F (n, x, y) IF n = 0 THEN RETURN x + y ELSE IF y = 0 THEN RETURN x ELSE RETURN F (n - 1, F(n, x, y - 1), F(n, x, y - 1) + y) ENDIF ENDIF END FUNCTION END PROGRAM