初赛必考递归题-与半圆有关的话题-答案B

所有的小学LOGO语言笔试竞赛题,只要是采用“四选一”标准答题方式的,那么整张试卷中必然充满着“陷阱”。并列着的四个极为相似的选项,似是而非的图形,三个答案都是错的,只有一个是对的,就是要来甄别参考者是否真的理解了LOGO编程的真谛、是否真的理解正确的编程过程。我们要详析的这道“半圆递归”,从头一眼看上去,就是想要误导参考者:就是上面那张图形,海龟所在位置的那个半圆是朝右侧的半圆,这实际上是错误的。题目A要求“画出执行
cs dg 3 命令的递归图形(大小比例相对准确,请用小三角形标出海龟起点位置)。 请在答案卷相应位置上画出该递归图形,并标出海龟位置。”如果你一不小心,画出来的A答案是下面这样的话,那就得不到分数了。

我们有必要将原题目再浏览一遍:
======================================
根据下列程序,画出或完善递归图形(A~B每题4分)8%
to halfball
arc 180
50
fd
50 bk 100 fd
50
end
to dg
:x ;画:X级半圆的递归
if
:x=1 [stop]
halfball
;所有的半圆都是这一行命令画的
fd
50 rt 90 ;移动到B点并转向向右 关键!
dg
:x-1
;画下一级半圆
上面的那一个
lt
90 bk 100 lt 90 ;转回来从B移动到C并转向向左
关键!
dg
:x-1
;画下一级半圆
下面的那一个
rt
90 fd 50 ;这一步极为重要,回归起始点
回归起始朝向
end
A.画出执行 cs dg 3
命令的递归图形(大小比例相对准确,请用小三角形标出海龟起点位置)。
请在答案卷相应位置上画出该递归图形,并标出海龟位置
【A】
B.下图给出了执行 cs dg 4
命令行后海龟画的错误图形。可能少画或多画直线或弧线,请直接在答卷中,在你认为正确的位子添加或删除相应的线条。图中已经标出海龟起点位置。
修改图形
【B】
====================
在此之前,如果参考的选手已经能够解读出题目给出的程序的中文含义是:画一个朝左侧的带有直径的半圆。在满足递归的条件时,继续在前一级半圆的直径的两端,在垂直于直径的方向上朝外继续画下一级相同大小的半圆。
那么就一定能够对A题目的要求画出正确的图形:
同时也能想象得出B题目的正确答案是:

-------------------------------------------------------
正确地做出 A、B
答案靠的是对题目所提供的程序的深入正确的理解,靠的是想象力。下面是使用LOGO编程画出来的当 :X 值在 1~5
之间连续变化时输出的图形:
你可以凝视这个变化中的动画图形,仔细品味“画一个朝左侧的带有直径的半圆。在满足递归的条件时,继续在前一级半圆的直径的两端,在垂直于直径的方向上朝外继续画下一级相同大小的半圆。”的含义。
凡是能够想象得出上述连续动画形成机理的小学生,如果继续不断努力,将来都有可能成长为下面那样的优秀人才。
不过出试卷的老师也没有欺骗考生
只要输入以下命令组就能得到考卷上的那张图形:
cs rt 180 dg 4 rt 180

要透彻地理解类似的递归题,你真的还是要详细地研读林老师写的完整的教材
(内容太多太长了,博客实在放不下):
********************************
《新编PCLogo教程》
第三章《功能强大的递归》第二节《破解“二叉树”的奥秘》P115~
第三节《无限自我相似的“分形”世界》~P143
********************************
《MSWLogo讲义Plus》
第4章《理解递归运算》
第5章《进入奇妙的分形世界》
********************************
加载中,请稍候......