终身会员
搜索
    上传资料 赚现金
    高中信息技术学考复习第3章算法的程序实现课时13解析算法与枚举算法课件
    立即下载
    加入资料篮
    高中信息技术学考复习第3章算法的程序实现课时13解析算法与枚举算法课件01
    高中信息技术学考复习第3章算法的程序实现课时13解析算法与枚举算法课件02
    高中信息技术学考复习第3章算法的程序实现课时13解析算法与枚举算法课件03
    高中信息技术学考复习第3章算法的程序实现课时13解析算法与枚举算法课件04
    高中信息技术学考复习第3章算法的程序实现课时13解析算法与枚举算法课件05
    高中信息技术学考复习第3章算法的程序实现课时13解析算法与枚举算法课件06
    高中信息技术学考复习第3章算法的程序实现课时13解析算法与枚举算法课件07
    高中信息技术学考复习第3章算法的程序实现课时13解析算法与枚举算法课件08
    还剩19页未读, 继续阅读
    下载需要10学贝 1学贝=0.1元
    使用下载券免费下载
    加入资料篮
    立即下载

    高中信息技术学考复习第3章算法的程序实现课时13解析算法与枚举算法课件

    展开
    这是一份高中信息技术学考复习第3章算法的程序实现课时13解析算法与枚举算法课件,共27页。PPT课件主要包含了课标梳理·微知著,教材研析·固基础,问题的前提条件,要求的解,flagTrue,Text,Mlen等内容,欢迎下载使用。

    1.基本思想根据问题的前提条件与所求结果之间的关系,找出求解问题的数学表达式,并通过表达式的计算来实现问题的求解。2.解题思路
    t=flat(input('请输入时间:'))v0=flat(input('请输入初速度:'))a=flat(input('请输入加速度:'))s=v0? t+a? t? ? 2/2print('位移为',s,'米')
    典例1 编写Pythn程序,实现如下功能:输入直角三角形2条直角边长,应用勾股定理求出斜边长并输出,程序代码如下。在划线处填上合适的代码。
    a=flat(input('请输入直角三角形直角\边a长:'))b=flat(input('请输入直角三角形直角\边b长:'))print('斜边长为',________________________________)
    (a * * 2+b * * 2) * * 0.5
    1.基本思想罗列出所有可能的解,不能遗漏,不能重复,并对每个可能的解进行判断,是正确的解采纳(输出、计数……),不是的抛弃。2.语法结构? 循环:罗列出所有可能的解? 分支:判断是否是正确的解(循环体中通过if后的条件进行判断)
    3.范例:输出所有个位上是1,同时又是7的倍数三位正整数,并将满足条件的数的个数输出(如图1所示)。
    4.优化(1)为了提高效率,要使罗列的解的范围尽可能小 需要判断的次数(循环次数)少。(2)范例:如图2所示。
    典例2 编写Pythn程序,实现如下功能:输出所有正的2位奇妙平方数(某数的平方与其逆序数的平方互为逆序数,则该数为奇妙平方数,例如122=144, 212=441,则12为奇妙平方数)。程序代码如下。在划线处填上合适的代码。
    #自定义函数cp用于检测参数n1和n2是否互逆def cp(n1,n2):flag=Falsen1=str(n1)
    n2=str(n2)if len(n1)==len(n2):fr i in range(len(n1)):if ①________________________________: flag=Truebreakelse:②________________return flag#以下fr循环遍历所有2位正整数c=0fr i in range(10,100,1):b=0a=i
    n1[i]!=n2[len(n1)-1-i]
    #以下while循环用于获取i当前遍历到的2位正整数的逆序数while a>0: b=b? 10+a % 10 a=a//10if ③____________________________________________ and i!=b: print(str(i)+'的平方:'+str(i? ? 2)+'<——>'+str(b)+'的平方:'+str(b**2)) c+=1print('共有'+str(c)+'个2位奇妙平方数')
    cp(i**2,b**2)==False(或者nt cp(i**2,b**2))
    解析 ①自定义函数cp用于判断参数n1和n2是否互逆,在两数位数一样的前提下,从n1中左起和n2中右起取的数对只要有1对不相等,就不为互逆,终止判断,若所有数对都相等,则n1和n2互逆。②标志位flag初值为False代表开始判断前默认互逆,若n1和n2的数字个数不同,肯定不互逆,将标志位的值改为True。③调用cp函数判断数i的平方和它逆序数b的平方是否互逆,如果函数返回结果为False,则代表二者的平方数互逆,若同时满足i和其逆序数b不相等,则可判定i为奇妙平方数。
    典例3 (2022浙江7月学考)查找与替换。从键盘上分别输入要查找和替换的字符串,对文本文件进行查找与替换,替换后保存到新的文本文件中。完成查找与替换功能的思路是:首先可从待检索文本文件“in.txt”逐行读取文本内容到列表text,然后从键盘上输入查找的字符串key和替换的字符串new,对列表text中的元素逐个进行查找并替换,结果保存到列表result,最后将result写入文件“ut.txt”。
    (1)主程序。text=readfile(″in.txt″)#读入文件key=input(″请输入要查找的字符串:″)new=input(″请输入要替换的字符串:″)result=[]fr line in text:newline=replace(key,new,line)#替换result.append(newline)#添加到列表writefile(″ut.txt″,result)#写入文件该程序段采用的算法是____(单选,填字母:A.解析算法/B.枚举算法)。 
    (2)读写文本文件,如下的readfile函数,逐行读取文本文件数据存入列表并返回。请在划线处填入合适的代码。def readfile(filename):f=pen(″filename″,encding=″utf-8″) #打开文件text=[]line=f.readline() #从文件中读取一行while line: text.append(line) #添加到列表 line=f.readline()f.clse()return ________________def writefile(filename,text): #将text写入filename文件,代码略
    (3)查找字符串,如下的findstr函数,在字符串line中从begin位置开始查找key在字符串line中的位置,请在划线处填入合适的代码。def findstr(key,line,begin):fr i in range(begin,len(line)-len\(key)+1):if________________________________: return ireturn -1
    line[i:i+len(key)]==key
    (4)替换字符串。如下的replace函数,在字符串line中检索所有的字符串key并替换为new,请在划线处填入合适的代码。def replace(key,new,line):begin=0while beginbreak(答案不唯一)
    解析 (1)枚举算法的基本思想是把问题所有可能的解一一列举,然后判断每一个列举出的可能解是否为正确的解。在枚举算法的程序实现中,逐一列举出每一个可能解,判断其是否为正确解的过程可采用循环结构来实现。而在利用问题提供的约束条件筛选、判断解的过程中则需要用到分支结构。从题干“……逐行读取文本内容到列表text……”,推断出(1)答案为B。(2)根据题干“逐行读取文本文件数据存入列表并返回”,观察列表相关语句“text=[]”和“text.append(line)”,答案为text。
    (3)自定义函数findstr的功能是在字符串line中查找key,如果找到了返回第一次出现key的索引,如果不存在key,返回-1。从语句“fr i in range(begin,len(line)-len(key)+1)”看出fr循环语句遍历索引,因此从line中选择从i开始长度为len(key)的字符,和key进行比较,答案为line[i:i+len(key)]==key。(4)自定义函数replace的功能是在字符串line中检索所有的字符串key并替换为new,程序使用了while循环从begin开始遍历字符串line,调用自定义函数findstr在字符串line中查找key,返回值为ps,ps==-1成立,说明当前行不存在key,直接跳出循环或终止循环即可。答案可以是break或begin=len(line)-len(key)+1或begin+=len(line)或begin=len(line),能跳出循环的语句均可。
    典例4 (2023浙江7月学考)小张收集了章回体小说《三国演义》的第1章回至第120章回的120个文件,其文件名依次sg1.txt、sg2.txt、…、sg120.txt。他编写Pythn程序,对书中人物同时出现的情况进行简单分析,人物及其别名(如“孟德”是“曹操”的别名)作同一人处理。运行程序,用户输入“曹操|孟德 刘备|玄德”,输出结果如图所示,图中[11,28]表示曹操,刘备在第11章回至第28章回同时出现。
    人物同时出现的章回数为:72,章回依次为:[[1,2],[5,6],[11,28],[31,45],[47,52],[54,58],[60,74],[77,82],[106,106],[119,120]]人物同时出现的最大连续章回数是:18
    请回答下列问题:(1)观察第12题图,可知曹操与刘备在第36章回中_____(单选,填字母:A.同时/B.没有同时)出现。 主程序如下:‴输入姓名、别名,姓名存入列表names,如names=[″曹操″,″刘备″]统计各个章回中,列表names中每个人物(含别名)出现的次数,结果存入字典ttal,如ttal={″曹操″:[2,5,7,…],″刘备″:[50,47,0,…]},表示曹操在第1,2,3,…章回分别出现了2,5,7,…次代码略‴num,result=calculate(ttal)mlen=getMaxLen(result)print(″人物同时出现的章回数为:″,\num,″,章回依次为:″)print(result)print(″人物同时出现的最大连续章回数\是:″,mlen)
    (2)定义函数calculate(ttal),功能是统计列表names中人物同时出现的章回数,以及同时出现的章回,结果示例如第12题图所示,请在划线处填入合适的代码。def calculate(ttal):num,length=0,0 #num保存120个章回中人物同时出现的章回数result=[] #result[i][0]、result[i][1]分别存储第i+1段章回的起、止章回号k=-1fr i in range(0,120):   if allIn(ttal,i): _________________________ if length==0:
    num+=1(或num=num+1)
    begin=i+1 result.append([begin,begin]) #在列表result末尾添加一个元素  k+=1 length+=1 result[k][1]=i+1  else: length=0 return num,result
    (3)定义函数getMaxLen(result),功能是统计最大连续章回数,请在划线处填入合适的代码。def getMaxLen(result):mlen=0fr item in result:t=item[1]-item[0]+1if t>________________:  mlen=treturn mlen
    (4)定义函数allIn(ttal,cn),功能是判断列表names中人物是否同时出现在cn章回中,若同时出现,返回True,请在划线处填入合适的代码。def allIn(ttal,cn):fr item in names:  if ________________________:  return False  return True
    ttal[item][cn]==0
    相关课件

    高中信息技术学考复习必修1数据与计算第四章课时2编程处理数据教学课件: 这是一份高中信息技术学考复习必修1数据与计算第四章课时2编程处理数据教学课件,共60页。PPT课件主要包含了答案C,常用属性,常用函数等内容,欢迎下载使用。

    高中信息技术学考复习必修1数据与计算第一章第三节课时3编码(2)教学课件: 这是一份高中信息技术学考复习必修1数据与计算第一章第三节课时3编码(2)教学课件,共18页。PPT课件主要包含了答案156,答案15等内容,欢迎下载使用。

    高中信息技术学考复习必修1数据与计算第一章第三节课时2编码(1)教学课件: 这是一份高中信息技术学考复习必修1数据与计算第一章第三节课时2编码(1)教学课件,共14页。PPT课件主要包含了·范例如下图所示等内容,欢迎下载使用。

    免费资料下载额度不足,请先充值

    每充值一元即可获得5份免费资料下载额度

    今日免费资料下载份数已用完,请明天再来。

    充值学贝或者加入云校通,全网资料任意下。

    提示

    您所在的“深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载 10 份资料 (今日还可下载 0 份),请取消部分资料后重试或选择从个人账户扣费下载。

    您所在的“深深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载10份资料,您的当日额度已用完,请明天再来,或选择从个人账户扣费下载。

    您所在的“深圳市第一中学”云校通余额已不足,请提醒校管理员续费或选择从个人账户扣费下载。

    重新选择
    明天再来
    个人账户下载
    下载确认
    您当前为教习网VIP用户,下载已享8.5折优惠
    您当前为云校通用户,下载免费
    下载需要:
    本次下载:免费
    账户余额:0 学贝
    首次下载后60天内可免费重复下载
    立即下载
    即将下载:资料
    资料售价:学贝 账户剩余:学贝
    选择教习网的4大理由
    • 更专业
      地区版本全覆盖, 同步最新教材, 公开课⾸选;1200+名校合作, 5600+⼀线名师供稿
    • 更丰富
      涵盖课件/教案/试卷/素材等各种教学资源;900万+优选资源 ⽇更新5000+
    • 更便捷
      课件/教案/试卷配套, 打包下载;手机/电脑随时随地浏览;⽆⽔印, 下载即可⽤
    • 真低价
      超⾼性价⽐, 让优质资源普惠更多师⽣
    VIP权益介绍
    • 充值学贝下载 本单免费 90%的用户选择
    • 扫码直接下载
    元开通VIP,立享充值加送10%学贝及全站85折下载
    您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      充值到账1学贝=0.1元
      0学贝
      本次充值学贝
      0学贝
      VIP充值赠送
      0学贝
      下载消耗
      0学贝
      资料原价
      100学贝
      VIP下载优惠
      0学贝
      0学贝
      下载后剩余学贝永久有效
      0学贝
      • 微信
      • 支付宝
      支付:¥
      元开通VIP,立享充值加送10%学贝及全站85折下载
      您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      扫码支付0直接下载
      • 微信
      • 支付宝
      微信扫码支付
      充值学贝下载,立省60% 充值学贝下载,本次下载免费
        下载成功

        Ctrl + Shift + J 查看文件保存位置

        若下载不成功,可重新下载,或查看 资料下载帮助

        本资源来自成套资源

        更多精品资料

        正在打包资料,请稍候…

        预计需要约10秒钟,请勿关闭页面

        服务器繁忙,打包失败

        请联系右侧的在线客服解决

        单次下载文件已超2GB,请分批下载

        请单份下载或分批下载

        支付后60天内可免费重复下载

        我知道了
        正在提交订单

        欢迎来到教习网

        • 900万优选资源,让备课更轻松
        • 600万优选试题,支持自由组卷
        • 高质量可编辑,日均更新2000+
        • 百万教师选择,专业更值得信赖
        微信扫码注册
        qrcode
        二维码已过期
        刷新

        微信扫码,快速注册

        手机号注册
        手机号码

        手机号格式错误

        手机验证码 获取验证码

        手机验证码已经成功发送,5分钟内有效

        设置密码

        6-20个字符,数字、字母或符号

        注册即视为同意教习网「注册协议」「隐私条款」
        QQ注册
        手机号注册
        微信注册

        注册成功

        下载确认

        下载需要:0 张下载券

        账户可用:0 张下载券

        立即下载
        使用学贝下载
        账户可用下载券不足,请取消部分资料或者使用学贝继续下载 学贝支付

        如何免费获得下载券?

        加入教习网教师福利群,群内会不定期免费赠送下载券及各种教学资源, 立即入群

        返回
        顶部
        Baidu
        map