「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。
我们将有关编程题目的教学视频已经发布到抖音号21252972100,小马老师上,大家可以关注一下。
程序优化
下图第一行有1个正三角形,第二行有2个正三角形,第三行有3个正三角形,每一行的第1个正三角形是上下对齐的。
小刚想绘制这个图形,便编写了如下图所示的程序,请根据要求优化程序。
1. 准备工作
(1)保留舞台为默认的白背景;
(2)保留默认小猫角色,小猫在舞台中间位置。
2. 功能实现
(1)用键盘任意输入一个数字表示行数(考虑到舞台的大小,可以提醒输入的数字在1-9之间),之后小猫会根据输入的行数自动绘制一个多行的图形(如果输入5,那么就绘制5行);
(2)绘制的图形规则为:假设绘制n行,第一行绘制一个三角形,第二行绘制2个三角形…第n行绘制n个正三角形;
(3)每行中任意两个正三角形之间都间隔20个坐标值,任意相邻两行的间隔也是20个坐标值,每行的第1个三角形的x坐标值是一样的,即在同一列;
(4)要用函数绘制正三角形,用循环嵌套以及函数来优化程序。
3. 设计思路与实现
(1)角色分析
- 角色:默认角色小猫
(2)背景分析
- 背景:默认背景(无色)
(3)所用积木块介绍
a. 运动类
- 角色移动指定的步数,正数就是向前,负数就是向后。
- 将角色向左旋转指定的角度。
- 将角色移动到舞台中央指定的X/Y坐标位置,默认坐标(x:0, y:0)。
- X的范围(-240, 240);Y的范围(-180, 180)。
- 将角色朝向某个指定的方向。
- 角色初始朝向右边,90°方向。
b. 外观类
- 在舞台中隐藏当前角色。
c. 事件类
- 程序开始积木块。
- 点击舞台区的绿旗,执行以绿旗开始的所有程序脚本。
d. 控制类
- 循环积木块:一遍一遍地执行包起来的积木序列。
- 重复执行指定的次数后停止,该积木块通常在角色移动等场景中使用。
e. 侦测类
- 角色发出询问,并在舞台下边框弹出对话框,等待用户的输入回答。
- 实时的侦测用户所输入的回答,并存储在“回答”变量中。
f. 变量类
- 建立一个变量,输入变量名称,然后选择适用于所有角色还是适用于当前角色。
- 设置变量的值为给定值,通常用于初始化变量。
- 设置变量的值为自身的值加X。
g. 自制积木类
- 建立一个积木,输入积木名称,然后添加积木的参数,以及选择“运行时是否刷新屏幕”。
h. 画笔类
- 清除舞台中画笔绘制的所有图案。
- 将画笔放置于舞台上(好比我们用笔画画的时候将画笔笔尖放在纸张上准备绘画)。
- 将画笔从舞台上提起来,画完了(好比我们画好图形了,把画笔收起来)。
- 将画笔的颜色设为指定的颜色绘画。
- 将画笔的粗细设定为指定的值。
(4)角色、舞台背景设置
a. 角色设置
默认角色设置,无需修改角色造型。
b. 舞台背景设置
默认舞台背景设置,无需修改舞台背景。
(5)脚本编写
新建变量x,用于存储绘制三角形起点的x坐标。
新建变量y,用于存储绘制三角形起点的y坐标。
新建变量i,用于存储绘制三角形当前的行数。
a. 角色:小猫
函数:画三角形
- 初始化画笔:颜色设置为黑色,粗细设置为3
- 落笔,准备绘制。
- 重复执行3次:绘制正三角形的三条边
- 移动15步
- 左转120度
- 抬笔
流程描述:
- 开始:点击小绿旗,也就是程序启动,就要执行后续的程序指令。
- 询问 请输入行数(1至9) 并等待。
- 初始化变量:x = 0,y = 0,i = 1
- 初始化状态:隐藏
- 初始化方向:面向90°。
- 初始化舞台背景:全部擦除。
- 重复执行 回答 次:绘制 回答 行
- 重复执行 i 次:每次绘制 i 个三角形
- 移动到 x,Y处
- 画三角形
- x += 20,X坐标增加20
- x = 0,y -= 20,i += 1
- 重复执行 i 次:每次绘制 i 个三角形
4. 评分标准
(1)用键盘任意输入一个数字表示行数;(2分)
(2)用函数绘制正三角形;(2分)
(3)能够根据输入的行数正确绘制图形;(3分)
(4)能够将每行的第一个三角形的坐标进行复位;(1分)
(5)使用循环嵌套完成程序。(2分)
5. 考点分析
四级考试大纲与说明
(一)考核目标
学生对编程软件的较强综合操作能力,考查使用软件进行数据处理的能力,同时对函数和过程的理解和使用进行考查,以及学生对已掌握知识的深度综合应用及思考更优程序方案,另针对参加 4 级考试的学生将进行结合分析和计算的情境考查。
(二)能力目标
通过本级考试的学生,逻辑推理能力很不错,对数据的处理,函数和过程等的理解和使用掌握得很不错,对已学知识的综合应用能力很好,具备一定的程序调试和优化能力。学生对编程软件的进一步综合操作能力,考查新建链表,字符串处理,循环的复杂运用,理解函数的作用范 围,理解多线程的概念,同时考查学生对已掌握知识的深度综合应用, 另针对参加 4 级考试的学生将进行难度更高的逻辑推理能力的考查。
(三)考试标准
1、理解并使用链表、函数和多线程。
- 1)能够新建链表;
- 2)能够完成对链表中数据的插入、删除;
- 3)字符串处理;
- 4)能够自己创建一个有返回值的函数;
- 5)理解函数的作用范围;
- 6)理解多线程的概念;
- 7)循环的复杂运用;
- 8)逻辑,算法过渡。
(四)知识块
- 1. 字符串:字符串操作,加密
- 2. 函数:不同类型函数的创建,参数的设置,返回值,函数的调用
- 3. 链表:创建链表,实现数据的增、删、改、查,显示和隐藏,找最值,平均值等
- 4. 大综合:前面所有知识点的综合使用,考查
- 5. 程序优化:使用已有知识进行问题的优化
- 6. 逻辑,算法过渡:分析和计算情境考察,如爬楼梯的方法(递归)
- 7. 循环的复杂运用:循环的结构,循环的嵌套,递归调用
备注:
- 为本题涉及到的知识点。
- 为需要掌握,但本题未涉及到的知识点。
(五)题型配比及分值