用Alice学编程第4节.ppt_第1页
用Alice学编程第4节.ppt_第2页
用Alice学编程第4节.ppt_第3页
用Alice学编程第4节.ppt_第4页
用Alice学编程第4节.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4讲: 程序中的控制语句、Alice内建的函数和表达式,组成程序的代码,一个程序由各种类型的代码片段组成,如前面所学的顺序执行和同步执行语句,简单的指令(如向前移动1米)等等。 设计一个程序就是学习如何组织这些代码 组成一个程序的代码片段有4种 一般指令 控制语句 函数 表达式,一般指令,在Alice中,一般指令就是一个物体的方法(method). 如: snowman turn to face snowwoman spiderRobot move up 0.5 meters,控制语句,控制语句的作用是告诉计算机一般指令应该如何被执行,如顺序执行和同步执行。 如: Do in order Do together,函数,一个函数用来计算得到一个结果(或者一个数值) 在Alice中, 我们用函数来询问想得到的问题答案 如:询问物体的属性信息 雪人的脸是红色的吗? 如:询问两个物体之间的关系 机器人距离岩石的距离有几米? 如:询问一个状态值 键盘上哪个键被按下了?,函数举例,在上一讲的例子中,我们用眼睛观察并不能知道机器人距离岩石的详细距离,Alice中内建的函数,内建函数的类型 关于和一个物体接近度的函数 关于物体尺寸的函数 关于物体之间空间关系的函数 关于物体位置方位的函数 其它函数,This example illustrates some built-in proximity functions.,函数的返回值,使用函数是为了得到一个问题的答案,这个答案我们称之为函数的返回值。 返回值的类型和函数有关: 如问题是:机器人距离岩石有多远?该问题的答案是一个数值; 如问题是:机器人的名字是什么?该问题的答案则是一个字符串。,示例,FirstEncounterDistanceFunction 该例子中演示的概念: Alice中内建的 distance to 函数的作用是:得到两个物体之间的距离,这个距离是以连接两个中心点的线段长度来衡量的。 函数不是一个独立的指令,它总是嵌套在指令中来使用的。,其它例子:mummyDistanceFunction,值的类型,除了数值可以作为函数的返回值外,还有以下值的类型: Boolean true, false String “Oh, Yeah!“ Object snowman, helicopter Position in the world (10, 5, 2) 物体在3D场景中的位置,碰撞问题,在刚才的例子中,机器人会和岩石碰撞. 原因:移动的距离太大(因为这个距离是以两者的中心连线来衡量的). 一个解决的办法是将这个距离适当缩短,即再减去一个数值。,表达式,表达式是一个数学或者逻辑操作的短语,如x+5-7,ab 等 Alice 提供了基本的加减乘除数学操作 : addition : + subtraction : multiplication: * division: /,示例,FirstEncounterExpression_V1 该例子中说明的概念: 数学表达式也是嵌套在指令中的。 Alice目前提供的数学表达式有 +, -, *, /,其它例子: mummyExpression_V1,示例,FirstEncounterExpression_V2 上一步中减去2米是一个我们任意给的数值。 更精确的做法是减去岩石宽度的一半。 该步骤的结果是一个比较复杂的表达式:两个函数的返回值之差。,其它例子: mummyExpression_V2,控制语句,除了 Do in order 和 Do together 控制语句之外,还有以下两种控制语句: 条件执行语句(conditional execution) 循环语句(repetition),条件执行语句,当某个条件满足时,执行一个代码块,否则执行另外一个代码块。 如:当木乃伊比法老高 时,木乃伊向左转一圈, 否则法老向左转一圈。,If/Else 语句,在 Alice中用 If/Else 控制语句来检查一个条件是否满足。,示例,mummyIfElse 该例子说明的概念: 条件是由一个布尔( Boolean )函数完成的,布尔函数返回一个布尔值( true 或者false )。 Do nothing意思是什么都不做,继续执行下一条语句。,关系操作表达式,一个物体内建的布尔函数很有限,如没有一个函数用来表达木乃伊的身高是否大于2米。这可以用world节点中的关系操作表达式来实现。如下图所示:,示例,mummyRelationalOps 该例子中说明的概念: 关系操作表达式用world中的函数来实现. 关系操作表达式中的“a” 和 “b” 符号会被函数或者其它的数值代替,循环语句,现实中我们经常需要反复执行多次同一个动作,在计算机中称之为循环。 先看一个木乃伊行走一步的例子 mummySimpleSteps,行走一步的故事板(storyboard),Do in order Do together /move body and left leg mummy move forward 0.25 meters Do in order mummys left leg turn backward mummys left leg turn forward Do together /move body and right leg mummy move forward 0.25 meters Do in order mummys right leg turn backward mummys right leg turn forward,用循环语句实现行走5步,mummyLoop,作业4-1,在上次所讲的例子机器人和外星人初次见面(ch2e2firstEncounterExtended.a2w)基础之上修改如下:让spiderRobot走到岩石那边后,让它转向lunarLander,再行走到它与登月机的中间。 参考视频文件: exercise-4-1.swf,作业4-2,创建一个包含一只狗(Animal中的wolf)和一个消防栓(City)的虚拟世界,如下面场景所显示的。(我们用狼来代表狗。)编写一条指令,用distance to函数结合数学表达式来把狗移动到消防栓的旁边。注意,避免狗和消防栓发生碰撞。 参考视频文件:exercise-4-2.swf,作业4-3,创建如下图所示的场景,包含一个飞艇(Vehicle)和一只飞龙(Medieval)。在这个奇幻的场景中,飞龙发现了飞艇并十分好奇。它在飞艇的周围盘旋想探个究竟。编写代码让飞龙向飞艇移动,并绕它(纵向地)旋转三

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论