走进 GOC 的编程世界

📖 第1课: 网上科技展

—-欣赏GoC编程作品

o,oo 命令学习

GOC基础指令 - 图1

这趟旅程,椰小程将带你从“网上科技展”开始,饱览无人驾驶汽车、氚气灯管、交通安全警示系统、无叶风扇、无人机、智能机器人、全息投影、自动感应、高铁列车、环形空间站等各式各样的高科技产品,从中学会前进、转弯、变色、显示图片、输入数据、判断、重复等编程技能,用GoC 中神奇的画笔创作出心仪的科技产品,体验一番“画笔生辉,科技强国”的学习乐趣。

WEB GOC 介绍

  • 单击主菜单中的“命令”按钮便能打开GoC的命令板,在编程区中将光标移到要插入命令的位置,再单击命令板上的命令就可插入该命令,最后填补命令所需要的参数即可。
  • 单击“文件”菜单里的“帮助”项,便能打开帮助页面了解命令的详细说明。

GoC命令书写说明:

  • (a)直接指挥笔动作的命令通常以“pen.”(可简写为“p.”)开头。
  • (b)除特殊情形外,命令名称中的字母一般用小写。
  • (c)每行命令的末尾要加分号“;”,表示该行命令的结束。
  • (d)每行命令输入后,要按回车键发送。

🔆指令学习

空心圆命令:p.o(半径,颜色)

GOC基础指令 - 图2

实心圆命令:p.oo(半径,颜色)

GOC基础指令 - 图3

参数说明:r(圆的半径),c(圆的颜色)

GOC基础指令 - 图4

半径是指圆的中心到圆周的直线段长度,通常用字母r表示(radius英 [ˈreɪdiəs] 半径长度)。

从圆的中心到圆周上任意一点的距离都是相等的。

课堂练习

绘制同心圆

GOC基础指令 - 图5

椰小程要画红绿黄3个不同半径的同心圆,要求红色(1号)的是最大半径圆,绿色(3号)的是第2大半径的圆,黄色(5号)的是最小半径的圆。但输入是的的3个数可能并没有从大到小。

比如输入的3个半径分别是50,30,40:

GOC基础指令 - 图6

这3个圆一定要按照正确的次序才能画出正确的图形。比如你最后画最大的圆形,就只能看见一个红色的大圆。 请你帮小C编程解决这个问题。

  1. int main()
  2. {
  3. pen.oo(50,1);
  4. pen.oo(40,3);
  5. pen.oo(30,13);
  6. return 0;
  7. }

画圆环

题目描述

输入2个不同的正整数a和b,其中较大的数作为外半径,较小的作为内半径,画一个红色(1号色)的圆环。

输入格式

一行2个不同的正整数a,b:范围在[10..100]。

输入样例 70 40 ,同学们可以试试其它数值 GOC基础指令 - 图7

总结

一、GoC是什么?

GoC是Go to C++!

GoC采用编程画图形的方法,快速入门C++!

WebGoC是学习 GoC的工具,它通过编程区绘图,绘图区显示图形的方法,形象直观的让学生了解C语言的三大基本结构:顺序循环选择

二、画圆命令o/oo

GOC基础指令 - 图8

📖 第2课:无人驾驶汽车

—-前进、后退与转弯

fd、bk、rt、lt命令学习

分析行驶路线

GOC基础指令 - 图9

椰小程和小伙伴的家及科技馆的位置如图路线所示,要接齐所有人,可以按下步骤行驶:

  • (1)第一步(从起点到椰小程家):前进100。
  • (2)第二步(从椰小程家到同学A家):右转90度,________.
  • (3)第三步(从同学A家到同学B家): ________ ,前进200。
  • (4)第四步(从同学B家到科技馆):后退50。

用“命令”指挥无人驾驶汽车

只要我们输入正确的命令,就能指挥无人驾驶汽车。

进入教学网站第2课的“开汽车—指挥汽车”页面,单击“演示”按钮行程序,输入正确的命令指挥无人驾驶汽车。

🔆指令学习

前进命令:p.fd(长度);

作用:让画笔按指定长度前进。
示例:“p.fd(100);”是前进100。

【视频:fd() 指令 :forword 前进】

后退命令:p.bk(长度);

作用:让画笔按指定长度后退。
示例:“p.bk(50);”是后退50。

【视频:bk() 指令 :back 后退】

右转命令:p.rt(角度);

作用:让画笔按指定的角度右转改变方向。
示例:“p.rt(90);”是右转90度。

【视频: rt() 指令 :right 右转】

左转命令:p.lt(角度);

作用:让画笔按指定的角度左转改变方向。
示例:“p.lt(90);”是左转90度。

【视频:lt() 指令 :left 左转】

GOC基础指令 - 图10

汽车在“行驶”中会画出直线,全靠GoC中有一支神奇的画笔✏️.在GoC中按命令要求画出各种各样的图案来。

  1. int main(){
  2. p.fd(100);
  3. p.rt(90);
  4. p.fd(400);
  5. p.lt(90);
  6. p.fd(200);
  7. p.bk(50);
  8. }

课堂练习

爱心

GOC基础指令 - 图11

爱心 尽寸自自定

  1. int main()
  2. {
  3. p.rr(100,100);
  4. p.fd(50).oo(50);
  5. p.bk(50).rt(90);
  6. p.fd(50).oo(50);
  7. return 0;
  8. }

尺(che)

题目描述

请画出下面形状的尺。

GOC基础指令 - 图12

