image

编辑人: 流年絮语

calendar2025-05-22

message7

visits175

2021年03月Scratch四级实操答案及解析

一、简答题

1、 程序优化
下图第一行有1个正三角形,第二行有2个正三角形,第三行有3个正三角形,每一行的第1个正三角形是上下对齐的。
小刚想绘制这个图形,便编写了如下图所示的程序,请根据要求优化程序。
1.准备工作
(1)保留舞台为默认的白背景;
(2)保留默认小猫角色,小猫在舞台中间位置。
2.功能实现
(1)用键盘任意输入一个数字表示行数(考虑到舞台的大小,可以提醒输入的数字在1-9之间),之后小猫会根据输入的行数自动绘制一个多行的图形(如果输入5,那么就绘制5行);
(2)绘制的图形规则为:假设绘制n行,第一行绘制一个三角形,第二行绘制2个三角形......第n行绘制n个正三角形;
(3)每行中任意两个正三角形之间都间隔20个坐标值,任意相邻两行的间隔也是20个坐标值,每行的第1个三角形的x坐标值是一样的,即在同一列;
(3)要用函数绘制正三角形,用循环嵌套以及函数来优化程序。

参考答案:

解析:【喵呜刷题小喵解析】首先,我们定义了一个局部变量`n`来存储用户输入的行数。然后,我们使用`input`函数来询问用户输入行数,并将输入的值赋给`n`。接下来,我们检查用户输入的`n`是否在1到9之间。如果不在这个范围内,我们输出一条错误信息并退出程序。如果`n`在1到9之间,我们开始绘制图形。我们使用一个`for`循环来遍历每一行,使用另一个`for`循环来绘制每一行的三角形。在绘制三角形时,我们调用了一个自定义函数`drawTriangle`。这个函数接受三个参数:`num`表示三角形的边数,`x`和`y`表示三角形的位置。在`drawTriangle`函数中,我们使用`penup`和`pendown`函数来抬起和放下画笔,使用`goto`函数来移动到三角形的起始位置,然后使用`forward`和`left`函数来绘制三角形的边。最后,我们使用`line`函数来绘制每行之间的间隔线。注意,在这个程序中,我们使用`goto`函数来设置三角形的起始位置,使用`forward`和`left`函数来绘制三角形的边。我们还使用了一个`if`语句来检查是否应该绘制三角形的底边。此外,我们还使用了`penup`和`pendown`函数来控制画笔的状态,以确保在绘制图形时不会绘制多余的线条。

2、十字回文诗
十字回文诗,又称为转尾(鳞迭)连环回文诗,是古人创造的一种七言绝句诗体,由10个字连环往复,读成一首28个字的七绝。以清朝女诗人吴绛雪《咏四季》中的春为例:莺啼绿柳弄春晴晓月明,十个字回环往复,可读成以下28个字的七绝:
莺啼绿柳弄春晴(前七个字,正序读)
柳弄春晴晓月明(后七个字,正序读)
明月晓晴春弄柳(后七个字,倒序读)
晴春弄柳绿啼莺(前七个字,倒序读)
《咏四季》的另外三首分别为:
夏:香莲碧水动风凉夏日长
秋:秋江楚雁宿沙洲浅水流
冬:红炉透炭炙寒冬遇雪风
请根据十字回文诗的成诗规律,编写程序,将《咏四季》读成的四首七绝通过列表展示出来。
1. 准备工作
(1) 背景:保留初始背景“背景1”;
(2) 角色:隐藏初始角色“角色1”(小猫);
(3) 创建列表“咏四季·春”、“咏四季·夏”、“咏四季·秋”、“咏四季·冬”。
2. 功能实现
(1) 将其中一首十字回文诗生成28字七绝;
(2) 将另外三首十字回文诗生成七绝;
(3) 使用自制积木对程序进行抽象和化简;
(4) 命名规范易读,并为代码添加合理注释.

参考答案:

解析:【喵呜刷题小喵解析】根据题目要求,我们首先需要创建一个列表来存储四首十字回文诗。题目已经给出了四首十字回文诗,我们可以直接将其存储在四个变量中。然后,我们定义一个函数`display_poem`,用于展示一首十字回文诗。这个函数接受两个参数:诗的标题和诗的内容。在函数内部,我们按照题目要求的格式,分别打印出正序和倒序的前七个字以及后七个字。最后,我们依次调用`display_poem`函数,传入不同的标题和诗的内容,即可展示出四首十字回文诗。由于题目要求使用自制积木对程序进行抽象和化简,我们可以将“创建列表”和“填充列表”两个步骤合并,直接在变量中存储诗的内容,从而简化了程序。同时,我们也遵循了命名规范,将变量命名为`spring`、`summer`、`autumn`和`winter`,使得代码更加易读。

3、绘制花瓣
下图为六个平行四边形组成的花瓣,请仔细观察图形,编写程序利用循环语句绘制该花瓣图形(花瓣中心的圆点不用绘制) 。
1.准备工作
(1)舞台背景为白色;
(2)导入下图角色“Pencil”角色,设置造型中心为笔尖(即通过铅笔笔尖部位绘制图形)。
2.功能实现
(1)利用角色Pencil绘制图形,设置画笔颜色为黑色,画笔粗细为4;
(2)设置平行四边形的长(100步)、宽(60步)以及其中一个角的度数(30°),利用函数完成一个平行四边形的绘制;
(3)通过循环语句和函数完成上图花瓣的绘制;
(4)当按下空格键,擦除绘制的图形。

参考答案:

解析:【喵呜刷题小喵解析】首先,我们需要设定舞台背景为白色,并导入角色“Pencil”,设置造型中心为笔尖。然后,我们需要设定画笔颜色为黑色,画笔粗细为4。接下来,我们需要设定一个平行四边形的绘制函数。在这个函数中,我们需要设定x1、y1、x2、y2和角度等变量,然后通过循环语句和函数完成花瓣的绘制。在每次循环中,我们需要将x坐标设为x1,将y坐标设为y1,设定朝向为角度,前进100步,将x坐标设为x2,设定朝向为角度+90,前进60步,将x坐标设为x1,设定朝向为角度+180,等待0.1秒,将x坐标设为x2,设定朝向为角度+90,后退60步,将x坐标设为x1,设定朝向为角度+180,后退100步。最后,我们需要设定一个按下空格键后擦除绘制的图形的函数。以上代码实现了题目要求的功能,包括绘制花瓣和擦除图形。

4、 绳子算法
故事情境:最近在学绳子算术的小星星非常苦恼,他常常在想,如果有一款程序能实现根据输入的两根绳子长度,可以把两根长绳截成长度相等的小段后,直接求出一共可以截成多少段,每段最长多少米就好了。小猫知道后,决定设计一个程序帮助小星星走出绳子算术的困境。
1.准备工作
(1)保留舞台默认白色背景及小猫角色,将小猫角色调整到舞台上合适的位置;
(2)建立名为“绳子”的列表用于存储数据。
舞台效果如下图所示。
2.功能实现
(1)点击绿旗,询问“输入绳子长度”并等待;
(2)将输入的绳子长度保存到列表“绳子”后,小猫分别说两根绳子的长度3秒;
(3)根据输入的两根绳子长度,设计算法实现:把两根长绳截成长度相等的小段。求出一共可以截成多少段,每段最长多少米;
(4)计算完成后,小猫分别说“一共可以截成多少段,每段最长多少米。”3秒。

参考答案:

解析:【喵呜刷题小喵解析】:本题要求设计一个Scratch程序,根据输入的两根绳子长度,将两根绳子截成长度相等的小段,并输出截得的段数和每段的最长长度。程序开始时,设置两个等待输入的区域,等待用户输入两根绳子的长度。同时,设置一个名为“绳子”的列表用于存储数据。程序的主要逻辑在一个重复执行直到列表“绳子”为空的循环中。在每次循环中,首先计算当前两根绳子的最小长度,即每段绳子的长度,然后将两根绳子的长度除以每段的长度,分别得到截得的段数,并从列表中删除已使用的绳子长度。接着,将每段的长度加入到“绳子”列表中,等待3秒后,小猫说出当前绳子的长度和截得的段数及每段的最长长度。注意,本题中Scratch的列表索引是从1开始的,因此在计算段数时需要使用“取商”函数,而不是直接相除。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2021年03月Scratch四级实操答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share