第10关 - 2017NH教师GoC编程能力测试
179.(2017教师GoC编程能力测试)第1题:三个方形(three)
题目描述
小P刚学会goc时最喜画正方形拼成的图形,请编程画出如下图形。
注意:上图的每个线段长度都是50。
题解
int a=50;
void zfx()
{
for(int i=0;i<4;i++)
p.fd(a).rt(90);
}
int main() {
p.rt(90); zfx();
p.rt(180); zfx();
p.bk(a).rt(90);
zfx();
return 0;
}
180.(2017教师GoC编程能力测试)第2题 丰田(toyota)
题目描述
小P设计了如下图的“丰田”标识,请你帮忙使用GoC编程绘制。
注意:笔宽为4,颜色号为8。3个椭圆的参数分别是(120,60),(30,60)、(80,30)。
题解
int main() {
p.size(4).c(8).hide();
p.e(120,60).e(30,60);
p.up().fd(30).e(80,30);
return 0;
}
181.(2017教师GoC编程能力测试)第3题:六边形(six)
题目描述
小P请你帮忙使用GoC编程绘制下面图形。
注意:上图的每个线段长度都是50。
题解
int main() {
for(int i=0;i<6;i++)
{
for(int i=0;i<3;i++)
p.fd(50).rt(120);
p.rt(60);
}
return 0;
}
182.(2017教师GoC编程能力测试)第4题:风车(win)
题目描述
卡通风车可以简单的由一些长100宽50的矩形平分一周画出来,如下图是3个矩形的风车:
现在给你矩形的个数和颜色号,请画出相应的图形。
输入格式 一行:2个正整数n和a。
输出格式 相应的图形。
输入/输出例子1
输入:
20 3
输出:
输入/输出例子2
输入:
8 11
输出:
题解
int main() {
int n,c;
cin >>n>>c;
p.c(c);
for(int i=0;i<n;i++)
{
for(int i=0;i<2;i++)
p.fd(100).rt(90).fd(50).rt(90);
p.rt(360.0/n);
}
return 0;
}
183.(2017教师GoC编程能力测试)第5题 三角形(tri)
题目描述
小Pen学会了第11课的使用循环变量可以画出多变的图形。 他模仿例题使用颜色号1、2、3画出了下面最大边长是120的图形:
不过小Pen希望自己键盘输入3个颜色,画出想要的图形。
输入格式 一行3个正整数a,b,c范围[0,15]。
输出格式 相应的图形。
输入/输出例子1
输入:
2 5 6
输出:
题解
int main() {
int a,b,c;
cin >>a>>b>>c;
p.speed(10).hide();
for(int i=0;i<=120;i++)
{
if (i%3==0) p.c(a);
else if(i%3==1) p.c(b);
else p.c(c);
p.fd(i).rt(120);
}
return 0;
}
184.(2017教师GoC编程能力测试)第6题:外接圆(cir)
题目描述
输入n个数,以这n个数画n个圆。这n个圆从左到右相邻,圆心在同一水平线上。例如:n=6, 输入的数是10 20 40 20 30 10,用这些数做半径画出的图如下:
不过小pen不满足这么简单,他决定还要加个外接圆!
输入格式 第一行,1个正整数n,范围在[1,10]。 第二行,n个正整数范围都在[2,100]。
输出格式 相应的图形。
输入/输出例子1
输入:
6
4 10 20 20 10 4
输出:
输入/输出例子2
输入:
3
40 20 30
输出:
题解
int main() {
int n,a,s;
s=0;
cin >> n;
p.up().rt(90).hide();
for (int i=0; i<n; i++)
{
cin >>a;
p.fd(a).o(a).fd(a);
s+=a;
}
p.bk(s).o(s);
return 0;
}
185.(2017教师GoC编程能力测试)第7题:砖头(brick)
题目描述
小pen觉得画一个立体的砖块是研究3D作图的基本功。例如:
注意:上图的每条线段长度都是100,红色的数字表示这个角度是30,不用你画出。
输入格式 一行1个正整数a,范围都在[10,170],表示如图的那个红色位置的角度。
输出格式 相应的图形。
输入/输出例子1
输入:
60
输出:
输入/输出例子2
输入:
135
输出:
题解
void lx(int x){
p.fd(100).rt(x).fd(100).rt(180-x);
p.fd(100).rt(x).fd(100).rt(180-x);
}
int main() {
int a;
cin >> a;
p.rt(180);
lx(90);
p.rt(90);
lx(180-a);
p.rt(180-a);
if (a>90)
p.moveTo(-100,0);
lx(90+a);
p.hide();
return 0;
}
186.(2017教师GoC编程能力测试)第8题:圆饼图(pie)
题目描述
小pen学习使用电子表格时对数据统计时的圆饼图很感兴趣,想用goc编程实现这个功能。例如有4个数:0 30 50 20,就用0号颜色画0%的扇形,用1号颜色画30%的扇形,用2号颜色画50%的扇形,用3号颜色画20%的扇形。结果如下:
注意:这个圆的半径为100,第1个数的扇形用0号颜色,第2个数的扇形用1号颜色,…,第n个数的扇形用n-1号颜色。
输入格式 第一行1个正整数n,范围在[2,15],表示数值个数。 第二行n个正整数,每个数范围在[2,100],表示数值。
输出格式 相应的表示百分比的圆饼图。
输入/输出例子1
输入:
5
6 2 3 5 9
输出:
输入/输出例子2
输入:
12
10 30 80 40 50 60 10 30 80 40 50 60
输出:
题解
int main() {
int n,a[20],s;
cin >> n;
p.speed(10);
for(int i=0; i<n; i++)
{
cin>>a[i];
s+=a[i];
}
for (int i=0; i<n; i++)
{
p.c(i);
for (int j=0; j<360.0*a[i]/s; j++)
p.fd(100).bk(100).rt(1);
}
p.hide();
return 0;
}