说明:横的每段长度是10; 高度有2种:高的是10,矮的是5。

  1. // 自行编写实现

轮廓(扩展练习)

题目描述

学校准备在颁奖会把这次比赛的前10名的成绩用图形表示出来。小C记得去年是用一个直方图的形式表示的,就是以输入的次序把每个成绩的分数作为高,画一个宽度为20的矩形。 假如输入的10个成绩是:100 90 70 60 80 95 120 105 95 71 ,绘制的图形如下。

GOC基础指令 - 图13

这个图形是做在一个展板上的,经过一年的风吹雨淋,展板上的线条都褪色了,只能看出展板的轮廓。请你使用GoC编程,画出展板的轮廓。具体形状参见输入输出样例。

输入格式 一行10个空格分隔开的正整数:分别表示10名同学的比赛成绩。

输出格式 相应的展板轮廓。

输入/输出例子1

输入:

100 90 70 60 80 95 120 105 95 71

输出:

GOC基础指令 - 图14

输入/输出例子2

输入:

50 30 20 90 80 100 60 70 110 120

输出:

GOC基础指令 - 图15

  1. // 自行编写实现

总结

GoC的四个基本命令前进fd、后退bk、右转rt、左转lt 。

GOC基础指令 - 图16

📖 第3课:氚气灯管

—-设置颜色和粗细

c、size为笔选颜色和粗细命令学习

进入科技馆,椰小程随即被一排色彩斑斓的氚(chuān)气灯管深深吸引了。氚气灯管不需要通电和补充能量就能自动发光二十年以上,在深水、矿井等各种恶劣的环境下都能正常发光。

GOC基础指令 - 图17

怎样用GoC中的画笔画出图3-1中黄色的“氚气灯管”呢?

经过认真观察和思考,椰小程发现如果能设置画笔的颜色和粗细,再使用p.fd()命令就能画出以上的“氚气灯管”了。

一、设置氚气灯管的颜色

五颜六色的氚气灯管让椰小程流连忘返,如何设置这些漂亮的颜色呢?

  1. int main(){
  2. p.fd(360);
  3. }

本程序画出了一根蓝色的灯管,如果要画黄色的氚气灯管,怎么改变画笔的颜色呢?

  1. int main(){
  2. // 设置画笔颜色为 5 号黄色
  3. p.c(5);
  4. p.fd(360);
  5. }

为了方便指挥画笔,可以将多个命令按一定的顺序和格式编写成一个程序,在需要的时候运行它。

一个完整的GoC程序一般包括以下几部分:

  1. 注释部分:以“//”开头,是为方便人们阅读程序而添加的说明,不是程序必需的内容,计算机也不会执行。
  2. 主函数“int main()”:每个程序必须有一个主函数。
  3. 主函数体:跟在主函数名后,用一对大括号{ }括起来,里面按一定的顺序和格式编写各种命令。在程序中书写的每一行命令,也可称为语句。
  4. 返回语句“return 0;”:是主函数体的最后一个语句,表示主函数到此结束。

🔆指令学习

设置颜色命令:p.c(颜色编号)

作用:按指定的颜色编号设置画笔颜色。
示例:“p.c(1);”将画笔的颜色设置为红色(1号)。
GoC中16种颜色对应的编号如下: GOC基础指令 - 图18

【视频:c() 指令 :color 前进】

连发命令:p.命令1.命令2.·命令n

作用:把多个画笔命令连接起来书写,按从左到右的顺序执行各个命令。在书写连发命令时,只需要一个p.开头,随后的命令均省略p.

示例p.c(5).bk(46):先设置5号色,然后后退 46步以该颜色画线。

设置氚气灯管的粗细

椰小程很快就画出了一根彩色氚气灯管,但是这根灯管太细了,用什么命可以让它变粗呢?

  1. int main(){
  2. p.size(30);
  3. p.c(5);
  4. p.fd(360);
  5. p.hide();
  6. return 0;
  7. }

课堂练习

彩色旗帜

题目描述

请编写程序,根据图形中红色数字指定的长度,画出下面图形。

GOC基础指令 - 图19

🔆指令学习

设置画笔粗细命令:p.size(数值);

作用:按指定的数值设置画笔的粗细,数值越大,画出的线条就越粗。
示例:“p.size(10).fd(100):”能画出粗为10 长度为100的线条。

【视频:size() 指令: size 粗细】

隐藏画笔命令:p.hide();

作用:让画笔隐身,以免遮挡所画的图形。“hide()”的括号里不用写参数。
示例:“p.c(6).size(5).fd(72).hide();”先画出一条6号色、粗为5、长为72的线,然后隐藏画笔。

尝试把“p.size(30);”命令中“30”为不同的数并运行程序,观察图形的变化。

把命令”p.hide()”放在”p.fd(360)”之前,再执行程序,观察执行效果有什么不同

课堂练习

小丑的帽子

题目描述

通过控制笔的粗细、交替的颜色变化,我们还可以绘制一顶小丑的帽子。 GOC基础指令 - 图20

  1. //通过控制笔的粗细、交替的颜色变化,我们还可以绘制一顶小丑的帽子。
  2. int main(){
  3. p.text("小丑的帽子",0,30,0,0,300);//显示标题,小丑的帽子
  4. p.speed(1.5);//设置速度1.5较慢
  5. p.c(1).size(300).fd(23);
  6. p.c(12).size(270).fd(23);
  7. p.c(11).size(240).fd(23);
  8. p.c(13).size(210).fd(23);
  9. p.c(12).size(180).fd(23);
  10. p.c(14).size(150).fd(23);
  11. p.c(4).size(120).fd(23);
  12. p.c(2).size(90).fd(28);
  13. p.c(12).size(80).fd(3);
  14. p.hide();//隐藏笔头
  15. return 0;
  16. }

