第6关 - 魔法学院第14课

利用循环处理多个数据读入和计算。

87.乐谱 (魔法学院第14课)

题目描述

编程任务:

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

4

3 2 1 2

可以画出下面图形

image.png

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

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

输入格式
第一个正整数n,表示多少个矩形。

后面n个整数,表示每个矩形的颜色号。

输出格式
相应图形。

输入/输出例子1

输入:

7

1 2 3 4 3 2 1

输出:

image.png

题解

int main()  
{   
 	int n, a;  
	cin >> n ;  // 输入个数  
	p.hide().up();  
	for( int i=0; i < n; i++)  
	{  
		cin>> a ; // 输入音符  
		pen.rr(10, a*30 , a); // 画音符  
		p.rt(90).fd(15).lt(90);  
	}  
	return 0;  
}  

88.同心圆 (魔法学院第14课)

题目描述

编程任务:输入n个圆的半径,画n个红色同心圆。每个圆的上边距离10的地方,用pen.text()命令输出半径的值。例如输入:

3

30 60 100

可以画出下面图形(包括数字)

image.png

输入格式
一个正整数n,表示半径个数。

后面n个正整数,表示每个圆的半径。

输出格式
相应图形。

输入/输出例子1

输入:

2

120 50

输出:

image.png

题解

int main()  
{   
	int n,r ;  
	cin >> n;  // 输入个数	  
    p.up().hide().speed(10);  
	for( int i=0; i < n; i++)  
	{  
		cin >> r ;  // 输入半径  
		pen.o( r,1 ); // 画圆  
		pen.fd(r+10); //到上面  
		pen.text(r);  
		pen.bk(r+10 );  //回到圆心  
	}  
	return 0;  
}  

89.显示分数高低 (魔法学院第14课)

题目描述

编程任务:设计一个判分程序,用画图形显示分数是否及格。

输入 n 个人的语文分数,分数小于 60 的用1号红色矩形表示;分数大于等于 60 的用10号绿色矩形表示。

例如运行程序后输入:

5

90 75 50 60 35

可以画出下面图形:

image.png

矩形宽度20,高度是分数的值,相邻矩形中间的缝隙宽度10。

输入格式
第一个整数n表示多少学生;

下面n个整数表示分数。

输出格式
相应图形。

输入/输出例子1
输入:

5

150 90 50 80 60

输出:

image.png

题解

int main()  
{   
	int n, s, a;  
	cin >> n;  // 输入个数  
    p.up().hide();  
	for( int i=0; i < n; i++)  
	{  
		cin >>s  ; // 输入分数  
		if ( s<60 ) a=1 ;  
		else a = 10;  
		pen.fd( s/2 ).rr(20,s,a);  
		pen.bk(s/2).rt(90).fd(30).lt(90);    
	}  
	return 0;  
}