当你在网上搜索LOGO这个词,搜索结果应该是各大公司的标志。你是否知道有门编程语言就叫LOGO呢?
1966年,美国国家科学基金会所资助麻省理工学院(MIT)的人工智能研究室,希望该实验室设计一门适合教授儿童编程技能的语言,而这个项目由西摩尔·派普特(Seymour Papert)和Wally Feurzeig牵头,该语言命令为Logo,Logo一词源自希腊语逻各斯(logos,原意即为思想)。在Logo语言设计之初,Papert在一个假日中出外散步时,偶然间看到一个像海龟的机械装置而产生灵感。
由于Papert博士已经是LISP语言的专家,因此Logo是基于LISP语言,但修改了LISP的语法使得Logo更易于阅读,Logo通常也被称作没有括号的Lisp。
总的来说,Logo语言是一种早期的编程语言(解释型语言),它与自然语言非常接近的编程语言,但又和其它的语言有很大的不同,因为Logo语言内置了一套海龟绘图(Turtle Graphics)系统,通过向海龟发送命令,用户可以直观地学习程序的运行过程,因此它很适合于儿童学习编程技能,当然适合作数学教学。
Logo语言之所以是儿童学习计算机编程最好的一种语言,就因为它是针对儿童而制作的编程语言,能使儿童在认知与技能上得到较大的发展。Logo语言具有较强的针对性,因为对于儿童来说,“画画”比“文字处理”更具有活力,充分发挥自己的想象进行创作,而文字处理却比较枯燥,不适合儿童。Logo则主要用于“图画”制作,并且采用了“海龟绘图”的方式,适合儿童的特点,能充分引起他们的兴趣和学习该门语言的积极性,达到寓教于乐的目的。在Logo语言中,它的作图方式与现在所用的作图软件不一样,主要区别就在于Logo语言的基本作图的方法可以不采用坐标方式,而是通过向前,后退、向左转、向右转、回家等儿童易于理解的语言和命令,这非常适合儿童的知识水平,使这些还未接触坐标为何物的儿童更容易上手。在用Logo语言作图时,需要学习者对一些常见的几何特性进行理解,了解常用的距离、角度和度数的概念。
Logo语法实现原理:
1.与移动有关的指令:“前进”、“后退”和“归位”。前进命令可让海龟前移一定的单位数,例如:执行“Forward(前进) 50”命令后,小海龟则会向前移动50个单位;后退命令则可让小海龟向后移动,如果执行“Back(后退) 50”命令,那么小海龟的方向不会发生改变,而会向后退50个单位;执行归位命令后,不论当前小海龟的位置及方向怎样,它就会乖乖地回到绘图区的中央位置,并且朝向屏幕的正上方。
2.与转弯有关的指令:“右转”和 “左转”。右转命令可让小海龟按要求向右边转动一定的角度,例如:执行“Right(右转) 45”命令则小海龟的朝向将向右转动45度角;而左转命令则可让小海龟向左转动,如:执行“Left 45”命令则小海龟的朝向将向左转动45度角。这几种命令可以驱动小海龟绕其中心旋转一定的角度。
3.与控制有关的命令有REPEAT(重复)、IF…THEN…ELSE…(条件执行)等。如执行REPEAT 4[FORWARD 200 RlGHT 9O]就能画出图2中的正方形,如果直接将移动命令和转弯命令相结合,则写出的语句就比较多,但都是一些重复地使用4次“Forward 100”和“Right 90”命令。
下面是一段Logo代码的示例,它可以实现小海龟螺旋画圈的效果:
to spiral :size
if :size > 30 [stop] ; an exit condition
fd :size rt 15 ; many lines of action
spiral :size *1.02 ; the tailend recursive call
endspiral 10
如果你对Logo语言有深入的兴趣,这里也收集了一些资料,方便大家到这里查阅:
附录1:
Logo Foundation(Logo基金组织官网网站,这里也有Logo的详细资料可以查阅):
http://el.media.mit.edu/logo-foundation/
中文版Logo编程系统:
http://www.onlinedown.net/soft/50555.htm
附录2:Logo语言命令
DRAW – 清屏、海龟回母位
CLEAN
CLEARSCREEN CS
CLEARTEXT CT
FORWARD FD 前进
BACK BK 后退
RIGHT RT 右转
LEFT LT 左转
PENUP PU 抬笔
PENDOWN PD 落笔
HIDETURTLE HT 藏龟
SHOWTURTLE ST 显龟
CLEARSCREEN CS 清屏
HOME – 回家
REPEAT – 重复
SPLITSCREEN SS 图文混合屏
FULLSCREEN FS 全图形屏
TEXTSCREEN TS 全文字屏
NODRAW ND 全文字屏、清屏
WRAP – 环绕状态
WINDOW – 窗口状态
FENCE – 围栏状态
SHOW – 屏幕输出
TT – 在画图区显示文字
TO……END – 过程头、尾
IF…THEN…ELSE
PAUSE
CONTINUE CO
EDIT ALL – 进入编辑部
STOP –
TOPLEVEL –
SETPC – 设置画笔颜色
SETBG – 设置屏幕底色
坐标作图
SETX – 指定海龟横向位置
SETY – 指定海龟纵向位置
SETXY – 指定海龟任意位置
SETHEADING SETH – 指定海龟方向
XCOR – 显示海龟当前位置的X坐标
YCOR – 显示海龟当前位置的Y坐标
GETXY – 显示海龟当前位置的X,Y坐标
HEADING – 显示海龟指向角度
文件管理
POTS – 显示工作区内所有过程的标题
POPS(PO ALL) – 显示工作区内所有过程的内容
PRINTOUT PO 显示工作区内过程的内容
ERASE(ER ALL) ER 删除工作区中的过程
DIRECTORY DIR 显示磁盘文件目录
DISK – 显示当前盘
SETDISK – 设置当前盘
SAVE – 把程序存盘
LOAD – 读程序文件
SAVEPIC – 图形存盘
LOADPIC – 读图形文件
DELETE – 删除文件
RENAME REN 文件改名
数值计算
PRINT PR 换行打印
TYPE – 同行打印
SETCURSOR – 打印格式
OUTPUT OP 输出
INT – 取整函数
ROUND – 四舍五入函数
QUOTIENT – 求商函数
REMAINDER – 余数函数
RANDOM – 随机函数
SQRT – 平方根函数
ABS – 绝对值函数
MAKE – 赋值
PRECISION – 数字显示精度
字表处理
FIRST – 取首
LAST – 取尾
BUTFIRST BF 去首
BUTLAST BL 去尾
EMPTY? – 判断是否为空
READ – 从键盘上接受一串字符
READCHAR RC 从键盘上接受一个字符
READLIST RL 从键盘上接受一个表
READQUOTE RQ 从键盘上接受一个字
RESULT: – 结果
TRUE – 真
FALSE – 假
COUNT – 测长函数
MAKE – 赋值
ITEM – 输出表中第:K个元素
TEST – 测试条件
IFTRUE IFT 测试真
IFFALSE IFF 测试假
KEY? – 是否有键盘输入
NUMBER? – 是否是数
WORD? – 是否是字
LIST? – 是否是表
WORD – 连接字
SENTENCE SE 字与表、表与表的连接
FPUT – 连接到表(字)首
LPUT – 连接到表(字)尾
LIST – 组成表
RUN – 运行表
DEFINE – 定义过程
ASCII – 输出字符的ASCII码
CHAR – 输出ASCII码值的字符
本文链接:https://www.yunweipai.com/1698.html
想再学编程的可以从这个重新开始
对于中学以上水平的学生来说,LOGO语言就不太适合啦了。