总结

本节了解了编程的工具:WebGoC,学习了设置颜色命令c,设置画笔粗细命令size,矩形与实心矩形r,rr。

一、设置笔色命令pen.c(color)

颜色代码:0-15

GOC基础指令 - 图21

画笔默认颜色是蓝色(颜色代码:2)

可使用pen.c(颜色代码)的方式设置想要的颜色。

设置颜色后,笔将以所设置的颜色绘图,直到下一次笔色命令改变颜色。

二、设置画笔宽度:pen.size(width)

执行设置画笔宽度命令之后,画笔将以此宽度画图。

笔宽和线条示例:

GOC基础指令 - 图22

三、命令中涉及的英文单词:

c—color 英[ˈkʌlə(r)] 中文释义:颜色;彩色。

size英[saɪz] 中文释义:大小;尺码。

  1. - r--rectangle 英[ˈrektæŋɡl] 中文释义:长方形;矩形。
  2. - w--width英[wɪdθ] 中文释义:宽度;广度。
  3. - h--height英[haɪt] 中文释义:高;高度;身高。

课堂练习

金箍棒

GOC基础指令 - 图23

📖 第4课 交通安全警示系统

—-画矩形与抬笔、落笔

r、rr、up、down命令学习

在智能交通展厅中,椰小程看见一套新型示系统”,它由“语音提示桩”和“人脸识别显示屏”等多个部分组成,有LED提示、语音提醒、拍照、人脸识别等功能.能及时警示行人,避免交通违规。

GOC基础指令 - 图24

画语音提示桩

  1. // 程序 4-1
  2. int main()
  3. {
  4. p.rr(100,20,13);
  5. p.fd(160);
  6. p.rr(80,300,13);
  7. p.rr(60,180,0);
  8. return 0;
  9. }

🔆指令学习

实心矩形命令:p.rr(宽,高,颜色)

作用:以笔的位置为中心,按给定的宽、高和颜色画一个实心矩形。若不写颜色参数,则以画笔当前颜色画矩形。
示例:“p.rr(100,200.1):”将画一个宽100、高200的红色实心矩形。

空心矩形命令:p.r(宽,高,颜色);

作用:以笔的位置为中心,按给定的宽、高和颜色画一个空心矩形。 示例:“p.r(80,50,3);”将画一个宽80、高50的绿色空心矩形。

画“安全警示线”

“红灯停、绿灯行”、人们在等待交通指示灯切换的时候,应该站在安全区域内等待。请参考图4-1编程效果图画出“安全警示线”。

  1. // 程序4-2
  2. int main()
  3. {
  4. p.c(13).size(8);
  5. p.fd(100);
  6. p.up().fd(50).down();
  7. p.fd(100);
  8. return 0;
  9. }

🔆指令学习

抬笔命令:p.up();

作用:抬笔使画笔移动时不画出直线。本命令不需要参数。抬笔只影响fd、bk命令,对画矩形、圆、椭圆等命令没有影响。
示例:“p.rt(90).fd(20).up().fd(80);”将画出一 ✏️

落笔命令:p.down();

作用:落下画笔以便移动时画出直线。本命令不需要参数。在GoC中,画笔初始状态是落笔状态。
示例:“p.rt(90).fd(20).up().fd(10).down().fd(80);”将画出— — — ✏️

课堂练习

场记板

题目描述 椰小程同学和家人去影视城游玩,刚好看到一个剧组在拍电影,其中有一位工作人员在负责打板,同时大喊:”Action”,小C觉得很有趣,才知道原来那块板叫场记板,请你帮忙使用GoC编程绘制出来。

GOC基础指令 - 图25

(注意:两块板之间的夹角为45度)

乐谱

题目描述

输入n个音符数值,画n个音符。每个音符用宽度是10,颜色由输入的数值确定,高度是颜色号的30倍。

例如输入:3 2 1 2 画出下面图形

GOC基础指令 - 图26

说明:4个矩形宽度10,颜色分别是3、2、1、2,高度分别是90、60、30、60。

相邻矩形的中心在一条直线上,距离15。

总结

一、矩形命令:pen.r(w,h,c)/实心矩形命令:pen.rr(w,h,c)

接收画矩形命令之后,将以画笔位置为中心,画矩形。

参数: width 宽度; height 高度; color 颜色

示例:pen.r(200,300,7);(画宽度200,高度300,颜色代码为7的矩形)

GOC基础指令 - 图27

示例:pen.rr(300,100,10);(画宽度300,高度100,颜色代码为10的实心矩形)

GOC基础指令 - 图28

提示:画矩形命令也可以写作: pen.r(w,h) 或 pen.rr(w,h)

当矩形命令的颜色参数缺少时,以当前笔色画矩形。

二、抬笔命令up()

GOC基础指令 - 图29

说明:up()是无参数命令,括号中没有参数;执行抬笔命令up(),画笔将抬起,移动时不会画出直线。

使用up()命令,来移动画笔到合适的位置画图。

三、落笔命令down()

GOC基础指令 - 图30

说明:down()是无参数命令,括号中没有参数;画笔在抬笔状态下,执行落笔命令down(),画笔将再次放下,移动时重新可以画出直线。

