(共25张PPT)
浙教版信息技术
八年级
第11课
while循环的应用实例
新知导入
上节课我们学习了while循环结构程序设计,这节课我们通过实例进一步理解应用while程序结构,来解决实际问题。让我们一块学习吧!
新知讲解
编程实现“猜数游戏”。
在给定某数后,让用户进行猜测并输入数,计算机给出相应提示,如偏大、偏小或正确。
若所猜测的数正确,则输出猜测次数,否则继续猜数。
新知讲解
在游戏中,
首先要给定一个要猜测的具体数(变量num)
,
然后读入用户的输入数(变量guess)
。
让计算机反复对输入数与给定数进行比较,
并提示如下相关信息:
一、问题分析
“偏大”(guess>num)
“偏小”(guess“正确”(guess=num)
新知讲解
根据以上问题分析,需将输入数与给定数进行反复比较,在这个过程中不能
确定比较的次数,
因此需用while循环语句来实现。
二、算法设计
新知讲解
其算法用自然语言描述如下:
初始:给定数num=66,
计数器i=0.
输入:输入数guess.
循环处理:比较guess与num大小,
若不相等,
则i=i+1。
输出:猜测次数i+1。
新知讲解
其算法用流程图表示,如图所示。
新知讲解
根据设计的算法,假设要猜测的数为66,计数器变量i初始值为0。
三、编写代码
新知讲解
num=
66
#给定的具体数为66
i=0
#计数器置初值0
#循环猜数
While
True:
guess=int(input("请输入猜测数:")
)
If
guessprint("偏小")
i=i+1
elif
guess>num:
print("偏大")
i=i+i
else:
print("正确,
共猜测次数:",
i+1)
break
其程序代码如下
新知讲解
按“F5”键,输入猜测数,观察运行结果。
四、调试运行
新知讲解
从键盘上任意输入两个正整数m和n,求:
(1)m和n的最大公约数
(2)m和n的最小公倍数
实践1
新知讲解
分析:
(2)a是m和n的公约数,则:m%a==0
and
n%a==0
(3)b是m和n的公倍数,则:b%m==0
and
b%n
==o
(1)通过之前逻辑运算符的学习,大家已经明确如何来判断两个数的公约数和公倍数。
(4)
一个数的约数一定小于等于这个数本身。所以m和n的公约数一定同时满足小于等于m且小于等于n,也就是要满足小于等于m和n中最小的那一个。而最小的约数是1,所以两个数的公约数取值条件应在:min{m,n}]。
新知讲解
(5)题干要求m和n的最大公约数,最大公约数的范围必然也在[1,
min{m,n}],要求最大的,只需从min{m,n}到1,逐个判断,直到满足公约数条件,即满足条件(2)即可。
(6)一个数的倍数一定大于等于这个数本身。所以m和n的公倍数一定同时满足大于等于m且大于等于n,也就是要满足大于等于m和n中较大的那一个。所以两个数的公倍数取值:>=max{m,n}。
(7)
题干要求m和n的最小公倍数,因为所有的公倍数都是>=max{m,n},所以从max{m,n},一次判断,第一个满足条件(3)就是最小公倍数。
新知讲解
其程序代码如下(如图所示)
新知讲解
实践2
从键盘上任意输入一个正整数,求这个正整数的各位数字之和。例如:输入1、2、3、4,输出结果为:10.
新知讲解
分析:
1234可以写成:1234
=
10
123
+
4,
这种格式类似于:被除数
=
除数
商
+
余数。
1234的各位数字之和是1+2+3+4=10。所以,首先我们需要把各位上的数字提取出来。
很明显,余数4就是我们要的个位数字。而要想得到余数4,很明显我们可以用取余运算(%)。所以4
=
1234%10.
新知讲解
接下来取十位数字。我们现在已经会取个位数字了,但不会取十位上的数字,所以需要想办法把十位数字转化为个位数字。
观察:1234
=
10
123
+
4,发现被除数1234的十位数字3就是商123的个位数字,提取商123的个位数字,就是提取被除数1234的十位数字。
因此,我们可以通过商123来求十位数字。3
=
123%10.
同样的方法:可以利用123除以10的商12来提取1234的百位数字。
再利用同样的方法可以提取千位数字。
新知讲解
所以解决各位数字求和的问题,就转化为了依次求商的个位数字的问题。
而商可以用整除运算(//)来求得。
代码示例(如图所示):
新知讲解
找出1-100个自然数中,所有像2、4、6、8、10……96、98、100这样的偶数。
偶数的特点?
偶数的判断条件:
x%2==0
你学会了吗?
x=1
while
x<=100:
if
x%2==0:
print(x)
x=x+1
x=1
sum=0
while
x<=100:
print(sum)
随堂练习
求1+3+5+7+9…+97+99的和。
课堂小结
总结本节课所学内容
板书设计
一、问题分析
二、算法设计
三、编写代码
四、调试运行
找出1-100个自然数中,所有像1、3、5、79……97、99这样的奇数。
作业布置
谢谢
21世纪教育网(www.21cnjy.com)
中小学教育资源网站
有大把高质量资料?一线教师?一线教研员?
欢迎加入21世纪教育网教师合作团队!!月薪过万不是梦!!
详情请看:
https://www.21cnjy.com/help/help_extract.php中小学教育资源及组卷应用平台
浙教版信息技术八年级第11课while循环的应用实例教学设计
课题
while循环的应用实例
单元
第二单元
学科
信息技术
年级
八年级
学习目标
知识目标:了解while循环的语法格式技能目标:掌握while循环的语法格式,能够使用while循环解决实际生活中的问题,学会独立编写和调试代码。情感目标:通过实际生活中的案例,由简到难培养学生对学习新知识的兴趣。
重点
while循环结构语法格式
难点
将实际转化为数学思想,并用代码实现
教学过程
教学环节
教师活动
学生活动
设计意图
导入新课
上节课我们学习了while循环结构程序设计,这节课我们通过实例进一步理解应用while程序结构,来解决实际问题。让我们一块学习吧!
思考并回答问题
激发学生学习兴趣并快速进入学习状态
讲授新课
编程实现“猜数游戏”。在给定某数后,让用户进行猜测并输入数,计算机给出相应提示,如偏大、偏小或正确。若所猜测的数正确,则输出猜测次数,否则继续猜数。一、问题分析在游戏中,
首先要给定一个要猜测的具体数(变量num)
,
然后读入用户的输入数(变量guess)
。让计算机反复对输入数与给定数进行比较,
并提示如下相关信息:“偏大”(guess>num)“偏小”(guess因此需用while循环语句来实现。其算法用自然语言描述如下:初始:给定数num=66,
计数器i=0.输入:输入数guess.循环处理:比较guess与num大小,
若不相等,
则i=i+1。输出:猜测次数i+1。其算法用流程图表示,如图所示。三、编写代码根据设计的算法,假设要猜测的数为66,计数器变量i初始值为0。其程序代码如下num=
66
#给定的具体数为66i=0
#计数器置初值0#循环猜数While
True:
guess=int(input("请输入猜测数:")
)
If
guessprint("偏小")
i=i+1
elif
guess>num:
print("偏大")
i=i+i
else:
print("正确,
共猜测次数:",
i+1)
break四、调试运行按“F5”键,输入猜测数,观察运行结果。实践1从键盘上任意输入两个正整数m和n,求:(1)m和n的最大公约数(2)m和n的最小公倍数分析:(1)通过之前逻辑运算符的学习,大家已经明确如何来判断两个数的公约数和公倍数。(2)a是m和n的公约数,则:m%a==0
and
n%a==0(3)b是m和n的公倍数,则:b%m==0
and
b%n
==o(4)
一个数的约数一定小于等于这个数本身。所以m和n的公约数一定同时满足小于等于m且小于等于n,也就是要满足小于等于m和n中最小的那一个。而最小的约数是1,所以两个数的公约数取值条件应在:min{m,n}]。(5)题干要求m和n的最大公约数,最大公约数的范围必然也在[1,
min{m,n}],要求最大的,只需从min{m,n}到1,逐个判断,直到满足公约数条件,即满足条件(2)即可。(6)一个数的倍数一定大于等于这个数本身。所以m和n的公倍数一定同时满足大于等于m且大于等于n,也就是要满足大于等于m和n中较大的那一个。所以两个数的公倍数取值:>=max{m,n}。(7)
题干要求m和n的最小公倍数,因为所有的公倍数都是>=max{m,n},所以从max{m,n},一次判断,第一个满足条件(3)就是最小公倍数。其程序代码如下(如图所示)实践2从键盘上任意输入一个正整数,求这个正整数的各位数字之和。例如:输入1、2、3、4,输出结果为:10.分析:1234的各位数字之和是1+2+3+4=10。所以,首先我们需要把各位上的数字提取出来。1234可以写成:1234
=
10
123
+
4,这种格式类似于:被除数
=
除数
商
+
余数。很明显,余数4就是我们要的个位数字。而要想得到余数4,很明显我们可以用取余运算(%)。所以4
=
1234%10.接下来取十位数字。我们现在已经会取个位数字了,但不会取十位上的数字,所以需要想办法把十位数字转化为个位数字。观察:1234
=
10
123
+
4,发现被除数1234的十位数字3就是商123的个位数字,提取商123的个位数字,就是提取被除数1234的十位数字。因此,我们可以通过商123来求十位数字。3
=
123%10.同样的方法:可以利用123除以10的商12来提取1234的百位数字。再利用同样的方法可以提取千位数字。所以解决各位数字求和的问题,就转化为了依次求商的个位数字的问题。而商可以用整除运算(//)来求得。代码示例(如图所示):你学会了吗?找出1-100个自然数中,所有像2、4、6、8、10……96、98、100这样的偶数。偶数的特点?偶数的判断条件:
x%2==0x=1while
x<=100:
if
x%2==0:
print(x)
x=x+1随堂练习求1+3+5+7+9…+97+99的和。x=1sum=0while
x<=100:(
)(
)print(sum)
通过教师的讲解,以小组合作的方式,开展探讨交流,完成任务。学生小组间讨论,共同完成任务。通过教师的讲解,以小组合作的方式,开展探讨交流,完成任务。学生小组间讨论,共同完成任务。通过教师的讲解,以小组合作的方式,开展探讨交流,完成任务。学生小组间讨论,共同完成任务。通过教师的讲解,以小组合作的方式,开展探讨交流,完成任务。学生小组间讨论,共同完成任务。学生小组间讨论,共同完成任务。学生小组间讨论,共同完成任务,并分组汇报。
通过小组合作,加强学生组内团结、共同完成任务培锻炼学生的语言组织能力和表达的能力。加强学生组内团结、共同完成任务培锻炼学生的语言组织能力和表达的能力。加强学生组内团结、共同完成任务培锻炼学生的语言组织能力和表达的能力。加强学生组内团结、共同完成任务培锻炼学生的语言组织能力和表达的能力。培锻炼学生的语言组织能力和表达的能力。培养学生独立完成练习的能力。
课堂小结
分小组总结归纳,教师补充。
各组汇报总结,其他小组成员做补充。
锻炼学生的总结能力,逻辑思维、语言表达能力。
布置作业
找出1-100个自然数中,所有像1、3、5、79……97、99这样的奇数。
板书
一、问题分析二、算法设计三、编写代码四、调试运行
21世纪教育网
www.21cnjy.com
精品试卷·第
2
页
(共
2
页)
HYPERLINK
"http://www.21cnjy.com/"
21世纪教育网(www.21cnjy.com)