内容正文:
粤教版普通高中教科书信息技术
作者:XXX 时间:XXX
第三章 算法基础
3.1 体验计算机解决问题的过程
作者:XXX 时间:XXX
体验人工解决问题的过程
01
新课导入
实践探究:请同学们找出所有的水仙花数。
水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,水仙花数是指一个 3 位数,它的每个位上的数字的3次幂之和等于它本身,例如:13 + 53 + 33=153,153为水仙花数。
3.1.1 人工解决问题的过程
人工方式解决问题的过程:
我们可以从100开始,判断其每个位上的数字3次方之和是否等于它本身,如果等于,则把这个数记录下来,直到999为止。
900
描述
在现实生活中我们经常需要对数据进行统计、分析,当数据量不多时,我们可以采用人工方法来处理
100 :13 + 03 + 03=1 ≠ 100
101: 13 + 03 + 13=2 ≠ 101
153:13 + 53 + 33=153 = 153
…
999:93 + 93 + 93=2187 ≠ 999
…
×
×
×
√
当数据量很大,人工处理效率很低时,我们可以借助计算机,通过编写计算机程序解决问题。
体验计算机解决问题的过程
02
3.2.2 计算机解决问题的过程
分析问题需求、已知条件和需要解决的问题
设计算法
分析问题
编写程序
给出解决问题的详细方法和步骤
选择计算机语言工具,编写程序,实现算法
调试运行程序
输入程序,检查是否能按照预想的效果执行,修改程序和算法,直到符合要求
1.分析问题
寻找所有的水仙花数:
找出所有符合条件的三位数:
每一位上的数字的 3次幂的和等于它本身的数。
分析问题需求、已知条件和需要解决的问题
分析问题
2.设计算法
1、取一个三位数(从最小的100开始)。
2、取该三位数百位上的数值A。
3、取该三位数十位上的数值B。
4、取该三位数个位上的数值C。
5、计算A^3+B^3+C^3的值。
6、判断A^3+B^3+C^3是否等于它本身。
7、如果等于,则把这个数记录下来。
如果不等于,继续计算下一个三位数。
8、重复计算直到999为止。
2.设计算法
给出解决问题的详细方法和步骤
3.编写程序
//三位数m从100开始,直到999结束
//计算三位数m的百位数字a
//计算三位数m的百位数字b
//计算三位数m的百位数字c
//判断这个三位数每一位上的数的三次方之和是否等于它本身
//如果等于,则输出这个三位数。
利用Python语言等编写程序
for m in range(100,1000):
a=m//100
b=(m%100)//10
c=m%10
if a**3+b**3+c**3==m:
print(m)
编写程序
选择计算机语言工具,编写程序,实现算法
4.调试运行程序
把程序输入到计算机中,检查程序中的语法、标点。修改出错的信息,重新调试运行,最后检查程序运行的结果,直到程序功能符合设计为止。
注:计算机只能识别程序设计语言中所规定的语法规则错误。
不能检查逻辑错误和计算方法错误。
海龟编辑器
拓展练习——鸡兔同笼问题
假设一个笼子里有若干只鸡和若干只兔,共有头30个,脚86只,求鸡兔各有多少只?
解:设 笼子中有x只鸡,y只兔
由题意得:
x+y=30
2x+4y=86
答:笼子中有17只鸡,13只兔。
x= 17
y= 13
将①式代入②式,计算得
如果需要重复算10000道鸡兔同笼问题,该怎么办呢?
x=30-y
x+2y=43
利用计算机解决鸡兔同笼问题
根据输入的头和脚的数量计算并输出笼子中鸡和兔的数量。
1.分析问题
1.输入头的数量
2.输入脚的数量
3.根据头和脚的数量计算兔的数量
4.计算鸡的数量
5.输出鸡和兔的数量
2.设计算法
利用计算机解决鸡兔同笼问题
tou=int(input('请输入头的数量:'))
jiao=int(input('请输入脚的数量:'))
ji=(tou*4-jiao)/2
tu=tou-ji
print('鸡有%d只'%ji,'兔有%d只'%tu)
3.编写程序
4.调试运行程序
Python
课后作业
1.请写出求解6x+5y+4z=50的正整数解的个数t的算法。
单击此处添加副标题内容
谢谢观看!
$$