down()命令,用来解除画笔抬笔状态,重新可以画出直线。

注意:

1、Up()与down()命令配合,可以移动画笔到合适的位置画图。

2、画笔在抬笔状态下,不可以画直线,但不影响其他图形mlr/rr/o/oo等命令的执行。

📖 第5课 无叶风扇

——画实心与空心椭圆

e、ee命令学习

正在用心体验科技产品的椰小程,忽然感受到一阵阵清凉之风。原来是科技馆安装了很多无叶风扇,这些风扇能360度旋转吹风,而且能智能感应室温调节风力。

GOC基础指令 - 图31

画出出风框

  1. // 程序 5-2
  2. int main()
  3. {
  4. p.size(30);
  5. p.e(80,160,10);
  6. p.up().bk(220);
  7. p.rr(100,150,10);
  8. p.ee(10,10,1);
  9. return 0;
  10. }

🔆指令学习

实心椭圆命令:p.ee(横半径,纵半径,颜色):

作用:以笔的位置为中心,按指定的横半径、纵半径和颜色绘制一个实心椭圆。
示例:“p.ee(80,50,1);”将画出一个横半径80、纵半径50的红色实心椭圆。

空心椭圆命令:p.e(横半径,纵半径,颜色);

作用:以笔的位置为中心,按指定的横半径、纵半径和颜色绘制一个空心椭圆。
示例:“p.e(120,70.1);”将画出一个横半径120、纵半径70的红色空心椭圆。

程序中 p.ee(10,10,1); 将横半径、纵半径 设置为相同的数值来绘制圆形,我们也可以直接使用 o / oo 来实现。

GOC基础指令 - 图32

总结

📖 第6课 无人机

—-计算旋转角

角度大小学习

在航空展厅中,椰小程看到多种“萌萌哒”无人机,有的像“章鱼”,有的像“小蜜蜂”,还有的像微缩型的直升机。无人机不仅能高空摄影,还能用于农业植保、物流配送、电力巡检、环境监测和抢险救援等方面。

GOC基础指令 - 图33

旋转角度分析

GOC基础指令 - 图34

  1. // 程序 6-3
  2. int main(){
  3. p.hide();
  4. p.rt(45);
  5. p.fd(100).e(30,30,1).ee(20,3).bk(100);
  6. p.rt(90);
  7. p.fd(100).e(30,30,1).ee(20,3).bk(100);
  8. p.rt(90);
  9. p.fd(100).e(30,30,1).ee(20,3).bk(100);
  10. p.rt(90);
  11. p.fd(100).e(30,30,1).ee(20,3).bk(100);
  12. p.rt(90);
  13. p.rr(30,50).ee(10,40,1);
  14. return 0;
  15. }

🔆指令学习

代码复制方法:

使用快捷键Ctrl+C(复制)和Ctrl+V(粘贴),实现对相同代码的复制。
示例:在编辑程序6-3时 可以输入以下两行语句
p.fd(100).e(30,30,1).ee(20,3).bk(100);
p.rt(90);
然后再复制1次并先后粘贴3次,完成画4根机轴的代码。

实心椭圆命令的特殊形式:p.ee(横半径,纵半径);

作用:以画笔的当前颜色画椭圆。空心椭圆命令也有类似的特殊形式。
示例:“ee(20,3)”表示以画笔的当前颜色画横半径20、纵半径3的椭圆。

课堂练习

炊烟

题目描述

编程,画出下面图形,椭圆中心距离50,长半径分别是20、40、60、80、100,短半径是长半径一半。颜色号分别是1、2、3、4、5。

GOC基础指令 - 图35

菱形

题目描述

菱形是四条边相等的四边形,但角度不确定。请编程画出如下图的边长为100,内角分别是45度和135度的菱形。

GOC基础指令 - 图36

说明: 上图中红色数字是标明尺寸的,不需要画出。

总结

一、角度

角:具有公共端点的两条射线组成的图形。这个公共端点叫做角的顶点(B),这两条射线(AB/BC)叫做角的两条边。

GOC基础指令 - 图37

锐角:指大于0°而小于90°(直角)的角。

直角:等于90°的角。

《几何原本》中的定义:当一条直线和另一条横的直线交成的邻角彼此相等时,这些角的每一个被叫做直角,而且称这一条直线垂直于另一条直线。

钝角:大于直角(90°)小于平角(180°)的角。

平角:等于180°的角。

平角是一条射线绕它的端点旋转,当始边和终边在同一条直线上,方向相反时,所构成的角。

周角:是指一条射线绕着它的端点旋转一周所形成的角(360°)。

GOC基础指令 - 图38

二、圆周360°与量角器:

古代巴比伦人定义一周角分为360等份,每份定义为1度(1°)

GOC基础指令 - 图39

量角器又称“半圆仪”。将半圆形硬塑料板分成180度,用来测量角度或画出所需的角。

量角器有内圈和外圈两层刻度,根据实际情况选择合适的刻度。

GOC基础指令 - 图40

量角器使用方法:1:定点;2:对边;3:读值。

📖 第七课 智能机器人

—-调入与显示图片

picL、pic、picU命令学习

来到机器人展厅,椰小程发现里面各式各样的机器人伙伴可聪明啦,迎宾机器人在门口热情迎客,送餐机器人正在向客人赠送饮料,快递机器人正在模仿快递传送,还有机器人在热烈跳舞呢,令人惊叹不已!

GOC基础指令 - 图41

