简单算法及其程序实现:枚举算法及其程序实现(课件)-2024-2025学年《信息技术》高中·必修 1 数据与计算(浙教版)_第1页
简单算法及其程序实现:枚举算法及其程序实现(课件)-2024-2025学年《信息技术》高中·必修 1 数据与计算(浙教版)_第2页
简单算法及其程序实现:枚举算法及其程序实现(课件)-2024-2025学年《信息技术》高中·必修 1 数据与计算(浙教版)_第3页
简单算法及其程序实现:枚举算法及其程序实现(课件)-2024-2025学年《信息技术》高中·必修 1 数据与计算(浙教版)_第4页
简单算法及其程序实现:枚举算法及其程序实现(课件)-2024-2025学年《信息技术》高中·必修 1 数据与计算(浙教版)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.3简单算法及其程序实现:枚举算法及其程序实现一、认识枚举算法0...56789思考.这位考生的准考证号是多少?你是如何识别的?扫描仪又是如何识别的?9认识枚举解决实际问题总结练习巩固课后研究0...56789扫描仪识别准考证号方法:逐一扫描0-9这10个填涂点,逐个检验填涂点是否被填涂认识枚举解决实际问题总结练习巩固课后研究这种把问题所有可能解逐一列举,然后逐个检验这些是否为正确解的方法被称之为枚举算法。日常生活中有很多问题可以用枚举算法来解决。解题方法:①逐一列举[1,x-1]范围内的整数②若x能被其整除,那么该数就是x的因子。由于x无法被超过x/2的整数整除,枚举的范围可以缩小至[1,x/2],减少枚举次数将提高解决问题的效率。在设计枚举算法时,既不能遗漏任何正确解,又要尽可能的缩小列举范围。认识枚举解决实际问题总结练习巩固课后研究例如:求解整数x的所有因子0...56789只要当黑色像素的比例到达一定标准(>=64%),计算机就识别为已填涂。逐一扫描每个像素点逐个检验像素点是否为黑色思考.扫描仪如何判断该点是否被填涂?认识枚举解决实际问题总结练习巩固课后研究二、用枚举算法解决实际问题抽象建模设计算法编写程序调试运行提炼核心要素建立计算模型像素颜色统计个数像素个数Graycounti课堂练习1:试着建立计算模型逐一列举像素颜色,逐个判断是否黑色,并统计个数一个填涂点(n个像素)的填涂认识枚举解决实际问题总结练习巩固课后研究抽象建模设计算法编写程序调试运行逐一列举像素颜色,逐个判断是否黑色,并统计个数提炼核心要素建立计算模型像素颜色统计个数像素个数Graycountis=0s=1Gray[i]≥132Gray[i]<132

认识枚举解决实际问题总结练习巩固课后研究循环结构逐一列举分支结构逐个判断抽象建模设计算法编写程序调试运行输入处理输出count=count+1N输出count②Y①i<=n?count=0,i=1获取像素信息YN③④课堂练习2:补充完善流程图Gray[i]<132i=i+1认识枚举解决实际问题总结练习巩固课后研究编写程序操作练习1foriinGray:Gray=[47,156,132,89,140]ifi<132:count=count+1print(count)count=0逐一列举逐个检验N输出counti=i+1YGray<132i<=n?count=0,i=1获取像素信息YNcount=count+1认识枚举解决实际问题总结练习巩固课后研究N输出counti=i+1YGray<132i<=n?count=0,i=1获取像素信息YNcount=count+1whilei<=len(Gray):ifGray[i]<132:操作练习1Gray=[47,156,132,89,140]count=0i=0count=count+1i=i+1print(count)逐一列举逐个检验认识枚举解决实际问题总结练习巩固课后研究一般答题卡一个填涂点的像素往往多达上百个,老师将一个填涂点的300个像素的RGB值存在“RGB.TXT”文件中,请编写程序,判断该填涂点是否被填涂。R

GB思考:1.如何读取“RGB.TXT”文件2.将像素的RGB颜色转换为灰度操作练习2认识枚举解决实际问题总结练习巩固课后研究思考:1.如何读取“RGB.TXT”文件操作练习2自主学习:阅读教材P93拓展链接“Python的文件读写操作”f=open("RGB.txt",'r')#以读的方式打开"RGB.txt"文件forlineinf.readlines():#调用readline()每次读取一行内容print(line.strip())

#删除末尾换行符认识枚举解决实际问题总结练习巩固课后研究思考:2.将像素的RGB颜色转换为灰度编写程序操作练习2回顾前知:defbw(R,G,B):Gray=0.299*R+0.587*G+0.114*BifGray<132:color="黑色"认识枚举解决实际问题总结练习巩固课后研究line=f.readline()

#读取第一行数据

whileline:

line=line.split()

#去除空白字符,并转换位列表

R,G,B=map(int,line)

line=f.readline()

#读取下一行数据逐一列举操作练习2defbw(R,G,B):

#判断像素是否黑色Gray=0.299*R+0.587*G+0.114*BifGray<132:color="黑色"returncolorf=open("RGB.txt",'r')

#以读取的方式打开文件count=0

count=count+1ifcount>=300*0.64:#判断填涂点是否填涂print("已填涂")else:print("未填涂")

ifbw(R,G,B)=="黑色":

#利用内建函数判断是否黑色像素逐个检验认识枚举解决实际问题总结练习巩固课后研究三、课堂小结核心思想逐一列举逐个检验程序实现ifGray<132:color="黑色"Gray=[......]

foriinGray:流程图框架开始结束输入输出循环结构分支结构适合用枚举算法列举的可能解是有限范围的有规范且明确的正确解认识枚举解决实际问题总结练习巩固课后研究四、练习巩固综合练习:水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。例如:153=13+53+33编写程序,找出所有水仙花数抽象建模设计算法编写程序调试运行提炼核心要素建立计算模型认识枚举解决实际问题总结练习巩固课后研究kxyz输入的三位数百位十位个位TrueFalse输出kk=x3+y3+z3(100<=K<=999)抽象建模设计算法编写程序调试运行k=100x=k/100y=k//10%10z=k%10k<=999k=x3+y3+z3输出kk=k+1开始结束forkinrange(100,999):x=k//100

#提取k的百位数y=k//10%10

#提取k的十位数z=k%10

#提取k的个位数i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论