QB运用递归法一例
苗辉
递归法是程序设计中的一个难点,对BASIC语言来讲更是如此。实际上QuickBASIC和VB都已经支持了程序的递归调用,编写递归程序也方便多了。
下面就举一个画树的例子,编程的目的是用递归法画一棵三叉树,树枝、树叶采用不同颜色,以下QBASIC程序直接执行即可动态地画出一棵很真实的树。
源程序如下:
DECLARE SUB JIAO (JAO!):DECLARE SUB tree(C!)
SCREEN 12
DIM SHARED J
DRAW “BM320,460”:CALL tree(440)
PLAY “T255L 16Xcdefgab”
END
SUB JIAO (JAO)注释:此程序用来将画笔转一定角度。
J=J+JAO
IF J>360 THEN J=J360
IF J<-360 THEN J=J+360
DRAW “TA=”+VARPTR$(J)
PLAY “T255P64”’此句仅为放慢速度。
END SUB
SUB tree(C) ’画树子程序。
IF C<18 THEN DRAW“C2NU=”+VARPTR$(C):EXIT SUB ’画完树叶后返回。
C3=C/3
DRAW “C4U=”+VARPTR$(C3)
CALL JIAO(45):CALL tree(C/2) ’逆时针转45度后画左子树。
CALL JIAO(-45):CALL tree(2*C/3) ’顺时针转45度后画中子树。
CALL JIAO(-45):CALL tree(C/2) ’顺时针转45度后画右子树。
CALL JIAO(45) ’逆时针转45度后回到原方向。
DRAW “C7D=”+VARPTR$(C3)
END SUB
文章来源于领测软件测试网 https://www.ltesting.net/
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073