第10关 - 2017NH教师GoC编程能力测试

179.(2017教师GoC编程能力测试)第1题:三个方形(three)

题目描述

小P刚学会goc时最喜画正方形拼成的图形,请编程画出如下图形。

image.png

注意:上图的每个线段长度都是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编程绘制。

image.png

注意:笔宽为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编程绘制下面图形。

image.png

注意:上图的每个线段长度都是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个矩形的风车:

image.png

现在给你矩形的个数和颜色号,请画出相应的图形。

输入格式 一行:2个正整数n和a。

输出格式 相应的图形。

输入/输出例子1

输入:

20 3

输出:

image.png

输入/输出例子2

输入:

8 11

输出:

image.png

题解

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的图形:

image.png

不过小Pen希望自己键盘输入3个颜色,画出想要的图形。

输入格式 一行3个正整数a,b,c范围[0,15]。

输出格式 相应的图形。

输入/输出例子1

输入:

2 5 6

输出:

image.png

题解

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,用这些数做半径画出的图如下:

image.png

不过小pen不满足这么简单,他决定还要加个外接圆!

输入格式 第一行,1个正整数n,范围在[1,10]。 第二行,n个正整数范围都在[2,100]。

输出格式 相应的图形。

输入/输出例子1

输入:

6

4 10 20 20 10 4

输出:

image.png

输入/输出例子2

输入:

3

40 20 30

输出:

image.png

题解


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作图的基本功。例如:

image.png

注意:上图的每条线段长度都是100,红色的数字表示这个角度是30,不用你画出。

输入格式 一行1个正整数a,范围都在[10,170],表示如图的那个红色位置的角度。

输出格式 相应的图形。

输入/输出例子1

输入:

60

输出:

image.png

输入/输出例子2

输入:

135

输出:

image.png

题解

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%的扇形。结果如下:

image.png

注意:这个圆的半径为100,第1个数的扇形用0号颜色,第2个数的扇形用1号颜色,…,第n个数的扇形用n-1号颜色。

输入格式 第一行1个正整数n,范围在[2,15],表示数值个数。 第二行n个正整数,每个数范围在[2,100],表示数值。

输出格式 相应的表示百分比的圆饼图。

输入/输出例子1

输入:

5

6 2 3 5 9

输出:

image.png

输入/输出例子2

输入:

12

10 30 80 40 50 60 10 30 80 40 50 60

输出:

image.png

题解

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;
 }