当前位置: 首页 > 编程日记 > 正文

中国电子学会图形化四级编程题:程序优化

「青少年编程竞赛交流群」已成立(适合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. 角色:小猫

函数:画三角形

  1. 初始化画笔:颜色设置为黑色,粗细设置为3
  2. 落笔,准备绘制。
  3. 重复执行3次:绘制正三角形的三条边
    • 移动15步
    • 左转120度
  4. 抬笔

流程描述:

  1. 开始:点击小绿旗,也就是程序启动,就要执行后续的程序指令。
  2. 询问 请输入行数(1至9) 并等待。
  3. 初始化变量:x = 0,y = 0,i = 1
  4. 初始化状态:隐藏
  5. 初始化方向:面向90°。
  6. 初始化舞台背景:全部擦除。
  7. 重复执行 回答 次:绘制 回答 行
    • 重复执行 i 次:每次绘制 i 个三角形
      • 移动到 x,Y处
      • 画三角形
      • x += 20,X坐标增加20
    • x = 0,y -= 20,i += 1

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. 循环的复杂运用:循环的结构,循环的嵌套,递归调用

备注:

  • 为本题涉及到的知识点。
  • 为需要掌握,但本题未涉及到的知识点。

(五)题型配比及分值

相关文章:

当代艺术遇上虚拟现实:幻境视界打造基业VR美术馆

VR展览也许并不少,但专业的艺术展却难得一见。幻境世界周志强希望能借助VR技术,实现“一地办展、全球同展、永不闭馆”,更好地传播当代艺术。 从米开朗琪罗到库尔贝,再到雷诺阿,大师们不断找到新的艺术语言来阐释人体…

python二叉搜索树建立_700. 二叉搜索树的搜索(Python)

题目难度:★☆☆☆☆类型:二叉树给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。例如,给定二叉搜索树:4/ \2 7/ \1 3和值: 2你应该返回…

CF484E Sign on Fence

题意 给定一个长度为n的数列,有m次询问,询问形如l r k 要你在区间[l,r]内选一个长度为k的区间,求区间最小数的最大值 Sol 二分答案 怎么判定,每种数字开一棵线段树 某个位置上的数大于等于它为1 那么就是求区间最大的1的序列长度大…

【组队学习】【30期】吃瓜教程——西瓜书+南瓜书

吃瓜教程——西瓜书南瓜书 航路开辟者:谢文睿、秦州领航员:邱振波航海士:谢文睿、秦州 基本信息 开源内容:https://github.com/datawhalechina/pumpkin-bookB 站视频:https://www.bilibili.com/video/BV1Mh411e7VU内…

如何破解压缩文件密码-省时省力的方法

压缩文件破解工具下载地址:http://www.cnblogs.com/spring_wang/archive/2013/06/14/3135163.html 应该很多人都碰到过RAR加密、解密的问题吧。简单给大家介绍下如何用工具来破解RAR密码!我们所利用的工具,就是“ARPR”、相信有些人肯定知道。…

学完javase和mysql_Java基础学完接下来应该学什么呢?

谢谢邀请!Java基础部分涵盖了类、对象、属性和方法四大概念,以及封装、继承、多态的理解及使用。Java基础部分是Java学习过程中相对来说比较难的部分,Java语言属于开头难,之后越学越简单的语言。基础部分要清晰Java面向对象的开发…

Linux文件分割与合并:splitcat(转载)

转自:http://os.51cto.com/art/201104/255359.htm Linux下文件分割可以通过split命令来实现,而用cat进行文件合并。而分割可以指定按行数分割和安大小分割两种模式。Linux下文件合并可以通过cat命令来实现,非常简单。 在Linux下用split进行文…

【组队学习】【30期】李宏毅机器学习(含深度学习)

李宏毅机器学习(含深度学习) 航路开辟者:王茂霖、陈安东,刘峥嵘,李玲领航员:初晓宇航海士:王茂霖 基本信息 开源内容:https://github.com/datawhalechina/leeml-notes开源内容&am…

mac下用Dosbox搭建dos下的汇编环境

安装Dosbox,下载地址 pan.baidu.com/s/1qZfgGc0 安装汇编编译器,下载masm pan.baidu.com/s/1c4k5fCc,在个人目录下新建 ~/Dosbox目录,把masm拷贝到Dosbox目录中 设置Dosbox autoexec, 编辑~/Library/Preferences/DOSBox\ 0.74\ …

java线程安全的set_Java并发编程之set集合的线程安全类你知道吗

Java并发编程之-set集合的线程安全类Java中set集合怎么保证线程安全,这种方式你知道吗?在Java中set集合是本篇是《凯哥(凯哥并发编程学习》系列之《并发集合系列》教程的第二篇:本文主要内容:Set集合子类底层分别是什么&#xff1…

亮剑.NET的系列文章之.NET实现三层架构(三)

最近一直在学习三层架构,前些天同样也写了一篇同样的博客,今天主要是通过一个登录的实例给大家讲解每部分的作用和相应代码的实现。先将实现三层架构的UML图给大家,帮助大家更好的理解三层。1. UI作用 (1) 向用户展示特定业务数据…

【组队学习】【30期】6. 树模型与集成学习

树模型与集成学习 航路开辟者:耿远昊领航员:姜萌航海士:耿远昊 基本信息 开源内容:https://github.com/datawhalechina/machine-learning-toy-code内容属性:打磨课程内容说明:本课程将对机器学习中的集成…

mysql整理碎片和显示语句错误

2019独角兽企业重金招聘Python工程师标准>>> 1、myisam存储引擎清理碎片方法 OPTIMIZE TABLE table_name 2、innodb存储引擎清理碎片方法 ALTER TABLE tablename ENGINEInnoDB 3、查看表碎片的方法 select ROW_FORMAT,TABLE_ROWS…

java 查询 代码_java使用es查询的示例代码

众所周知,elasticsearch简称es,它是基于基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索…

【转】解密“设计模式”

有些人问我,你说学习操作系统的最好办法是学习程序设计。那我们是不是应该学习一些“设计模式”(design patterns)。这是一个我很早就有定论,而且经过实践检验的问题,所以想在这里做一个总结。 总的来说,如…

Qt Installer Framework实战

Qt Installer Framework是Qt发布的安装程序支持框架,只需要简单的配置就可以生成安装文件,同时可以通过javascript脚本来定制安装过程。 目录结构 config packages data meta 配置文件 config/config.xml packages/[product]/meta/package.xml packages/…

【NCEPU】徐韬:街景字符编码识别比赛

徐韬是华北电力大学数理系大四的学生,Datawhale成员/Dreamtech成员,参加了多期Datawhale的组队学习,也在天池/CCF/讯飞等比赛中取得了不错的成绩,现保送大连理工大学深造。 这篇图文是他在线下组队学习时,为大家分享自…

java 程序启动界面_程序启动界面java代码

最近写了个程序启动界面,分享一下import javax.swing.*;import java.awt.*;import java.net.*;//Download by http://www.codefans.net//程序启动界面/*dkplus专业搜集和编写实用电脑软件教程,*搜集各种软件资源和计算机周边,独立制作视频和p…

中国电子学会图形化四级编程题:食堂取餐

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 我们将有关编程题目的教学视频已经发布到抖音号21252972100,小马老…

获取app传入的json值处理

$getDatas $_POST; if(empty($getDatas)) $getDatas file_get_contents("php://input"); $getDatas json_decode($getDatas,true); 转载于:https://www.cnblogs.com/wjw-/p/8496855.html

java虚拟机栈帧_Java虚拟机,运行时栈帧结构

业余生活要有意义,不要越轨。——华盛顿引导语“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件…

深入浅出Pytorch:01 课程大纲与PyTorch简介

深入浅出Pytorch 01 课程大纲与PyTorch简介 内容属性:深度学习(实践)专题航路开辟者:李嘉骐、牛志康、刘洋、陈安东领航员:叶志雄航海士:李嘉骐、牛志康、刘洋、陈安东开源内容:https://githu…

用C写有面向对象特点的程序

比如在一个项目中,有大量的数据结构,他们都是双向链表,但又想共用一套对链表的操作算法,这怎么做到呢,C中又没有C中的继承,不然我可以继承一父(类中只有两个指针,一个向前一个向后&a…

[置顶] 单键模式的C++描述

设计模式-单键(Signelton):其实单键的设计模式说来很简单,说的直白一点就是程序运行过程中保证只有一个实例在运行而已。在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑…

下java7 64有什么用_Win 7 64位系统安装java 8,看完就明白了

在 Windows 7 的 64 位系统中安装 jdk 8工具/材料Windows 7 64 位系统JDK 8 64位版本方法/步骤1 下载JDK 8安装文件011.1 访问JDK下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html点击 JDK Download 按钮,进入JDK下载页。021.2 下载JDK…

微软BI 之SSAS 系列 - 在 SQL Server 2012 下查看 SSAS 分析服务的模型以及几个模型的简单介绍...

在SSDT中部署一个 SSAS 项目到本地服务器上出现错误。 You cannot deploy the model because the localhost deployment server is not running in multidimensional mode。 错误原因是因为我在本地安装 SQL Server 2012 的时候只选择安装了 Tabular Mode,而这个Dem…

java遍历的优化

说明&#xff1a;这是在面试中面试官出的题。虽然是常见的优化问题&#xff0c;但这种经验的确很有用。感慨之余&#xff0c;分享出来&#xff0c;以此共勉。 场景&#xff1a;现有List<PersonA>,List<PersonB>,PersonA 的属性是 String类型的身份证号&#xff0c;…

深入浅出Pytorch:02 PyTorch基础知识

深入浅出Pytorch 02 PyTorch基础知识 内容属性&#xff1a;深度学习&#xff08;实践&#xff09;专题航路开辟者&#xff1a;李嘉骐、牛志康、刘洋、陈安东领航员&#xff1a;叶志雄航海士&#xff1a;李嘉骐、牛志康、刘洋、陈安东开源内容&#xff1a;https://github.com/…

java for 两个条件_for循环条件里定义2个变量为什么会报错

public class HelloWorld {//完成 main 方法public static void main(String[] args) {int scores[]{89,-23,64,91,119,52,73};HelloWorld hellonew HelloWorld();hello.sortScore(scores);}//定义方法完成成绩排序并输出前三名的功能public void sortScore(int[] scores){Arra…

Qt4在linux下的安装

1、下载SDK ftp://ftp.informatik.hu-berlin.de/pub/Mirrors/ftp.troll.no/QT/qtsdk/qt-sdk-linux-x86-opensource-2010.05.1.bin 2、修改文件权限 想要安装SDK&#xff0c;需要拥有对其读写和执行的权限。可以通过【右键】->【属性】->【权限】进行设置。 也可以通过命…