内容正文:
粤教版普通高中教科书
信息技术 必修1
数据与计算
1、程序设计语言的基础语言
2、运用顺序结构描述问题求解过程
3、运用选择结构描述问题求解过程
4、运用循环结构描述问题求解过程
第四章 程序设计基础
目 录
4.4.1 for循环的应用
4.4.2 while循环的应用
4.4.2 循环嵌套的应用
4.4.2 循环控制的应用
4.4 运用循环结构描述问题求解过程
模板来自于 http://meihua.docer.com/
2
一张白纸的厚度大约为0.05毫米,对折1次的厚度为多少?对折2次呢?对折5次呢?
分析:变量S存储每一次对折后的纸张厚度(s=s*2),变量i存储对折次数,到5为止。
s=0.05
for i in[1,2,3,4,5]:
s=s*2
print(s)
或者
s=0.05
for i in range(1,6):
s=s*2
print(s)
一张白纸的厚度大约为0.05毫米,对折1次的厚度为多少?对折多少次白纸的厚度超过1米?
用for循环可以解决吗?
不可以!
用for循环无处下手,因为for是知道循环次数的循环。这时我们可以选择while循环,while循环不用知道循环次数。
一张白纸的厚度大约为0.05毫米,对折1次的厚度为多少?对折2次呢?对折5次呢?
变化一下
while循环:当型循环,只要条件满足,就不断循环;否则,退出循环。
格式:
while(表达式):
语句或语句组(循环体)
1.表达式一般是一个关系表达式或者一个逻辑表达式,表达式的值是一个逻辑值,“真”或者“假”
2.当表达式值为真时,执行循环体语句;当表达式值为假时,退出循环体,执行循环体外的下一条语句
3.每次循环都是执行完循环体语句后回到表达式处重新开始判断,重新计算表达式的值
格式:
while(表达式):
语句或语句组(循环体)
编程:一张白纸的厚度大约为0.05毫米,对折1次的厚度为多少?对折多少次白纸的厚度超过1米?
算法:
1)设厚度为s,折叠次数为i
②s=s*2,如果s<=100,那么转到③,否则转到④
③i=i+1
④ 输出i
⑤结束
程序:
s=0.05
i=0
while s<=1000:
i=i+1
s=2*s
print(i,s)
2023/3/30
对比for循环和while循环
s=0
for i in range(1,101):
s=s+i
print(s)
s=0
i=1
while i<=100:
s=s+i
i=i+1
print(s)
for循环
while循环
分别用for循环和用while循环输出1000个“你好”?
for i in range(1,1001,1):
print(i,”你的名字”)
i=1
while i<=1000:
i=i+1
print(i,”你的名字”)
对比for循环和while循环
For循环和while循环在以次数进行循环时,本质是一样的,不同的是while除了可以以次数进行判断,还可以对其他类型的条件,如in、and、or等逻辑表达式进行判断进行循环。
问题解决
分析问题
需要累积总费用的变量sum,需要计算第几个人的变量num,还需要计算每个人募集钱数的money,首先初始化三个变量:num=1,money=20,sum=20,
再满足条件sum<500,进行推算:num=num+1,money=money+5,sum=sum+money
设计算法
根据上述的分析,可设计出如下的算法:
1)令num=1;
2)令money=20;
3)令sum=20;
4)num=num+1;
5)money=money+5;
6)sum=sum+money;
7)如果sum<500,则返回第4)步;
8)输出num的值;
9)结束。
num=1
money=20
sum=20
while sum<500:
num=num+1
money=money+5
sum=sum+money
print(num)
编写程序
s=0
i=1
while i<=100:
s=s+i
i=i+1
print(s)
i<=100
s=s+i
i=i+1
print s
i=1
s=0
N
Y
编程实践: 还记得用for循环求1----100的和吗?
请尝试 用while循环求1-----100的和。
先看for循环:
s=0
for i in range(1,101):
s=s+i
print(s)
挑战