zoukankan      html  css  js  c++  java
  • 把孩子打造成为码农

    作者: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

     


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

     

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

  • 相关阅读:
    数据库-第六章 关系数据理论-6.2.1 函数依赖
    数据库-第六章 关系数据理论-6.1 问题的提出
    编译原理-第四章 语法分析-4.4 自顶向下的语法分析
    计算机组成及系统结构-第五章 指令系统
    编译原理-第四章 语法分析-4.3 设计文法
    Java数据结构之堆和优先队列
    进程与线程杂谈
    Java的多态浅谈
    Java的自定义注解使用实例
    elasticsearch6.6.2在Centos6.9的安装
  • 原文地址:https://www.cnblogs.com/vamei/p/2686966.html
Copyright © 2011-2022 走看看