KPL青少年电脑编程语言--用设计的方式理解程序语言

[KPL学习指南]用设计的方式理解程序语言
kpl 发布于 2007-6-26 13:19:00


 初学电脑编程的人,一般都不知道变量和循环什么的怎么用。这是很正常的事情。之所以这样,其实主要是因为你不知道程序语言是如何设计的,这样的设计有何意图。

 刚开始学习的人,都会经历这个过程,没有什么好担心的。你可以轻易地越过这个障碍!

 简单地说,一段程序主要是模拟一个过程,这个过程里面主要包含了逻辑和计算的部分。


(一)为什么要申明变量?

 比如,我们从小学做的一道题:1+2=?

 小时候,我们都是搬手指头,可电脑没有大脑,也没有手指,它只有电子大脑-内存:一个用来保存数据准备用来计算的地方。程序语言的设计者设计了这个把戏,把它命名为:变量。

 你可以把变量理解为一个容器,不同的容器可以装不同的东西。程序里面把不同类型的变量称之为:数据类型。

 我们来看看电脑是如何工作的:你要首先命名一个变量x,在命名的同时指导其数据类型,相当于告诉电脑只能装什么东西,电脑接到指令后,根据指示,分配存储的内存空间。

 在KPL中,用下面这句话就代表了上面的整个过程:Var count As Int

 意思是:电脑啊,我要分配一个空间,这个空间叫count,它用来装整数的,ok,准备好了吗?

 这个语句告诉了我们什么呢:电脑不是天才,如果你不告诉它怎么做,他就是一个白痴。你也会明白,在程序语言的设计中,我们要帮助电脑,给他一点指挥和帮助才行。

 接下来的事情,就是在分配的空间中装东西了:count=1。这个语句的意思是把整数1放在变量容器count里面。

 那么,下面的语句是什么意思呢 ?

 count=count+1

 如果按我们平时的学的数学的观点,上面的等式是不成立的。但是在电脑里面,根据我们刚才说的容器的概念,它的意思也很清楚:

 在原有容器的基础上,数量加1,如果原来的count是1,加1后,count的值就变成了2。

 变量的声明,是所有程序准备计算和逻辑判断的开始,因为电脑最终只能理解数字,也只能理解已经数学化的过程。

(二)什么是逻辑和计算?

 数学是很抽象的事情,比如:1+2=?可能代表不同的问题:

 【1】1颗棒棒糖,加上2个棒棒糖,一共几个棒棒糖?

 【2】买一送二,买一个大蛋糕,送你两片口香糖,你得到多少个礼物;

 【3】你们家:两个大人,一个小孩,还是一个大人,两个孩子。一共多少人?

 在上面的问题下,数学的结果是一样的,不关心吃了糖是不是坏牙齿,礼物是大是小,你们家人怎么构成的。

 但是,你注意到没有,上面三个问题,最后都变成了一道数学题。电脑编程也是大致如此的:你要把需要知道或了解的结果,变成一个判断和计算的过程,模拟出来。

 1967年,有两位美国科学家用数学的方法证明了:任何过程都只需要三种结构来描述,即顺序结构、条件分枝结构、循环结构。

 这意味着,如果程序来模拟过程的话,也只需要三类语句来实现。

 【顺序结构】
  
  不需要特殊语句,程序本身就是顺序执行的

 【条件/分支】 

  if/then/else/endif

 【循环】

  loop循环

  while循环

  for循环


 事实上,到目前为止,所有的程序语言设计大多如此。

 让我们来看一个例子:计算1+2+3+......+100=?

 要求计算出:(1)总和;(2)分别算出奇数和偶数的和;

 我们来看给出的一种解法。
  
  //申明变量
  Var count As Int //
  
  Var num As Int //保存总和
  Var num1 As Int //保存奇数和
  Var num2 As Int //保存偶数和
  
  //反复累加,重复做的事情就需要循环
  For count=1 To 100
   num=num+count //累加运算
   
   //条件判断,是奇数,还是偶数
   //如果除以2,余数为0,则是偶数
   If (count Mod 2=0) Then
    num2=num2+count
   Else
    //奇数和计算
    num1=num1+count
   End If
  Next
  
  //输出结果,否则看不到
  PrintLine(num)
  PrintLine(num1)
  PrintLine(num2)
 
 上面这个简单的例子,包含了程序最基本的结构。
 
(三)用需要的方式来理解程序语言的设计

 数组:用来存放相同数据类型的一个系列空间。相当于同一个单元的户型一样。 

自定义数据结构:信息总是比较多的。而且信息有个特点,它并不总是单独存在。比如,拿我们自己来说吧,跟自己相关的信息很多,姓名、年龄、性别、电话、家庭住址等等。如果我们要表明相关信息,给每个信息设置一个变量,是一个非常麻烦的事情。

