杨校老师课堂之C++备战全国青少年科技教育成果展示大赛(一)

备战青科赛

赛事描述

主题:“科技强国・未来有我”。 目标: 坚持立德树人根本任务,培养具有家国情怀、崇尚科学的新时代好少年。 宗旨: 彰显公益普惠风尚,助力全面实施素质教育,为建设高质量教育体系贡献力量。

比赛内容


知识储备 (一)

任务1 绘制正方形

代码语言:javascript代码运行次数:0运行复制
int main(){
    // 让画笔向前移动100个单位距离
    pen.fd(100); 
    // 让画笔向右旋转90度
    pen.rt(90); 
    // 让画笔向前移动200个单位距离
    pen.fd(200); 
    // 让画笔向右旋转90度
    pen.rt(90); 
    // 让画笔向前移动100个单位距离
    pen.fd(100); 
    // 让画笔向右旋转90度
    pen.rt(90); 
    // 让画笔向前移动200个单位距离
    pen.fd(200); 
    // 让画笔向右旋转90度
    pen.rt(90);   
    // 程序正常结束,返回值0表示程序执行成功
    return 0;
}

任务2 绘制帽子

代码语言:javascript代码运行次数:0运行复制
int main(){
    // 控制画笔向右旋转90度
    pen.rt(90); 
    // 控制画笔向前移动100个单位距离
    pen.fd(100); 
    // 控制画笔向左旋转90度
    pen.lt(90); 
    // 控制画笔向前移动100个单位距离
    pen.fd(100); 
    // 控制画笔向右旋转90度
    pen.rt(90); 
    // 控制画笔向前移动200个单位距离
    pen.fd(200); 
    // 控制画笔向右旋转90度
    pen.rt(90); 
    // 控制画笔向前移动100个单位距离
    pen.fd(100); 
    // 控制画笔向左旋转90度
    pen.lt(90); 
    // 控制画笔向前移动100个单位距离
    pen.fd(100); 
    // 控制画笔向后移动300个单位距离
    pen.bk(300);   
    // 程序正常结束,返回值0表示程序执行成功
    return 0;
}

任务3 绘制万花筒

代码语言:javascript代码运行次数:0运行复制
int main() {
    // 隐藏画笔,这样在绘图过程中不会显示画笔的样式
    p.hide();

    // 设置画笔的大小为100,设置画笔颜色为2(颜色值可能根据具体绘图库的定义来确定)
    // 并将画笔移动到坐标 (0, 0) 的位置
    p.size(100);
    p.color(2);
    p.moveTo(0, 0);

    // 绘制一个边长为300的正方形
    p.fd(300);  // 画笔向前移动300个单位
    p.rt(90);   // 画笔向右旋转90度
    p.fd(300);  // 画笔向前移动300个单位
    p.rt(90);   // 画笔向右旋转90度
    p.fd(300);  // 画笔向前移动300个单位
    p.rt(90);   // 画笔向右旋转90度
    p.fd(300);  // 画笔向前移动300个单位
    p.rt(90);   // 画笔向右旋转90度

    // 再次设置画笔的大小为100,设置画笔颜色为3
    // 并将画笔移动到坐标 (50, 50) 的位置
    p.size(100);
    p.color(3);
    p.moveTo(50, 50);

    // 绘制一个边长为200的正方形
    p.fd(200);  // 画笔向前移动200个单位
    p.rt(90);   // 画笔向右旋转90度
    p.fd(200);  // 画笔向前移动200个单位
    p.rt(90);   // 画笔向右旋转90度
    p.fd(200);  // 画笔向前移动200个单位
    p.rt(90);   // 画笔向右旋转90度
    p.fd(200);  // 画笔向前移动200个单位
    p.rt(90);   // 画笔向右旋转90度

    // 又一次设置画笔的大小为100,设置画笔颜色为4
    // 并将画笔移动到坐标 (100, 100) 的位置
    p.size(100);
    p.color(4);
    p.moveTo(100, 100);

    // 绘制一个边长为100的正方形
    p.fd(100);  // 画笔向前移动100个单位
    p.rt(90);   // 画笔向右旋转90度
    p.fd(100);  // 画笔向前移动100个单位
    p.rt(90);   // 画笔向右旋转90度
    p.fd(100);  // 画笔向前移动100个单位
    p.rt(90);   // 画笔向右旋转90度
    p.fd(100);  // 画笔向前移动100个单位
    p.rt(90);   // 画笔向右旋转90度

    // 程序正常结束,返回值0表示程序执行成功
    return 0;
}

知识储备(二)

任务1 绘制双螺旋

代码语言:javascript代码运行次数:0运行复制
int main() {
    // 将画笔移动到坐标为 (-200, 0) 的位置,确定绘图的起始点
    pen.moveTo(-200, 0);

    // 开始第一个循环,循环5次,用于绘制特定形状的一部分
    for (int i = 0; i < 5; i++) {
        // 画笔向前移动50个单位距离,然后向右旋转90度
        pen.fd(50).rt(90);
        // 画笔继续向前移动50个单位距离,然后向左旋转90度
        pen.fd(50).lt(90);
    }

    // 画笔向左旋转180度,改变画笔的方向
    pen.lt(180);

    // 开始第二个循环,同样循环5次,用于绘制与前面形状对称的另一部分
    for (int i = 0; i < 5; i++) {
        // 画笔向前移动50个单位距离,然后向右旋转90度
        pen.fd(50).rt(90);
        // 画笔继续向前移动50个单位距离,然后向左旋转90度
        pen.fd(50).lt(90);
    }

    // 程序正常结束,返回值0表示程序执行成功
    return 0;
}

任务2 绘制计时器

代码语言:javascript代码运行次数:0运行复制
int main() {
    // 调用 pen 对象的 rr 方法,传入参数 200、100 和 14
    //  rr 方法是绘制实心矩形操作
    pen.rr(200, 100, 14);

    // 再次调用 pen 对象的 rr 方法,传入参数 160、80 和 0
    // 同样是进行绘制操作,可能绘制的图形与上面的类似,但由于参数不同,图形会有差异
    pen.rr(160, 80, 0);

    // 开始一个循环,循环变量 i 从 0 开始,到 18 结束(包含 18)
    for(int i = 0; i <= 18; i++) {
        // 在每次循环中,调用 pen 对象的 rr 方法,传入参数 159、79 和 3
        // 持续绘制特定图形,由于参数相同,每次绘制的图形相同
        pen.rr(159, 79, 3);

        // 调用 pen 对象的 text 方法,并传入当前的循环变量 i
        // 推测 text 方法可能是在绘制的图形上显示文本,这里显示当前循环的序号
        pen.text(i);

        // 调用 wait 函数,传入参数 1
        // 推测 wait 函数是用于暂停程序执行一段时间,这里暂停 1 个时间单位(具体时间单位根据函数实现而定)
        wait(1);
    }

    // 程序正常结束,返回值 0 表示程序执行成功
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-05-02,如有侵权请联系 cloudcommunity@tencent 删除科技c++教育程序对象