加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

LOGO编程画个CPU(二)

(2023-04-26 10:56:17)
标签:

林老师

pclogo

mswlogo

fmslogo

c

分类: WinXP~7~8~10运行Logo语言
LOGO编程画个CPU(二)
LOGO编程画个CPU(二)
      2022年厦门地区的小学生LOGO语言信息学竞赛的第一题便是画个CPU。那么多的针脚,都要对齐居中,中间还要画个框写屏显示CPU。题目不难,但是着实有些麻烦。120分钟考4道现场编程题,后面的题目更难,这道题按道理只能分配15~20分钟必须完成。这时迅速的决断、拿出合理的整体编程方案是节约时间的关键。这道题大体上可以有两种编程路径,今天说一说第一种比较“懒”的方案:A.先居中画外框;B.把中间17×17个针脚全画上——这样简单方便呀;C.擦除中间多余的针脚;D.画好内框;E.写屏CPU。思路清晰简单,程序也不长,熟练的话10分钟就能编写好。但是这其中有一个编程技术难点:中间那个方块怎么擦除?!“画一个白色的方框,往中间填充白色”是绝对不行的,因为整个图形的背景是白色的,这样画白色色块无法执行。但是编程熟练的选手有的是办法:用一根根宽度为2的白色竖线密集排着逐一画过去,擦除任务就完美实现了。整个过程上面的动画已经再清楚不过了——这个动画其实也是用MSWLogo-FMSLogo编写的,LOGO程序可以直接输出GIF动画,直观得很。画CPU编程的源程序如下:
to cpu   ;for fmslogo8.3.2
  cs setpc 0
  pu setxy -215 -215 pd  ;移动到外框左下角
  repeat 4[fd 430 rt 90] ;画外框
  pu setxy -200 -200     ;移动到画所有针脚左下角位置
  for[y 1 17][     ;画竖向17行针脚
    for[x 1 17][   ;画黄向17根针脚
      pd 
      setpensize 2 circle 5  ;画一根针脚
      setpensize 1 circle 10
      pu setx xcor+25]
    setx xcor-25*17  ;画完一行移动到针脚起始X位置
    sety ycor+25]    ;向上移动到上面一行Y起始位置
  setpc 7 setpensize 2  ;注意!用密集的宽2的竖线擦除中间不需要的针脚
  for[x -137.5 137.5][
    pu setxy :x -137.5 pd fd 275 bk 275]
  pu setxy -125 -125 pd setpensize 1 setpc 0  ;移动到画内框起始位置
  fd 250-70/sqrt 2 rt 45 fd 70 rt 45 fd 250-70/sqrt 2 ;画内框
  rt 90 fd 250 rt 90 fd 250  ;移动到中心写下CPU
  pu setxy -25 10 pd seth 90
  label "CPU
  ht
end

还有一种编程方式
下次接着讲

厦门地区2005~至今所有的复赛题的源程序请参考:
LOGO编程画个CPU(二)

LOGO编程画个CPU(二)

LOGO编程画个CPU(二)

下面这些都是以往复赛的图解:

LOGO编程画个CPU(二)

LOGO编程画个CPU(二)


LOGO编程好实例
尽在林老师的博客中
到其它地方你能找到这样的详解吗


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有