第九课认识倍数
课堂学习:
认识倍数
我们按照是否有余数,可以把他们分成两类:
在整数除法中,如果商是整数没有余数,我们就说被除数是除数的倍数,除数是被除数的因数(约数)。 例如,12÷2=6,我们就说12是2的倍数,2是12的因数。 说一说第一类的每个算式中,谁是谁的因数?谁是谁的倍数?
因数与倍数是相互依存的
下面的4组数中,谁是谁的因数?谁是谁的倍数?
倍数的特征
2、5的倍数的特征
18的因数有:1、2、3、6、9、18 一共6个
2的倍数有:2、4、6、...、12、14、16、...
5的倍数有:5、10、15、...
所以一个整数的因数是有限的,一个整数的倍数是无限多的 我们可以总结出来一些特定数倍数的特征: 比如2的倍数: 个位数必须是2的倍数。 整数中2的倍数叫做偶数、不是2的倍数叫做奇数 同样的,5的倍数:个位数都是0或者5 还有很多其他整数的倍数也是有特征的,同学们课后可以去了解一下
绘制偶数圆环
了解了偶数的知识,现在我们可以实现一下奥运五环 让偶数环(2、4)显示红色(色号1),奇数环(1,3,5)显示绿色(色号10) 圆形半径可以设置成50,两个圆形圆心间距为100 第二行圆心开始位置距离第一行圆心开始位置50.
我们希望向右画圆环,所以开始可以让画笔向右转90° 然后我们可以直接在起始位置绘制实心圆,半径为50,第1个圆形是奇数,所以使用色号10,绿色 之后为了显示环形效果,可以直接在起始位置再绘制一个半径为40,色号15,即白色的实心圆,这样就可以得到一个绿色的圆环
int main(){pen.rt(90);pen.oo(50,10).oo(40,15);pen.up().fd(100).down().oo(50,1).oo(40,15);pen.up().fd(100).down().oo(50,10).oo(40,15);pen.moveTo(50,-100);pen.oo(50,1).oo(40,15);pen.up().fd(100).down().oo(50,10).oo(40,15);return 0;
}
int main(){pen.speed(10).hide();pen.o(50,rand()%10);pen.moveTo(100,0).o(50,rand()%10).moveTo(200,0).o(50,rand()%10);pen.moveTo(50,-50).oo(50,rand()%10).moveTo(150,-50).oo(50,rand()%10);return 0;
}
图形放大器
有了倍数的知识,我们可以实现图形放大器功能 输入一个整数作为倍数,然后把一个50半径、10宽度的绿色圆环的所有倍数都绘制出来 例如:输入5,则需要把圆环1、圆环2(半径100)、圆环3(半径150)、圆环4(半径200)、圆环5(250)都绘制出来
首先是输入整数,比较简单,我们首先定义一个整数类型变量就可以了,然后我们需要开始绘制放大之后的圆环,观察到圆环中心都是第一个圆环的圆心,不需要画笔移动,所以我们可以使用循环来实现所有圆环绘制,我们可以尝试然倍数从1倍增加的a倍,然后使用绘制五环的技巧,先绘制色号10绿色的实心圆,再绘制色号15的白色实心圆来实现圆环的效果,外圆的半径是50的i倍,内圆半径就是外圆半径减去10
运行之后我们发现只有最外圈的圆环会显示 这是因为我们画完小的圆环之后,再画大的圆环的话,大的圆环中内圈的白色圆环会把小的圆环覆盖掉,这样我们就看不到小的圆环了,那我们应该怎么解决这个问题呢?
没错,我们先画外圈的圆环再画内圈的圆环就可以了,体现到程序里面就是for循环里面半径从50的a倍开始,每次减一,一直到50的1倍为止,这样我们就能够绘制出半径50的圆环的所有倍数圆环
课后作业
任务一:
课后同学们可以尝试完成五环图形的倍数显示,相邻圆形间距可以更改为200
任务二:
画出简易红绿灯