家用车入库_PCLOgo解

一般地说,小学生计算机信息学竞赛题LOGO语言类的试卷比C语言、C++语言类的试卷有趣多了,但是编程难度一点不比C类试卷的难度低——这是林老师的个人见解。手头有这样试卷的,自己可以比较一下。像2006年的复赛题“飞行棋”难度着实非常高,复赛临场上机编程考试C++的题目未必会达到这样的高度。下面展示的《复赛详解》目录,学编程的小学生自己来琢磨琢磨,看看哪些是值得参考的。
今天的主题:用PCLogo编程的“家用车入库”源程序如下,编程原理与FMSLogo-MSWLogo的编程原理是完全一样的。更详细的程序注解可参考前一篇的博客。
TO JYCRKP :C ;主程序 :C是[2 1
3]这样的入库顺序表数据
CS PD
CK
RKCL :C
END
TO RKCL
:C ;递归逐个调用入库顺序表数据的递归
IF EMPTY? :C[STOP]
MAKE "N FIRST :C
RK :N
RKCL BF :C
END
TO RK :N
;入库程序
;REPEAT 60[FD 100*PI/30 LT 6]
100*PI/30=10.47 对10.47来源的注解
SETH 0 PU SETXY[300 -150]
PD
CHE 0 WAIT 100
REPEAT 15[PD CHE 0 WAIT 20 PU CHE
15 \
LT 3 FD
10.47 LT 3 ]
;画A段
MAKE "ZX
INT(((4-:N)*105+47)/10) ;画B段的分段数
REPEAT :ZX[PD CHE 0 WAIT 20 PU CHE
15 FD 10]
REPEAT 15[PD CHE 0 WAIT 20 PU CHE
15 \
LT 3 FD
10.47 LT 3
] ;画C段
REPEAT 22[PD CHE 0 WAIT 20 PU CHE
15 BK 10] ;画D段
CHE 0 WAIT 100
END
TO CHE
:K ;画车子程序 :K=0画黑色
:K=15用白色消去先前画的线条
SETPC :K
PU BK 50 LT 90 FD 25 RT 90
PD
REPEAT 2[FD 100 RT 90 FD 50 RT
90]
PU FD 50 RT 90 FD 25 LT 90
PD
END
题目:
复赛上机题
家用车入库
现在私家车已经十分普及,家用车不使用时都要进入车库。请编写程序jycru.lgo模拟家用车入库。编程具体要求如下。
1.
整个图形尺寸不超过670×370。图形屏幕居中。其他尺寸自定。
2.
车库安排在图形的左上方。车库共3个,从左向右的编号为1-2-3。单个车库内部尺寸100×150。车库壁间隔5。
3.
为画图简便起见,小车用尺寸50×100的矩形表示,海龟位于“车”的正中。小车前进、后退时从海龟可以看见车的运动状态。
4.
小车的出发点规定在图形的右下方。小车入库时先沿着半径100的90度弧左转,在向图形的左方前进适当的距离后,再沿着半径100的90度弧左转,然后倒退入库。小车的运动用动画显示。在整个运动入库的过程中,小车不得“走错号”、不得出界、或与车库碰撞。小车入库后要求居中停放。
5.
jycru程序带有一个数据表,数据表指定了小车入库的顺序。例如:
jycru [ 2
1 3]
表示依次入库的车库号是 2-1-3
。这个数据表不得为“空表”、表里面的数据可以是
1~3个。表里面的数据可以是1、2、3,顺序任意,但数据不得重复。
编制好的动画程序如上图所示。
加载中,请稍候......