新浪博客

使用OP命令的队列移位问题3

2022-12-06 09:43阅读:
使用OP命令的队列移位问题 3
使用OP命令的队列移位问题3
现在说的还是前次的“使用OP命令的队列移位问题”。这个问题真的可以使用很多种方式编程,用不同类型的题目来考你,这就给参考者带来很多疑惑。下面的题目实际上是这道题的第三种编程方式:
初赛试题一:
针对下面的程序过程A0,运行SHOW A0 'ASDFGHJK 5,输出的结果是
TO A0 :W :K
MAKE 'L COUNT :W
r> MAKE 'WW ITEM :K :W
FOR [J 1 :L][
IF OR :J<:K :J>:K[
MAKE 'WW SE :WW ITEM :J :W]]
OP :WW
END
答案:
正确的答案是:[G A S D F H J K]
解释:原来在第5个位置的G被移动到了首位,其它的字符位置不变。由于使用的是SE、SHOW命令,所以输出的是“表”结构。


初赛试题二:
下面的A1过程,在执行命令 SHOW 'ASDFGHJK 5 时输出的结果是[G A S D F H J K],请完善A1过程,写出空缺位置的LOGO编程命令。
TO A1 :W :K
MAKE 'L COUNT :W
MAKE 'WW ITEM :K :W
FOR [J 1 :L][
IF [
MAKE 'WW :WW ITEM :J :W]]
OP :WW
END
答案:



正确答案: OR :J<:K :J>:K FMSLogo的答案还可以是 :J<>:K
SE


上面这种删除某些程序语句,留下空格来填空的题目其实多半都是很难的,有时比重新编写一个程序还要难。就好比一锅汤淡了加一点盐容易得很。但是要反过来操作:汤太咸了,在不增加水分的前提下把盐分分离出来、或是减少一些盐分,是不是要麻烦得多?!这样的填空题,就是“把太咸的汤减淡”的逆向操作。先要读懂上下左右的程序,透彻地理解编程思路,才有可能在空格处填写正确的命令。


==================================
下面介绍的第四种、第五种编程方式,针对于MSWLogo-FMSLogo-PCLogo都是通用的。但其中的循环命令是REPEAT,原理类似,不再进行详细解说,请自己琢磨研究。
第四种编程方式:
TO B2 :W :K
REPEAT :K-1[MAKE 'W WORD BF :W FIRST :W]
MAKE 'T FIRST :W
MAKE 'W BF :W
REPEAT :K-1[MAKE 'W WORD LAST :W BL :W]
OP WORD :T :W
END
第五种编程方式:
TO B2B :W :K
REPEAT :K-1[MAKE 'W SE BF :W FIRST :W]
MAKE 'T FIRST :W
MAKE 'W BF :W
REPEAT :K-1[MAKE 'W SE LAST :W BL :W]
OP SE :T :W
END


真想学会LOGO编程的,这几个编程方式还是需要给理解透彻才好。


使用OP命令的队列移位问题3

使用OP命令的队列移位问题3

使用OP命令的队列移位问题3

使用OP命令的队列移位问题3



使用OP命令的队列移位问题3



使用OP命令的队列移位问题3



我的更多文章

下载客户端阅读体验更佳

APP专享