把孩子打造成为码农


作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。

 

今天看到一个问卷调查,是问第一门学习的计算机语言是什么。本身想写QBasic,忽然想起曾经学习机时代的LOGO语言,以及看了很久的小乌龟。对啊,这才算是自己接触的第一门语言。

LOGO语言是为教育儿童编程开发的,所以语法很简单。它基于LISP,还附加有一个海龟绘图系统(Turtle Graphic)。我们通过编写的程序,可以控制屏幕上的小海龟的移动,并在画面上留下行动的轨迹。你可以用LOGO语言画出一幅不错的画来。

于是在Ubuntu下搜索,找到KTurtle,是LOGO的一个变体。它的语法是面向过程的,类似于C,支持数学和逻辑运算,可以实现循环 (for)或者选择 (if)。常见的命令包括forward, backward, turnleft, turnright,用于控制小海龟的前进后退和转向。另外也可以用ask和print来输入输出。变量用$a的形式表示。在绘图过程中,小海龟不断移动,同时左侧也会用黄色标明运行到哪一行了,非常有趣。一句话来形容,麻雀虽小,五脏俱齐。

KTurtle界面

你可以通过它的帮助菜单(需要安装)来查询具体的命令。

 

帮助菜单

帮助菜单

 

画房子:

# 该例来自 http://banajim.myweb.port.ac.uk/recreation/logoscripts # 画房子
 reset # 清空画面
penup         # 抬起笔,开始不留下痕迹
forward 50 pendown     # 放下笔,开始留下痕迹
pw 2          # penwidth,线条粗细 go 200, 200   # 前往坐标点

# 房子主体
 turnleft 90   # 左转90度
forward 100   # 前进100像素
turnright 90 forward 100 turnleft 90 forward 30 turnright 140 forward 105 turnright 80 forward 105 turnright 140 forward 30 turnleft 90 forward 100

# 窗户
 go 120, 90 turnleft 90 forward 60 turnleft 90 repeat 90 { forward 1.05 turnleft 2 } # 窗户中线
go 150, 90 turnright 180 forward 30

# 窗户对角线
 tr 45             # turnright的简写
go 135, 77 forward 10 go 135, 82 forward 10 go 160, 79 forward 10 go 160, 84 forward 10 tl 45

#
 go 120,200 forward 50 tr 90 forward 30 tr 90 forward 50

# 门把手
 go 145, 175 repeat 24 {   # 循环24次
  forward 1 tr 15 } # 窗户
 go 160,140 tr 180 forward 25 tr 90 forward 25 tr 90 forward 25 tr 90 forward 25 tr 90

# 窗户中线
 go 172.5,140 forward 25 tr 90 go 160,127.5 forward 25

# 窗户对角线 # pw 1
tl 45 go 164, 134 forward 5 go 164, 138 forward 5 go 177, 121 forward 5 go 177, 125 forward 5 tr 45 go 230,150

 

再加上一个画螺旋线:

reset for $x = 1 to 36 { repeat 72 { forward 4 turnright 5 } penup turnright 10 forward 2 pendown } go 0, 0

 


还可以继续开发出更多的图形。如果你数学不错,甚至可以写一个分形的绘图 (只不过速度真的很慢很慢)。

 

你准备好把你的孩子培养成为码农了吗?


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM