「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。
我们将有关编程题目的教学视频已经发布到抖音号21252972100,小马老师上,可配合图文一起学习。
小猴数草莓
小猴摘了一筐草莓,它拿出来数一数有多少颗。第一行放1颗,第二行放2颗,第三行放3颗,第四行放4颗,第五行放5颗。一边摆一边数,最后,说出草莓的总数。
1. 准备工作
(1)背景为“Forest”;
(2)角色小猴“Monkey”、草莓“Strawberry”。
2. 功能实现
(1)调整小猴和草莓的大小(大小的具体数值自定义);
(2)小猴说:“今天摘了多少颗草莓呢?数一数吧!”2秒;
(3)第一行1颗草莓,第二行2颗,第三行3课,第四行4颗,第五行5颗,注意草莓要整齐排列;
(4)每出现一颗草莓,小猴就说出当前草莓的数量,例如第一颗草莓出来,小猴说“1”, 第二颗出来,说“2”,第三颗出来,说“3”;
(5)最后小猴说:“一共15颗草莓”2秒,程序结束;
请注意:只能使用一个Strawberry角色,不能通过编辑草莓造型的方法实现。
3. 设计思路与实现
(1)角色分析
- 角色:小猴“Monkey”、草莓“Strawberry”
(2)背景分析
- 背景:“Forest”
(3)所用积木块介绍
a. 运动类
- 将角色移动到舞台中央指定的X/Y坐标位置,默认坐标(x:0, y:0)。
- X的范围(-240, 240);Y的范围(-180, 180)。
- 如果增加的是正数,则在原先角色的位置上往右移动对应的数值;如果增加的是负数,则在原先角色的位置上往左移动对应的数值。即实现左右移动的功能。
- 角色的Y坐标不变,X坐标变为设定的值。
- 如果增加的是正数,则在原先角色的位置上往上移动对应的数值;如果增加的是负数,则在原先角色的位置上往下移动对应的数值。即实现上下移动的功能。
b. 外观类
- 在规定的时间内在舞台上显示输入的文字。
- 将角色的大小调整为指定的值。
- 该积木块通常在角色初始化时使用。
- 在舞台中隐藏当前角色。
c. 事件类
- 程序开始积木块。
- 点击舞台区的绿旗,执行以绿旗开始的所有程序脚本。
- 消息事件启动积木块,消息是脚本之间、角色之间、舞台与角色之间沟通的重要通道。
- 当接收到消息时,执行后面的程序指令。
- 广播一个消息,消息可以新建,数量也不限制,不同的消息可以用于不同的场合。
- 广播一个消息,等待消息接收对象的脚本处理完之后再来继续下面的脚本。
d. 控制类
- 循环积木块:一遍一遍地执行包起来的积木序列。
- 重复执行指定的次数后停止,该积木块通常在角色移动等场景中使用。
- 循环积木块:一遍一遍地执行包起来的积木序列。
- 判断条件是否为真,如果尖尖角里面的返回值为真则停止循环。
e. 运算类
- 比较运算,左边大于右边返回true值(真),否则返回false值(假)。
f. 变量类
- 已经建立的变量,我的变量是默认生成的变量。
- 设置变量的值为给定值,通常用于初始化变量。
g. 画笔类
- 清除舞台中画笔绘制的所有图案。
- 将角色对象像印章一样印在屏幕上。
(4)角色、舞台背景设置
a. 角色设置
按照题目要求,删除默认的小猫角色。
在角色区,点击“选择一个角色”菜单,在角色库中选择 小猴“Monkey”、草莓“Strawberry”。
b. 舞台背景设置
在舞台区,点击“选择一个背景”菜单,在背景库中选择“Forest”。
(5)脚本编写
新建变量“row”,用于存储当前绘制Strawberry的行数。
新建变量“sum”,用于存储当前绘制Strawberry的总个数。
a. 角色:Monkey
新建消息“开始”,用于向Strawberry传递开始绘制的消息。
流程描述:
当按下绿棋时:
- 开始:点击绿棋,开始执行代码。
- 小猴说:“今天摘了多少颗草莓呢?数一数吧!”2秒;
- 广播“开始”,通知“Strawberry”开始绘制。
当接收到“说数量”消息时:
- 小猴说已经绘制的草莓数 “sum”,1秒。(每出现一颗草莓,小猴就说出当前草莓的数量,例如第一颗草莓出来,小猴说“1”, 第二颗出来,说“2”,第三颗出来,说“3”;)
当接收到“结束”消息时:
- 小猴说:“一共15颗草莓”2秒,程序结束。
b. 角色:Strawberry
新建消息“说数量”,用于向Monkey传递说出绘制Strawberry总数量的消息。
新建消息“结束”,用于向Monkey传递绘制Strawberry结束的消息。
流程描述:
当按下绿棋时:
- 开始:点击绿棋,开始执行代码。
- 初始化舞台:全部擦除
- 初始化大小:50
- 初始化状态:隐藏
当接收到“开始”消息时:
- 初始化位置:X = -180,Y = 120
- 初始化变量:row = 1,sum = 0
- 重复执行直到 row>5:
- 重复执行 row 次:绘制一行草莓
- 图章
- sum = sum + 1
- 广播“说数量”并等待
- 将X坐标增加50
- X = -180,移动到本行的最左边
- Y = Y - 50,移动到下一行
- row = row + 1
- 重复执行 row 次:绘制一行草莓
- 广播“结束”。
4. 评分标准
(1)背景、角色选择正确;(1分)
(2)草莓按照先后顺序出现,第一行1颗、第二行2颗,第三行3颗,第四行4颗,第五行5颗。(5分)(注意:每行得1分,五行全部正确5分,如果通过编辑草莓的造型来实现以上效果只得1分)
(3)小猴可以按顺序说出草莓的数量。(3分)(注意:出来一颗,说一个数,说完下一颗才出现,说数量和草莓显示顺序乱了只能得1分)
(4)最后说出“一共15颗草莓” 。(1分)
5. 考点分析
四级考试大纲与说明
(一)考核目标
学生对编程软件的较强综合操作能力,考查使用软件进行数据处理的能力,同时对函数和过程的理解和使用进行考查,以及学生对已掌握知识的深度综合应用及思考更优程序方案,另针对参加 4 级考试的学生将进行结合分析和计算的情境考查。
(二)能力目标
通过本级考试的学生,逻辑推理能力很不错,对数据的处理,函数和过程等的理解和使用掌握得很不错,对已学知识的综合应用能力很好,具备一定的程序调试和优化能力。学生对编程软件的进一步综合操作能力,考查新建链表,字符串处理,循环的复杂运用,理解函数的作用范 围,理解多线程的概念,同时考查学生对已掌握知识的深度综合应用, 另针对参加 4 级考试的学生将进行难度更高的逻辑推理能力的考查。
(三)考试标准
1、理解并使用链表、函数和多线程。
- 1)能够新建链表;
- 2)能够完成对链表中数据的插入、删除;
- 3)字符串处理;
- 4)能够自己创建一个有返回值的函数;
- 5)理解函数的作用范围;
- 6)理解多线程的概念;
- 7)循环的复杂运用;
- 8)逻辑,算法过渡。
(四)知识块
- 1. 字符串:字符串操作,加密。
- 2. 函数:不同类型函数的创建,参数的设置,返回值,函数的调用。
- 3. 链表:创建链表,实现数据的增、删、改、查,显示和隐藏,找最值,平均值等。
- 4. 大综合:前面所有知识点的综合使用,考查。
- 5. 程序优化:使用已有知识进行问题的优化。
- 6. 逻辑,算法过渡:分析和计算情境考察,如爬楼梯的方法(递归)。
- 7. 循环的复杂运用:循环的结构,循环的嵌套,递归调用。
备注:
- 为本题涉及到的知识点。
- 为需要掌握,但本题未涉及到的知识点。
(五)题型配比及分值