使用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
答案:
==================================
下面介绍的第四种、第五种编程方式,针对于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