进入机器人展厅

  1. //程序7-1
  2. int main()
  3. {
  4. p.picL(1,"venue.png"); //调入机器人展厅图片“venue.png”并编为1号
  5. p.pic(1); //显示1号图片(机器人展厅)
  6. return 0;
  7. }

🔆指令学习

调入图片命令:o.picL(图片编号,图片文件名);

作用:调入图片文件名对应的图片并编号。图片文牛名要用双引号括住。
示例:“p.picL(6,”park.png”);”调入图片“park.png”编为6号。

显示图片命令:p.pic(图片编号);

作用:显示指定编号的图片。
示例:“p.pic(3);”显示3号图片。

GOC基础指令 - 图42

使用选择面板,载入图片:

GOC基础指令 - 图43

让快递机器人转弯

GOC基础指令 - 图44

  1. //程序7-4
  2. int main()
  3. {
  4. p.picL(1,"road.png");
  5. p.picL(2,"robot3.png");//调入快递机器人图片“robot3.png”并编为2号
  6. p.pic(1).up();
  7. p.picU(1); //设定图片按向上显示
  8. //======在A,B,C三个位置显示机器人===
  9. p.lt(90).fd(150).rt(90); //把画笔移到A点
  10. p.pic(2); //显示2号图片(机器人)
  11. p.fd(250).rt(90).fd(150);//把画笔移到B点
  12. p.pic(2);
  13. p.fd(200).rt(90).fd(250);//把画笔移到C点
  14. p.pic(2);
  15. return 0;
  16. }

🔆指令学习

设置图片方向属性命令:p.picU(1或0);

作用:设定p.pic()执行时是否按画笔的方向显示图片。当参数为1时或没使用p.picU()命令时,图片按原来的方向显示:当参数为0时,图片按当前画笔的方向旋转后显示。
示例1:“p.picL(1.”arrow.png”).rt(45).picU(0).pic(1);”图片按笔方向右转45度后显示。
示例2:“p.picL(1,”arrow.png”).rt(45).picU(1).pic(1);”不受画笔方向影响,图片按原来的方向显示。

GOC基础指令 - 图45

总结

一、 命令学习:picU(0)/picU(1)随笔旋转命令

功能:

执行pen.picU(1),设置图片(图形)的方向始终向上;

执行pen.picU(0),设置的图片(图形)方向不是一直向上,而是按笔的方向显示。

(U是up的意思)

说明:默认图片方向是始终朝上的。

GOC基础指令 - 图46

二、旋转图形

以画笔位置为旋转点,旋转显示图形。

技能:旋转的三要素(旋转中心点、方向、角度)。

方法:空间观念和想象力。

图示1:

GOC基础指令 - 图47

三、中心发散图形

中心发散图形循环体:从中心出发,返回到中心

技能:picU,for循环。

方法:空间观念和想象力。

图示2:

GOC基础指令 - 图48

四、线型循环图形

技能:线性循环体分析(循环起始角度和结束角度一致)。

方法:空间观念和想象力。

图示3:

GOC基础指令 - 图49

五、中心旋转与线型循环结合

技能:循环路线形成闭合图形(中心点与循环路线的结构)。

方法:空间观念和想象力。

图示4:

GOC基础指令 - 图50

图示5:

GOC基础指令 - 图51

📖 第 8 课 全息投影

—-输入与存放数据

变量和键盘输入语句

椰小程正沿着线路参观,忽然一头恐龙呼啸着扑面而来,仿佛已置身于神秘的恐龙世界,原来他进入了配备全息投影的动就可在观众感影厅。

全息投影技术是一种不需要配戴3D眼镜,面前显示立体虚拟场景的技术。

GOC基础指令 - 图52

  1. //程序8-1
  2. int main()
  3. {
  4. p.hide();
  5. p.picL(1,"sl.jpg").pic(1); //调入并显示背景图片
  6. p.picL(2,"kl.png"); //调入恐龙图片
  7. p.pic(2); // p.pic(2, 宽度,高度)
  8. return 0;
  9. }

改数据让恐龙变身

恐龙太大,走出屏幕边界了,如何修改程序将其缩小呢?

🔆指令学习

显示图片命令:p.pic(图片编号,宽,高);

作用:以画笔的位置为中心,按指定的宽和高显示编号对应的图片。如果只按原来的大小显示图片,可以不写宽和高两个参数,这就是该命令的特殊形式p.pic(图片编号);”。

示例:“p.pic(2,200,500);”按照宽200、高 500 显示 2号图片。

输入数据让恐龙变身

GOC基础指令 - 图53

  1. //程序8-3
  2. int main()
  3. {
  4. p.hide();
  5. p.picL(1,"sl.jpg").pic(1);
  6. p.picL(2,"kl.png"); //调入恐龙图片
  7. int w; //定义变量w
  8. cin>>w; //输入图片的宽度并存入变量w
  9. p.pic(2,w,500); //按照宽w、高500显示恐龙图片
  10. return 0;
  11. }

🔆指令学习

定义整数变量:int变量名;

作用:定义一个整数变量,用来存放一个整数。每个变量都要有一个变量名,变量名只能由字母、数字和下划线组成,且必须以字母开头。
示例:“inttz8:”定义了一个可存放整数的变量tz8。

输入语句:cin>>变量名:

作用:接受从输入窗口输入的数据 并存放到指定的变量中。
示例:“cin>>se:”接受输入的数据,并存放到变量Sg。

输入图片的宽度和高度

GOC基础指令 - 图54

