用Alice学编程第4节课.ppt

上传人:sccc 文档编号:5451812 上传时间:2023-07-08 格式:PPT 页数:27 大小:881.51KB
返回 下载 相关 举报
用Alice学编程第4节课.ppt_第1页
第1页 / 共27页
用Alice学编程第4节课.ppt_第2页
第2页 / 共27页
用Alice学编程第4节课.ppt_第3页
第3页 / 共27页
用Alice学编程第4节课.ppt_第4页
第4页 / 共27页
用Alice学编程第4节课.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《用Alice学编程第4节课.ppt》由会员分享,可在线阅读,更多相关《用Alice学编程第4节课.ppt(27页珍藏版)》请在三一办公上搜索。

1、第4讲:程序中的控制语句、Alice内建的函数和表达式,组成程序的代码,一个程序由各种类型的代码片段组成,如前面所学的顺序执行和同步执行语句,简单的指令(如向前移动1米)等等。设计一个程序就是学习如何组织这些代码组成一个程序的代码片段有4种一般指令控制语句函数表达式,一般指令,在Alice中,一般指令就是一个物体的方法(method).如:snowman turn to face snowwoman spiderRobot move up 0.5 meters,控制语句,控制语句的作用是告诉计算机一般指令应该如何被执行,如顺序执行和同步执行。如:Do in order Do together,

2、函数,一个函数用来计算得到一个结果(或者一个数值)在Alice中,我们用函数来询问想得到的问题答案如:询问物体的属性信息 雪人的脸是红色的吗?如:询问两个物体之间的关系 机器人距离岩石的距离有几米?如:询问一个状态值 键盘上哪个键被按下了?,函数举例,在上一讲的例子中,我们用眼睛观察并不能知道机器人距离岩石的详细距离,Alice中内建的函数,内建函数的类型 关于和一个物体接近度的函数 关于物体尺寸的函数 关于物体之间空间关系的函数 关于物体位置方位的函数 其它函数,This example illustrates some built-in proximity functions.,函数的返回

3、值,使用函数是为了得到一个问题的答案,这个答案我们称之为函数的返回值。返回值的类型和函数有关:如问题是:机器人距离岩石有多远?该问题的答案是一个数值;如问题是:机器人的名字是什么?该问题的答案则是一个字符串。,示例,FirstEncounterDistanceFunction该例子中演示的概念:Alice中内建的 distance to 函数的作用是:得到两个物体之间的距离,这个距离是以连接两个中心点的线段长度来衡量的。函数不是一个独立的指令,它总是嵌套在指令中来使用的。,其它例子:mummyDistanceFunction,值的类型,除了数值可以作为函数的返回值外,还有以下值的类型:Bool

4、ean true,falseString Oh,Yeah!“Objectsnowman,helicopter Position in the world(10,5,2)物体在3D场景中的位置,碰撞问题,在刚才的例子中,机器人会和岩石碰撞.原因:移动的距离太大(因为这个距离是以两者的中心连线来衡量的).一个解决的办法是将这个距离适当缩短,即再减去一个数值。,表达式,表达式是一个数学或者逻辑操作的短语,如x+5-7,ab 等Alice 提供了基本的加减乘除数学操作:addition:+subtraction:multiplication:*division:/,示例,FirstEncounterE

5、xpression_V1该例子中说明的概念:数学表达式也是嵌套在指令中的。Alice目前提供的数学表达式有+,-,*,/,其它例子:mummyExpression_V1,示例,FirstEncounterExpression_V2上一步中减去2米是一个我们任意给的数值。更精确的做法是减去岩石宽度的一半。该步骤的结果是一个比较复杂的表达式:两个函数的返回值之差。,其它例子:mummyExpression_V2,控制语句,除了 Do in order 和 Do together 控制语句之外,还有以下两种控制语句:条件执行语句(conditional execution)循环语句(repetiti

6、on),条件执行语句,当某个条件满足时,执行一个代码块,否则执行另外一个代码块。如:当木乃伊比法老高时,木乃伊向左转一圈,否则法老向左转一圈。,If/Else 语句,在 Alice中用 If/Else 控制语句来检查一个条件是否满足。,示例,mummyIfElse该例子说明的概念:条件是由一个布尔(Boolean)函数完成的,布尔函数返回一个布尔值(true 或者false)。Do nothing意思是什么都不做,继续执行下一条语句。,关系操作表达式,一个物体内建的布尔函数很有限,如没有一个函数用来表达木乃伊的身高是否大于2米。这可以用world节点中的关系操作表达式来实现。如下图所示:,示例

7、,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 le

8、ft 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,再行走到它与登月机的中间。参考

9、视频文件:exercise-4-1.swf,作业4-2,创建一个包含一只狗(Animal中的wolf)和一个消防栓(City)的虚拟世界,如下面场景所显示的。(我们用狼来代表狗。)编写一条指令,用distance to函数结合数学表达式来把狗移动到消防栓的旁边。注意,避免狗和消防栓发生碰撞。参考视频文件:exercise-4-2.swf,作业4-3,创建如下图所示的场景,包含一个飞艇(Vehicle)和一只飞龙(Medieval)。在这个奇幻的场景中,飞龙发现了飞艇并十分好奇。它在飞艇的周围盘旋想探个究竟。编写代码让飞龙向飞艇移动,并绕它(纵向地)旋转三周。参考视频文件exercise-4-3.swf,思考,创建一个包含一个木箱(Object)和一只袋鼠(Animal)的虚拟世界。编写程序使袋鼠跳到木箱上面,让袋鼠的腿前后旋转,让跳跃更加真实。在向前向上运动的函数中使用height函数来定位。参考视频:exercise-4-4.swf,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号