新浪博客

家用车入库_PCLOgo解

2022-12-20 09:31阅读:
家用车入库_PCLOgo解
家用车入库_PCLOgo解
一般地说,小学生计算机信息学竞赛题LOGO语言类的试卷比C语言、C++语言类的试卷有趣多了,但是编程难度一点不比C类试卷的难度低——这是林老师的个人见解。手头有这样试卷的,自己可以比较一下。像2006年的复赛题“飞行棋”难度着实非常高,复赛临场上机编程考试C++的题目未必会达到这样的高度。下面展示的《复赛详解》目录,学编程的小学生自己来琢磨琢磨,看看哪些是值得参考的。

家用车入库_PCLOgo解

今天的主题:用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,顺序任意,但数据不得重复。
编制好的动画程序如上图所示。


家用车入库_PCLOgo解

家用车入库_PCLOgo解

家用车入库_PCLOgo解

家用车入库_PCLOgo解

我的更多文章

下载客户端阅读体验更佳

APP专享