🔆指令学习

定义多个整数变量:int变量名;,变量名2,…,变量名n;

作用:同时定义多个整数变量。变量名之间用逗号隔开。 示例:“intw.h:”定义两个整数变量w和h,变量名之间 作用等同于: int w; int h;

输入多个变量的值:cin>>变量名>>变量名>>…>>变量名n;

作用:输入多个变量的值。每个变量名前都要加“>>”号。
示例:“cin>>w>>h;”从键盘输入两整数,分别存放在变量w和h中。在输入数据时,第1个值与第2个值之用空格隔开。

📖 第 9 课 自动感应—-用if语句判断

if大小判断命令学习

经过自动门进入游客休息室,各种家居科技产品立刻映入椰小程的眼帘,令人大开眼界,有感温水杯、自动窗帘……这些产品的共同特点,都是使用了一类叫传感器的部件接收外界信息,以实现产品的“自动”功能。

自动感应门

GOC基础指令 - 图55

  1. //程序9-1
  2. int main()
  3. {
  4. p.picL(1,"open.png"); //调入开门图片
  5. p.picL(2,"close.png"); //调入关门图片
  6. p.pic(2); //显示关门图片
  7. int n; //定义变量n,用于存放距离
  8. cin>>n;
  9. if(n<300) p.pic(1); //如果距离n小于300就显示开门图片
  10. return 0;
  11. }

🔆指令学习

判断语句:if(条件表达式)语句;

作用:当条件表达式的值为True(即“真”)时执行后面的语句,否则不执行后面的语句。当if后面需要执行多个画图命令时,可以写成连发命令,也可以用一对大括号“”将多个单独写的命令括起来。

示例:“if(il<150)p.pic(1):”表示如果jl小于150就显示1号图片。

关系表达式

作用:由关系运算符连接起来的运算式子叫关系表达式,其结果为True(“真”)False(“假”)。关系运算包括“>”(大于)“<”(小于)“>=”(大于或等于)“<=”(小于或等于)“==”(等于)“!=”(不等于)共6种。

示例:t=200时,“t<280”的运算结果为True;x=80时,“x+10>100”的运算结果为False。

智能感温水杯

在科技馆的休息室中,椰小程发现一些奇妙的智能感温水杯:只要水温不超过55摄氏度,杯子盖上的标志就是绿色,超过55摄氏度就是红色的。

GOC基础指令 - 图56

智慧宝箱

椰小程在展馆发现了一个宝箱,现场工作人员告诉他,这个智慧宝箱的密码是当前的月份数。请你跟他齐心合力完善程序9-3,以便能输入正确的密码打开宝箱。

GOC基础指令 - 图57

第10 课 高铁列车—-用for语句实现重复

for语句初步学习

来到科技馆的现代交通展区,椰小程看到里面陈列着各式各样的交通工具,特别是其中长长的高铁列车模型尤其引人注目。高铁列车的奔跑时速可达300公里以上,相比传统火车更快、更安全、更舒适。

GOC基础指令 - 图58

显示多节车厢

GOC基础指令 - 图59

  1. //程序10-4
  2. int main()
  3. {
  4. p.up().rt(90).bk(300);
  5. p.picL(1,"ct.png").picL(2,"cx.png");
  6. p.pic(1);
  7. for(int i=0;i<6;i++) //重复6次
  8. p.fd(100).pic(2); //显示1节车厢
  9. return 0;
  10. }

🔆指令学习

重复语句:

  1. forint 循环变量=0:循环变量<次数:循环变量++)
  2. 循环体;

作用:按指定的次数重复执行循环体中的语句。示例:

  1. p.rt(90);
  2. for(int i=0;i<5;i++)
  3. p.e(3030).fd(60);

运行结果是:

GOC基础指令 - 图60

总结

  • 一、for语句格式:

GOC基础指令 - 图61

说明:for语句可以实现重复动作的多次执行:

GOC基础指令 - 图62

  • 二、循环体:

有一类图形,它是由一组相同的动作组合,重复执行多次完成的。

这组相同的动作组合,在for循环里称为循环体。

循环体的划分,需要细致的观察。

  • 三、for语句的快捷输入:

GOC基础指令 - 图63

直接点击命令面板中的命令,相应的命令代码将快捷显示在光标停留处。

📖 第 11 课 环形空间站—-画正多边形

正多边形的角度学习

在科技馆的航天展区,椰小程发现了一种造型独特的环形空间站模型,欲一探奥秘。环形空间站是一种在近地轨道长时间运行、可供多名航天员巡访、长期工作和生活的载人航天器。

GOC基础指令 - 图64

空间站的形状 为准确分析,椰小程找来科技馆的专业人士对环形空间站的模型进行扫描绘图,发现它的内圈是一个正十二边形。

  • 正多边形的所有边、所有角都相等。
  • 边数为n的正多边形,就叫作正n边形。

画正方形

我们知道了空间站内圈是一个正十二边形,怎么把它画出来呢?我们先从常见的正方形开始吧。

GOC基础指令 - 图65

  1. //创意园
  2. int main()
  3. {
  4. p.c(1);
  5. for(int i=0; i<4; i++){
  6. p.fd(100).rt(90);
  7. }
  8. return 0;
  9. }

画正三角形

GOC基础指令 - 图66

  1. int main()
  2. {
  3. p.c(1);
  4. for(int i=0; i<3; i++){
  5. p.fd(100).rt(120);
  6. }
  7. return 0;
  8. }

