Scratch+数学与算法进阶
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第一节 赋值与四则运算

学习目标

如图1-1所示,Scratch 3.0软件的界面左侧是模块区,由运动模块、外观模块、声音模块等组成。每个模块又包含许多指令,这些指令分为两类:一类是功能指令;一类是编程语言最基础的原生指令,即赋值指令。

本节学习如何在Scratch中根据数学公式搭建赋值指令。

图1-1 Scratch 3.0的模块区

基本原理

赋值是将某一数值赋给某个变量的过程。Scratch中的赋值指令是

1.积木含义

积木的功能是把一个数值放入变量“我的变量”中。为了方便描述,可定义作为目标的变量为“左值”,需要放入的数值为“右值”。数据是按从右向左的方向传递的,即将右值传递给左值。

2.示例

赋值指令的左值,必须是一个变量。

赋值指令的右值,可以是一个常量、变量或表达式。无论哪种形式,最终都会将一个数值放入左值中。

例如,对于a的赋值,有以下三种情况。

(1)赋值为数值(常量)。积木中的右值“5”是常量。

(2)赋值为变量。积木中的右值“b”是变量。

(3)赋值为表达式。积木中的右值“b+1”是表达式。

左值就像一个装东西的盒子,无论右值是常量、变量或者需要“加工”的表达式,都可以使用赋值语句放到左值的盒子里。

3.Scratch中的四则运算

加、减、乘、除是数学中的四则运算,也称算术运算。Scratch中提供了四则运算的运算积木,如图1-2所示。

图1-2 运算积木

在数学计算中,解答是按从左向右的方向完成的。例如,3+5=8、2×3=6,这里的等号“=”两侧的值相等,等号“=”还有一层解答的意义,这是一个从左向右的解答过程。

而赋值,则是一个从右到左的传递过程,许多的数学公式同样使用了等号“=”,它的两侧同样有相等的关系,但这里的等号却有赋值的意义。

例 如,a=3+5,用 指 令表示,这条指令的含义是将右边表达式计算出来的值传递到a中。又如,a=b-3,用指令表示。右侧算术表达式的计算顺序,同样遵守数学计算中的优先级,即乘除运算优先于加减运算,带括号的算式优先级最高,当优先级相同时,按从左至右的顺序计算。

4.Scratch中的混合运算

Scratch的每个算术积木,已经整合了括号的功能。例如,以下几个公式各自搭建成赋值指令。

(1)a=b+c×2,先做乘法后做加法。

(2)a=(b+c)×2,先做括号里的加法,后做乘法。

(3)a=b+c×5-7,混合运算,乘除优先于加减,相同优先级的运算符则按从左至右的顺序计算。

(4)a=bc,在数学公式中,字母之间的乘号“×”常常省略;在Scratch中,乘号用“*”表示。

(5)a=是一个分数,读作“二分之b”。在数学公式中,上下分隔线“—”表示除号;在Scratch中,“/”表示除号。

在变量模块中,还有一条指令

它是不是赋值指令呢?

本质上,它也是赋值指令,其功能是将a的值加1后,赋值给a,等同于指令。这个功能在Scratch中很常用。为了使用方便,把a=a+1专门做成一个新的指令。当变量增加的值为数值或变量时,可以使用这条指令。