程序的设计者考虑到了这一点,通过自定义数据结构来打包访问。

 Structure People
  name as string
  age as int
  address as string
 end Structure

 这样当我们申明一个people类型的变量时,就可以这样使用:

 var curuser as People

 curuser.name="kpler"
 curuser.age=2
 curuser.address="www.dapenti.com"

 你看,这样是不是很简单?!

 函数和方法:一小段代码,保证你可以重复使用。重复计算是电脑最拿手的了。尽量让电脑重复,而不是我们去做重复的事情,是电脑存在的一个重要理由。

 方法就是执行一段代码。但代码不会返回一个结果,而函数会。

 这是一个方法:
 Method SayHello()
  PrintLine ("Hello!中文")
 End Method

 这是一个带有参数的方法:

 Method SaySomething(SomeThing As String)
  PrintLine (Something)
 End Method  

 这是一个函数:

 function fundemo(num as int) as bool
  if (num mod 2=0) then
   return True
  else
   return false
  end if
 end function

 记住:函数要返回一个结果。

 有人会问了,怎么才能使用函数和方法呢?

 简单地说,任何过程首先都是线性的过程,象一条直线一样,但如果你发现在这个过程中,有些东西反复在做,或者做的差异只是改改数字或小的改动,那么,你可以把这个重复的过程提出来,放在一个函数或方法里面。

 这样做的好处是:你通过改变传递参数的值就可以完成相同的工作,不必重复劳动;通过这个办法,你把很长的程序,变成了一个个的小豆腐块,这样的豆腐块有很多在其他的代码中也可以使用,这样,编程变成了一个一劳永逸的事情。

(四)高级概念

 其实编程还有很多相对比较高级的概念。你想想看,我们在使用word或上网的时候,我们在用一个软件的时候,很少看到计算的部分。

 因为真正的软件在与人的动作的交互过程中,提供了一个重要的部分:人机界面。简单地说,就是把计算和逻辑的部分隐藏起来,用一种友好的界面来给人打交道。

 这部分的设计并不包含在基础的程序语言里面,而是包含在专业的开发工具提供的界面元素中。刚开始,大家知道这一点就可以了。

 还有在电脑编程里面,有大量的错误处理的代码。因为人很容易犯错,我们的操作也可能导致电脑不能解释而崩溃。

 总而言之,大家要明白一个概念: 电脑编程语言是对过程的一种模仿,它是一种逻辑和技术的工具,也是和人交互的接口。所有的电脑编程元素的设计,都是从人的使用和理解出发,结合应用的需要而设计的。

 这样看来:知识并非是一成不变的,如果我们需要它改变,它就可以改变。这也说明了为什么世界上有那么多的编程语言。 好的编程语言,代表了设计者的着眼点和应用的倾向:拿KPL来说,它就是设计给初学者,麻雀虽小,五脏俱全。而在专门的小游戏上面,又独具匠心,给初学者屏蔽了大量的知识要求,而代之以核心的编程要素,让人很快上路。

 如果你能从应用的角度去理解程序的语言,那么你总是能很快画出自己学习的地图,在电脑的世界里,你可以学到:没有什么不可以。

 

转发到新浪微博

 

网上书店:当当图书  卓越亚马逊  新华书店  中国图书网  蔚蓝书店

  |  KPL QQ 群:39562753 
 




KPL QQ 群:39562753 

  验证申请请输入:KPL

  公告

敏捷培训视频培训教程,版权所有,未经授权,禁止转载

     现在国内无法访问KPL官方网站,喷嚏网(www.dapenti.com)提供的KPL资料为国内首份公开的KPL汉化资料。

该资料转载并注明作者和译者出处。如:来源:喷嚏网-www.dapenti.com

欢迎从事中小学信息技术的教师转载和引用,论坛或媒体须经书面许可

欢迎媒体合作!


邮箱:dapenti2006@gmail.com


  我的分类(专题)
  最近日志
程序员怎样学数学:半路出家也能让编程
汉语编程-汉芯之后的中国软件界大骗局
一步一步学KPL【9】:如何对按键进
一步一步学KPL【8】:如何让字母精
一步一步学KPL【7】:如何在屏幕上
一步一步学KPL【6】:如何随机产生
一步一步学KPL【5】:如何随机产生
一步一步学KPL【4】:如何编写一个
KPL开发环境中的一个bug
一步一步学KPL【3】:如何调试KP
一步一步学KPL[2]:编码的习惯和
structure有什么用?
为什么编程要用英文?
如何用任意的图形来画线?
一步一步学KPL[1]:初学者入门
吴文虎:别让“程序设计”成第二门“英
如何使用系统函数?
版权和转载申明
孩子什么时候学编程比较合适?
《KPL游戏示例代码讲解》电子书在线

  最新评论

  留言板
 

  链接

  Blog AD
 



|站点首页 | 联系我们 | 博客登陆
蜀ICP备11003155号 公安部备案号:51019002000333

特别声明:本站不提供任何视听上传服务,所有视频内容均来自视频分享站点所提供的公开引用资源

Powered by oBlog 2.52 © Copyright 2004. All rights reserved.