画正多边形

GOC基础指令 - 图67

  1. int main()
  2. {
  3. int n;
  4. cin >> n ;
  5. for(int i=0; i<n ; i++ ){
  6. p.fd(100).rt(360.0 / n);
  7. }
  8. return 0;
  9. }

GOC基础指令 - 图68

🔆指令学习

算术表达式

用加、减、乘、除等运算符将数或变量连接起来进行计算的式子,叫算术表达式。表达式中的乘号要用“*”表示,除号要用“/”表示。

示例:35+720*132.6*kx/5等都是算术表达式。

画正n边形时画笔转角的计算:

用“360.0/n”计算转角,以便能保留小数。如果写成“360/n”,则只取结果的整数商(如360/7的值为51)。

总结

一、正多边形

正多边形是指二维平面内各边相等,各角也相等的多边形,也叫正多角形。

GOC基础指令 - 图69

GOC基础指令 - 图70

画笔完成一个正多边形的绘制,一共旋转360°

根据正多边形的性质,我们可以计算出正多边形的外角:

正 N 边形的转角: 360.0 / N

程序示例:

  1. for(int i = 0; i < n; i++)
  2. pen.fd(100).rt(360.0/n);

说明:表达式360.0/n是精确算法,表达式360/n是整除运算。

例:C语言的表达式中:360/7的结果为51;360.0/7的结果为51.42。

注意:画笔既可以顺时针方向旋转,完成正多边形的绘制;也可以逆时针方向旋转,完成绘制。

📖 第 12 课 抽取纪念品—-巧用随机函数

随机函数初步学习

椰小程参观完科技馆,编程画出了很多漂亮的科技产品。为鼓励椰小程爱科学、学科学,馆长给了椰小程一个抽奖机会,让他在各种科技产品的模型中,抽取其中一个作为纪念品。 GOC基础指令 - 图71

神奇的抽号机

如何随机抽取一种纪念品呢?我们可以设计一个抽号机来帮助椰小程。运行抽号程序,屏幕显示的数字就是抽中的纪念品编号。

GOC基础指令 - 图72

  1. //程序12-1
  2. int main()
  3. {
  4. p.picL(1,"num.png");
  5. p.pic(1);
  6. int m;
  7. m=rand(1,8); //随机产生1~8中的一个整数,存入变量m中。
  8. p.text(m,1,100); //屏幕显示m的值
  9. return 0;
  10. }

🔆指令学习

随机函数:rand(整数1,整数2);

作用:在整数1到整数2之间随机取一个整数。示例:“rand(1.8);”能在1至8之间随机生成一个整数。

显示文字命令:p.text(文字内容,颜色,大小);

作用:按指定的颜色和大小在当前画笔的位置显示文字内容。在实际书写该命令时,因为文字内容是一个字符串,因此要用双引号。 示例:“p.text(“您好!”,1,50);”将在屏幕显示大小为50的红色文字“您好!”。

赋值语句:变量名=表达式;

作用:计算“=”右边表达式的值并存放到左边的变量中。其中“=”称为赋值号。 示例:“x3=rand(10,60);”在10至60之间随机取-个整数,存放到变量x3中。

跳动的数字

为了烘托抽奖的紧张气氛,我们可以在同一位置连续显示随机产生的数字,从而呈现数字“跳动”的效果。

GOC基础指令 - 图73

🔆指令学习

等待命令:wait(秒数);

作用:让程序等待指定的秒数,再执行下一个语句。示例:“wait(0.2);”执行时会等待0.2秒。

复合语句:{多个语句}

作用:用“{ }”把多个语句括起来,这部分就叫复合语句。
for语句的循环体若多于一个语句,就必须用{ }括起来,以组成一个复合语句。 示例: GOC基础指令 - 图74

幸运大转盘

参观科技馆之行将要结束,馆长再奖励椰小程拨动一次幸运大转盘,以奖励他一件小礼品,看看椰小程能获得什么小礼品。

GOC基础指令 - 图75

  1. //程序12-3
  2. int main()
  3. {
  4. p.picL(1,"zhuangpan.png"); //转盘图片
  5. p.picL(2,"zhizhen.png"); //指针图片
  6. p.hide().speed(10); //让转盘快速转动
  7. int x;
  8. x=rand(10,20);//控制转盘转10~20次
  9. for(int i=0; i<x; i++) // 动感旋转转盘
  10. {
  11. p.rt(36); //每次转动36度
  12. p.picU(0).pic(1);
  13. p.picU(1).pic(2);
  14. wait(0.04);
  15. }
  16. return 0;
  17. }

第13 课 for语句里的循环变量(扩展)

数字队列、text()、wait()

🔆指令学习

总结

一、画写文字命令:text(s,c)

格式1:text(s,c) s表示的是输出的内容,c是颜色代码。

以c的代码颜色画写s的文字内容。

格式2:text(s)

当颜色参数缺省时,以当前笔色画写文字。

text还可以实现更丰富的画写文字功能,请参看文件中的帮助一栏text内容。

注:text【tekst】中文释义:文本

二、for循环的运行

for循环语句示例:

GOC基础指令 - 图76

注:for循环的三个语句功能:

  1. i=0: 循环变量i开始为0
  2. i<3: 循环变量要小于3
  3. i++: 循环变量每次加1

循环变量i的值分别为0,1,2

循环运行流程:

GOC基础指令 - 图77

三、循环变量i的使用

