# 第10课 喵喵出题目

班级即将举行口算竞赛，为此“喵喵”想要制作一个口算训练程序给大家练习，我们一起来帮助它吧！

在本课的范例作品中，我们需要制作一个能够随机出题、自动批改的加法口算训练程序。

![](/files/-LWon2okppp0DC6FtZ0n)

## 创意构思

本课的范例作品是一个加法口算训练程序，先随机出题，然后等待用户输入答案，再判断输入的答案是否正确。

要完成本课的创意构思，需要了解以下的新指令：

1\.

![](/files/-LWon2ooDVwYmGwuIkar)

属于“数据”类别工具按钮，单击这个按钮后，可以通过打开的“新建变量”对话框创建变量。

创建变量以后，在“指令区”的“数据”类别中，会增加一些用于控制变量的指令，同时在舞台的左上角默认会显示变量对象。该变量对象左边是变量名，右边是变量当前的值。

[单击此处](http://haohaodada.com/video/a21001.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2org4P4kJ81sImr)

#### 试一试

双击舞台中的变量对象，你发现了什么？？

[单击此处](http://haohaodada.com/video/a21002.php)或者扫描下方二维码可以观看相关的视频。

![](/files/-LWon2ovVkhgYaufpdfd)

2\.

![](/files/-LWon2ox-x5MuM0263qQ)

属于“数据”类别指令，为一个变量赋值；由第一个下拉列表参数确定需要赋值的变量，第二个参数确定这个变量具体设定的值。

3\.

![](/files/-LWon2p-Pk5ZLi7M6r4F)

属于“数据”类别指令，每次新建一个变革，都会增加相应变量的指令。通过该指令，可以获取变量当前的值。

### Scratch中的变量

在Scratch中，“变量”是另一个非常重要的概念，可以新建变量、对变量赋值，在程序的运行过程中可以根据需要随时修改变量的值。

一个变量包括“变量名”与“变量值”两个属性：“变量名”用于在脚本中识别不同的变量，可以使用中文作为变量名称，变量名应该有一定意义；“变量值”是指变量所包含的值。比如创建一个名为“加数1”的变量，可以通过

![](/files/-LWon2ox-x5MuM0263qQ)

指令来设置它的变量值，也可以使用

![](/files/-LWon2p-Pk5ZLi7M6r4F)

指令来获取它的变量值。

[单击此处](http://haohaodada.com/video/a21003.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2p2f-y7VcpkejMp)

#### 想一想

下列表格中的字符，在Scratch中都可以作为新建变量名。但有些作为变量名不太合适，容易混淆。请在你认为最合适的变量名下方的表格中打“**√**”。

![](/files/-LWon2p5mH8ck_5Xp-Px)

[单击此处](http://haohaodada.com/video/a21004.php)或者扫描下方二维码可以观看相关的视频。

![](/files/-LWon2pCvkOG14nptn9W)

5\.

![](/files/-LWon2pGYE9hD8PwTfrJ)

![](/files/-LWon2pMw1RO36KQBGpi)

![](/files/-LWon2pRilSC1mznyJZ-)

属于“数字和逻辑关系”类别指令，分别用于比较指令左边的参数与右边的参数之间是否存在相等、小于或大于的关系。

6\.

![](/files/-LWon2pTmrISqvJt5bv7)

* 属于“侦测”类别指令，能够显示提示文本并等待用户通过键盘输入，指令的参数就是显示的提示文本内容。
* 执行该指令会暂停程序执行，然后在舞台下文显示文本输入框，等待用户输入。输入完成后直接回车或者单击文本框右侧的

![](/files/-LWon2pVftFO_2R2oyh7)

按钮完成输入。

#### 试一试

分别将该指令放置在角色脚本中与舞台背景脚本中运行程序，你发现了什么？

[单击此处](http://haohaodada.com/video/a21005.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon2pXvP8ebrXjF9fS)

7\.

![](/files/-LWon2pZnpRHcCXpF_4v)

* 属于“侦测”类别指令，与

![](/files/-LWon2pTmrISqvJt5bv7)

指令配合使用，用户键盘输入的内容保存于该指令中。

## 脚本设计

### 第一步：准备角色和背景

1.从背景库中选择“chalkboard”作为舞台背景图片；

2.将角色“Cat1”重命名为“喵喵”，然后摆放到舞台合适的位置；

3.单击“角色列表区”的

![](/files/-LWon2pcDDqfdanzzf5C)

按钮，在角色造型编辑窗口中绘制一个加号，并将该角色重命名为“加号”，将这个加号摆放到黑板的中央。

[单击此处](http://haohaodada.com/video/a21006.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2pey6nqUNv5xTS7)

### 第二步：口算出题

本课范例中的口算是由两个加数组成的加法口算，可以按以下步骤出题：

1.在“脚本”选项卡中，单击“数据”类别下的

![](/files/-LWon2ooDVwYmGwuIkar)

按钮；在打开的“新建变量”对话框中输入变量名“加数1”。

2.重复以上步骤，再新建变量“加数2”。

3.将舞台中的

![](/files/-LWon2piKZEQ_HRIOMUq)

![](/files/-LWon2pkZi_g8SK13O44)

标记设置成

![](/files/-LWon2pmvId7GE6VPbUh)

样式后分别摆放到加号的两侧。

4.单击舞台背景缩略图，添加如下图所示的变量初始化脚本：

![](/files/-LWon2pogD8tzdQz5jhX)

[单击此处](http://haohaodada.com/video/a21007.php)或者扫描下方二维码观看以上内容相关的视频。

![](/files/-LWon2pqrI65zvfL7WeA)

#### 试一试

把

![](/files/-LWon2ps5zj3vuBdArnW)

指令和

![](/files/-LWon2puXoGFW192C479)

指令中的第二个参数修改成不同的数字后再运行程序，你发现了什么？

如果将

![](/files/-LWon39Dow9E-pQh-IgX)

指令分别拖动到以上两个指令的第二个参数位置上再运行程序，你又发现了什么？

[单击此处](http://haohaodada.com/video/a21008.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon2py5iM-_7lobwGU)

### 第三步：输入口算答案

口算题目产生并且显示以后，程序应该能够接受用户的键盘输入。要实现这个功能，可以将以下脚本添加到“喵喵”的角色脚本中：

![](/files/-LWon2q-MhsfP92WZFKP)

[单击此处](http://haohaodada.com/video/a21009.php)或者扫描上方的二维码可以观看以上内容相关的视频。

![](/files/-LWon2q1LfIqsHFdo-Kt)

#### 试一试

在指令区勾选

![](/files/-LWon2pZnpRHcCXpF_4v)

指令前的

![](/files/-LWon2q5bvmZG0KIyCV_)

然后运行上图所示的脚本，在文本输入区中输入答案。观察舞台区并把你的发现记录下来。

[单击此处](http://haohaodada.com/video/a21010.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon2q7UuXqdlThBCGF)

### 第四步：判断答案是否正确

* 口算答案输入后，需要马上判断是否正确，也就是将“加数1”与“加数2”相加的结果与输入的答案进行比较，如果相等说明输入正确，否则就是输入错误。可以将以下脚本添加到“喵喵”的角色脚本的

![](/files/-LWon2q9FYGQdmhfyuwk)

指令后：

![](/files/-LWon2qBSK-86Dq8BLw-)

[单击此处](http://haohaodada.com/video/a21011.php)或者扫描下方二维码可以观看以上内容相关的视频。

![](/files/-LWon2qDyBowuHrClmP9)

#### 想一想

现在的口算练习程序每运行一次只能练习一道口算题，如果想要练习多道题目，应该如何修改脚本？

[单击此处](http://haohaodada.com/video/a21012.php)或者扫描下方二维码可以观看相关视频。

![](/files/-LWon2qFqKZEq8YjlA5Q)

## 拓展思考

在“喵喵”制作的口算软件帮助下，大家的口算成绩突飞猛进。不过“喵喵”觉得这个口算软件还不够完美，发挥你的想象，用学过的知识让口算软件更完美吧！


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.haohaodada.cn/zai-xian-ru-men-ke-cheng/scratch-primer/lesson-10.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
