第二单元 第7课 循环结构 课件(共20张PPT,内嵌视频) 2023—2024学年青岛版(2019)初中信息技术第三册

资源下载
  1. 二一教育资源

第二单元 第7课 循环结构 课件(共20张PPT,内嵌视频) 2023—2024学年青岛版(2019)初中信息技术第三册

资源简介

(共20张PPT)
第7课 循环语句
信息技术初中八年级第三册 青岛版
学习导入
学习目标:
1、认识循环结构,掌握for循环和while循环的用法。
2、理解循环变量在循环中的作用,能够熟练应用range()函数。
3、通过问题探究,体验计算机利用循环结构解决问题的方法,体验算法的巧妙运用。
活动一、初识for循环
任务一:用*代替故事中的麦粒,每一行代表一格,如果每行一粒麦粒,设计程序,打印64行麦粒。
使用for循环语句打印64行“*”:
for i in range(64):
print("*")
【自主探究】
1、for循环的基本结构
2、range()函数以及循环变量i在循环中的作用是什么?
for循环语句的基本格式:
for <循环变量> in <遍历结构>:
<语句块>
range()函数表示一个序列,默认从0开始,range(64)则产生0-63的一个序列。循环变量 i是一个自定义变量,每次循环等于range()序列中的一个数,直到循环结束。
任务二:如果第一行一粒麦粒,第二行两粒,第三行三粒……改变每行“*”的数量,打印出64行的麦粒。
【小组合作】
for i in range(1,65): #输出64行
print("*"*i) #字符串相乘
小尝试:
改变range()函数的数值, 简单了解步长的概念。
range(1,64) range(65,1,-1)
range(x,y,z) 其中x表示初值,y表示终值,z表示步长
任务三:如果按照第1格放1粒麦粒,第2格放2粒麦粒,第3格放4粒,第4格放8粒,以后每一格都是前一格的2倍,计算出64格棋盘所放的麦粒总数。
填写下表,找一找每格麦粒数和循环次数的关系。
循环变量i 单格麦粒数n 总数s
0 1 1
1 n=2**1
2 n=2**2
3 n=2**i
4
5
…… …… ……
观察规律,写出n和s的数学表达式:
n=2**i
s=s+n
活动二、棋盘与麦粒
尝试完善程序,进行编译测试:
s=1
for i in range(1,64):
n=2**i
s=s+n
print(s)
在古罗马时期,恺撒大帝就开始使用一种文字加密方式—恺撒密码。他的基本方法是通过把字母按字母表的顺序,移动一定的位数来实现加密和解密,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移,偏移后被替换成密文。例如:当偏移量是3的时候,所有的字母a将被替换成d, b变成e,c变成f,以此类推。
请你设计一个程序,当输入一串小写字母(包含空格)时,转换成偏移量为3的密文(空格不加密),最后输出加密后的结果。
活动三、恺撒密码
1、字符串序号化
2、遍历字符串:在交互模式下输入以下语句,查看运行的结果。
for i in "phthon":
print(i)
for循环语句中,遍历结构除了以上的range()函数,还可以是字符串、文件、列表、元组等可遍历的类型。
3、使用find()函数测试字符串是否存在:存在时返回索引值,否则返回-1
alphabet="abcdefghijklmnopqrstuvwxyz"
print(alphabet.find(”a”))
print(alphabet.find(”z”))
alphabet="abcdefghijklmnopqrstuvwxyzabcdefg"
str1=input("请输入明文(小写字母和空格):")
str2="" #定义密文变量
#遍历要加密的字符串
for cursor in str1:
#判断是否为空格,如果为空格则不加密
if cursor==" ":
str2=str2+" "
continue #跳出当前循环,进入下一循环
#在字母表中查找当前字母的位置
n=alphabet.find(cursor)
#如果当前字母没有找到提示错误
if n==-1:
print("输入有误!")
break #结束整个循环
else:
#对当前字母进行加密,添加到密文中
str2=str2+alphabet[n+3]
print("加密后的文字",str2)
完善程序,编译运行
阅读P45页内容,初步了解:
1、while循环语句的基本结构
活动四、折纸测珠峰(while循环语句)
2、画出循环语句的流程图
while循环的格式如下:
while<条件>:
<语句块1>
else:
<语句块2>
【阅读教材】
珠穆朗玛峰简称“珠峰”,珠峰海拔约为8848米,是世界第一高峰。如果有一张足够大的纸(厚0.1毫米),对折多少次,纸张的厚度可以超过珠穆朗玛峰的高度
【自主探究】
分析问题:定义变量i为循环次数,height为纸张厚度,
数学表达式: height = 2**i/10000 (毫米换算成米)
i= 0
height = 0
while height < 8848:
i = i + 1 #循环次数
height = 2**i/10000 #高度print("经过",i,"次折纸")
print("高度达到:",height,"米")
“百钱买百鸡”问题出自我国古代数学家张丘建的《算经》,题目要求用100文钱买来100只鸡,公鸡5文钱1只,母鸡3文钱1只,小鸡1文钱3只。在这100只鸡中,公鸡、母鸡、小鸡各是多少只
你能设计程序,用计算机来解这一问题吗 动手试一试吧!
1、用数学方程式列出题目中的数量关系。说一说:公鸡、母鸡和小鸡的取值范围是多少
设公鸡、母鸡、小鸡各有x,y, z只。
x+y+z=100
5x+3y+z/3=100
活动五、百钱买百鸡
“百钱买百鸡”问题参考程序:
你能想到什么方法对程序进行优化,减少循环的层数,降低循环的次数,提高程序的运行效率
1、z的取值可以用“100-x-y"来确定,这样可以不必遍历z
2、x的取值范围1到19, Y的取值范围1到32。
for x in range(1,100):
for y in range(1,100):
for z in range(3,100,3):
If 5*x+3*y+z/3==100 and x+y+z==100:
print(x,y,z)
在已知遍历次数的情况下,使用for循环语句进行遍历;在无
法确定遍历次数时,使用while循环语句。
【小组合作】
想一想 while循环和for循环有什么相同点 又有哪些不同点
折纸测珠峰
while height < 8844:
i = i + 1
height = 2**i/10000
百钱买百鸡
for x in range(1,100):
for y in range(1,100):
for z in range(3,100,3):
【拓展延伸】
猜测真实数据
某单据因日久破损,一数据十分模糊,缺少了千位数和十位数,只能推测为14x9x1,已知该数据是57或67的倍数,请设计一个程序,输出所有满足条件的数。
#猜猜真实数据
for i in range(0,10):
for j in range(0,10):
x=140901+i*1000+j*10
if x%57==0 or x%67==0:
print("数据可能是:",x)
课堂小结
同学们,请你回想一下,这节课你有什么收获?
谢谢

展开更多......

收起↑

资源预览