循环变量可以出现在参数位置,利用循环变量的规律变化,实现更多的功能。

  1. text(i)
  2. fd(i) bk(i)
  3. rt(i) lt(i)
  4. size(i)
  5. c(i)
  6. oo(i)
  7. rr(i,i)

大家开动脑筋,结合前面所学的知识,利用循环变量的变化,创作更多的作品吧!

二、动画的实现:

  1. 连续动作1à停留à连续动作2à停留à连续动作3à停留à连续动作4à停留…

利用视觉暂留的特点,我们就看到一组连续动作出现了。

三、等待命令

格式:wait( second );

wait 英[weɪt] 中文释义:等待; 等; 等候

second 英[ˈsekənd , sɪˈkɒnd] 中文释义:秒(时间单位)

功能:程序运行到这里会等待指定时间,再继续运行。

等待的时间单位是秒,可以是小数。

说明:wait不是pen的命令,格式不能“pen.”开头。适当的使用wait不仅方便调试程序和演示绘图过程,还是实现动画的必要方法。second要保证>=0

样例:wait(0.2);

表示程序在这里停留0.2秒。

第 14 课 练习与巩固

一、学会观察和思考 做一名小小观察家,观察日常生活中,哪些物品包含你所学习的图形呢?

GOC基础指令 - 图78

说说你身边的有趣图形吧!

二、图形里的数学计算:

我们学习了矩形命令r/rr,画圆命令o/oo,椭圆命令e/ee。

我们发现:这些图形在绘制的时候,都是以画笔为中心点去画图形的!

GOC基础指令 - 图79

当这些图形组合成更多有趣图形时,其中包含了很多的数据,是需要我们去计算的。

1、画笔移动的距离

GOC基础指令 - 图80

描述:黑色正方形上面有一个红色实心圆。

问题:画笔需要怎样移动,才可以画出这个图形呢?

这需要我们了解边长和半径,有了这两个数据,这个图形就可以画出来了。

举一反三:那这些图形呢?你还发现哪些图形需要这样的计算?

GOC基础指令 - 图81

2、画笔旋转的角度

GOC基础指令 - 图82

描述:正方形里面有一个内切圆,圆形被均匀的分成了8份。

问题1:正方形的边长与圆的半径是什么关系?

问题2:圆形被切分成了均匀的8份,每一份的角度是多少呢?

正方形的边长是这个圆的半径的2倍;

360.0/8=45°,这就是每一份的角度。

举一反三:那这些图形呢?你还发现哪些转角的计算?

GOC基础指令 - 图83

3、画笔旋转方向的判断

画笔既可以顺时针绘制正多边形,也可以逆时针绘制正多边形。

利用两种转向,就可以画出下面红、蓝两色正六边形。

GOC基础指令 - 图84

在当前画笔所指方向,顺时针绘制红色正六边形,逆时针绘制蓝色正六边形。

举一反三:那这些图形呢?是否结合了顺时针和逆时针转向呢?

GOC基础指令 - 图85

三、顺序结构的认识

计算机的程序执行是按照顺序来运行的。

顺序不同,显示的结果不同。

GOC基础指令 - 图86

举一反三:那这些图形呢?图形是怎样变化和叠加的?

GOC基础指令 - 图87

四、for循环和循环变量可以通过图形来显示

1.循环节的判断

合理设置循环节,进行for循环,可以绘制各种奇妙图形!

GOC基础指令 - 图88

2、循环变量i有大用途

例1:循环变量i设置画笔颜色和前进长度,结合前进与转角动作,产生了下面的五彩星形!

  1. int main(){
  2. p.speed(10);
  3. for(int i = 0; i < 100; i ++)
  4. p.c(i).fd(i).rt(150 );
  5. return 0;
  6. }

GOC基础指令 - 图89

例2:循环变量i成为矩形的宽度变量,画出了二维码。

  1. int main(){
  2. p.rt(90).up();
  3. for(int i = 0; i < 14; i++)
  4. p.rr(i,100).fd(15);
  5. return 0;
  6. }

GOC基础指令 - 图90

思考一下,你还能列举出循环变量的奇妙用途吗?

五、平行四边形(Parallelogram),是在同一个二维平面内,由两组平行线段组成的闭合图形。

5.1、 平行四边形的边:

ab与cd平行

bc与ad平行

GOC基础指令 - 图91

image.png

写作: ab//cd ; bc//ad

二、平行四边形的角:

GOC基础指令 - 图92

平行四边形的四个顶点上的角,∠1、∠2、∠3、∠4 。

1.平行四边形的内角和是360°;

∠1+∠2+∠3+∠4=360°

2.平行四边形的对角相等;

∠1和∠3相对,∠2和∠4相对

∠1=∠3; ∠2=∠4

3.平行四边形的邻角之和是180°。

∠1和∠2相邻,∠2和∠3相邻,∠3和∠4相邻,∠4和∠1相邻:

∠1+∠2=180° ; ∠2+∠3=180° ; ∠3+∠4=180°; ∠4+∠1=180°

三、平行四边形的外角:

GOC基础指令 - 图93

平行四边形的四个外角,∠1和∠8组成了平角,∠2和∠5组成了平角,∠3和∠6组成了平角,∠4和∠7组成了平角, 。

∠1+∠8=180° ; ∠2+∠5=180° ; ∠3+∠6=180°; ∠4+∠7=180°

∠1+∠2+∠3+∠4=360°

∠5+∠6+∠7+∠8=360°

注:平行四边形的英文:(parallelogram [ˌpærəˈleləɡræm])