博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
把孩子打造成为码农
阅读量:4614 次
发布时间:2019-06-09

本文共 1802 字,大约阅读时间需要 6 分钟。

作者: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 50pendown       # 放下笔,开始留下痕迹pw 2          # penwidth,线条粗细go 200, 200   # 前往坐标点# 房子主体turnleft 90   # 左转90度forward 100   # 前进100像素turnright 90forward 100turnleft 90forward 30turnright 140forward 105turnright 80forward 105turnright 140forward 30turnleft 90forward 100# 窗户go 120, 90turnleft 90forward 60turnleft 90repeat 90 {  forward 1.05   turnleft  2}# 窗户中线go 150, 90turnright 180forward 30# 窗户对角线tr 45             # turnright的简写go 135, 77forward 10go 135, 82forward 10go 160, 79forward 10go 160, 84forward 10tl 45# 门go 120,200forward 50tr 90forward 30tr 90forward 50# 门把手go 145, 175repeat 24 {   # 循环24次  forward 1  tr  15}# 窗户go 160,140tr 180forward 25tr 90forward 25tr 90forward 25tr 90 forward 25tr 90# 窗户中线go 172.5,140forward 25tr 90go 160,127.5forward 25# 窗户对角线# pw 1tl 45go 164, 134forward 5go 164, 138forward 5go 177, 121forward 5go 177, 125forward 5tr 45go 230,150

 

再加上一个画螺旋线:

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

 

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

 

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

转载于:https://www.cnblogs.com/vamei/archive/2012/09/15/2686966.html

你可能感兴趣的文章
Windows平台flex+gcc词法分析实验工具包
查看>>
3.Python基础 序列sequence
查看>>
Chapter 4 Syntax Analysis
查看>>
nginx的配置:目的是使用nginx反向代理后,应用程序获取用户真实ip
查看>>
3、变量+运算符+Scanner
查看>>
10、数组、二维数组
查看>>
eclipse查看源码的配置
查看>>
mysql的卸载重装+导入大量数据失败的解决方案+工具执行和项目执行结果不同
查看>>
针对发送网络附件的java方法(使用Apache的jar包调用)
查看>>
‘--’之后的所有字符串,正则怎么写
查看>>
sql把一个字段中的特定字符替换成其他字符
查看>>
SQLServer触发器的使用
查看>>
通过AI识图判断图片是否为小票
查看>>
微信开发者工具常用快捷键
查看>>
Linux——静态库和动态库的生成
查看>>
Ulfius交叉编译——搭建http服务器端
查看>>
Linux——进度条实现
查看>>
Linux——定时器与计时器
查看>>
Linux——makefile编写
查看>>
vi/vim使用
查看>>