内容正文:
信息技术 必修1
粤教版普通高中教科书
数据与计算
第四章 程序设计基础
内容回顾
爸爸妈妈要出差4天,小明要负责照顾弟弟和自己几天。在这几天,他们遇到了各种问题,让我们用计算机程序来帮助他们一起解决吧!
设计解决日常生问题的计算机程序
内容回顾
第一天:弟弟的作业检查
4.1 程序设计语言基础知识
第二天:食品购买
4.2 运用顺序结构描述问题求解过程
第三天:购买作业本
4.3.1 if语句的运用
4.3.2 if...elif...else语句的运用
第四天:写大字获奖励
4.4.1 for循环的应用
4.4.2 while循环的应用
.......
弟弟,妈妈说让你写大字,你今天写10个大字,明天写20个大字,后天写30个大字,......后一天比前一天多写10个大字,要连续写10天。有奖励呦!第一天5元,第二天7元...后一天比前一天都多2元,50元就可以买你喜欢的那个足球了呦!
第四天:写大字获奖励
情境回顾
弟弟,妈妈给了我100元整,那我们必须去银行换成1元、5元和10元的零钱,每种面额的零钱至少1张。你能算出来有多少种换法吗?
哥哥,你可以每天把奖励都给我吗?
第四天:写大字获奖励
今天我教你运用循环嵌套来解决问题吧!
哥哥,有没有简单一点的方法去解决啊?
第四天:写大字获奖励
回顾
所谓“水仙花数”是指一个三位数,其各位数字的三次方之和等于该数本身。例如:153=13+53+33,故153是水仙花数。请分别用for循环和while循环计算100到999之间“水仙花数”的个数。
在探究for循环和while循环时,我们探究的了“水仙花数”的问题:
7
程序(for循环):
#设这个三位数为n,它的百位数为a,十位数为b,个位数为c
n=0
for i in range(100,1000):
a=i//100
b=i//10%10
c=i%10
if a**3+b**3+c**3==i:
n=n+1
print("第",n,"个水仙花数:",i)
程序(while循环):
#设这个三位数为n,它的百位数为a,十位数为b,个位数为c
n=0
i=100
while(i<1000):
a=i//100
b=i//10%10
c=i%10
if a**3+b**3+c**3==i:
n=n+1
print("第",n,"个水仙花数:",i)
i=i+1
回顾
2023/6/20
for a in range(1,10):
for b in range(0,10):
for c in range(0,10):
n = a *a*a + b*b*b + c*c*c
if n ==a * 100 + b * 10 + c:
print(n)
其实“水仙花数”还有另外一种解法:
回顾
#设这个三位数为n,它的百位数为a,十位数为b,个位数为c
1、为什么需要循环嵌套结构
4.4.3 循环嵌套的应用
10
算一个数的阶乘(如5的阶乘)?
5!=1*2*3*4*5
算n个数的阶乘和(如n=10)?
s2=1
for i in range(1,3):
s=s*i
print(s2)
s3=1
for i in range(1,4):
s=s*i
print(s3)
s4=1
for i in range(1,5):
s=s*i
print(s4)
……….
s9=1
for i in range(1,10):
s=s*i
print(s9)
s10=1
for i in range(1,11):
s=s*i
print(s10)
S=1+s2+s3+s4+s5+…+s9+s10
s=1
for i in range(1,6):
s=s*i
print(s)
S=1!+2!+3!+4!+...9!+10!
4.4.3 循环嵌套的应用
11
算一个数的阶乘(如5的阶乘)
5!=1*2*3*4*5
s=1
for i in range(1,6):
s=s*i
print(s)
算n个数的阶乘和(如n=10)
s1=0
for i in range(1,11):
s1=s1+s
print(s1)
单独使用for循环或while循环的单循环语句,往往无法解决复杂问题。如果需要