中职电子与信息:课时8 解析算法及程序实现.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《中职电子与信息:课时8 解析算法及程序实现.docx》由会员分享,可在线阅读,更多相关《中职电子与信息:课时8 解析算法及程序实现.docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课时8解析算法及程序实现课时目标.掌握解析算法的基本思想。1 .掌握使用解析算法解决实际问题的基本方法,并通过编写程序实现问题求解。-知识梳理”课前自主预习 一、解析算法的基本思想解析算法的基本思想是指根据问题的前提条件与所求结果之间的关系,找出求解 问题的数学表达式,并通过表达式的计算来实现问题的求解。 二 解析算法解题的基本思路.建立正确的数学模型,即得出正确的数学代数式。1 .将数学代数式转化为Python式子。三 解析算法程序实现的步骤.运用解析算法分析问题,寻找问题中各要素之间的关系,用数学表达式表示它 们的关系。1 .写出解决问题的解析步骤,编写程序实现,通过运行程序求得问题的正确
2、解。-Q例题精析.课堂重难突破由下列程序的功能是将十进制数整数转换为二进制数。程序运行时,输入一 个十进制数整数,输出该十进制数对应的二进制数。程序运行效果如下图所示。请输入一个十进制整数:1。0十进制数:100转换为二进制数为:1100100 实现上述功能程序如下,请回答下列问题:n=int(input(请输入一个十进制整数:”)y = xS = while:r=y%2y = y/2程序运行时,输入10D,输出的结果为 o(2)请在程序划线处填入合适的代码。划线处应填入的语句为:; 划线处应填入的语句为:。 答案(1)1ODH-269D(2)ans = ans* 16 + ord(c) or
3、d(A) +10 或 ans = ans* 16 + ord(c) 55 flag = False解析(1)输入十六进制数为“10D”,十六进数10D转换为十进制数为269,因此 输出的结果为:10DH-269D。(2)程序处表示十六进制位置上是字母的情况, 则将该字母转换为对应的数值,可用该字母的ASCII减去字母“A”的ASCII值再 加上10,大写字母A的ASCII值为65,也可直接写为ord(c)55,因此处应 填入的代码为 ans=ans* 16+ord(c)ord( A )+10 或 ans=ans* 16+ord(c) 55;如果输入的不是数字或不是“AF”的大写字母,则输入有误
4、,最后根据 flag的值来输出结果,因此当输入有误时,将flag赋值为False,故处应填入 的语句为flag=FalseoQ)提升5.某仓库物品代码格式为“XXXXXXXXXY,其中“X”和“Y”均为0至 之间的数字,“Y”为校验码。校验码由前面9个X计算得到,计算方法为:从左 边开始,第1个数字乘以1加上第2个数字乘以2依此类推,直到加上第9 个数字乘以9,将该结果除以10,所得余数即为校验码。编写一个根据校验码校验物品代码的程序,功能如下:输入物品代码,如果输入 的校验码与计算所得的校验码一致,则输出“校验通过”,否则输出“校验不通 过”。程序运行效果如下图所示。请输入条形码信息:110
5、1 100002 校验通过实现上述功能的程序如下,请回答下列问题:s=input(输入物品代码:)Lista=for i in range(0, 13):if :Lista.append(int(si) suma=Ofor i in range(0? 9):.check_new=suma % 10check_old=Lista9if print(校验不通过”)else:print(检验通过)(1)如输入的商品代码为“3101 100200”,则输出的信息为。 (2)请在程序划线处填入合适的代码。划线处应填入的语句为:; 划线处应填入的语句为: ; 划线处应填入的语句为:。 答案(1)校验通过(
6、2)0 = 5国=9或0 = 5国 and si = 9 suma+=Listai*(i+1)或 suma=suma+Listai*(i+1) check_new =check_old解析本题采用的算法是:首先将物品代码中的数字提取出来,并存储在列表 Lista,然后按照规则计算出校验码,最后将计算得到的校验码与输入的检验码比 较,输出结果。(1)根据规则计算可得校验码为0,与输入的校验码相等,因此输 出的信息为“校验通过”。(2)处代码表示当前字符串元素si是否为数字字 符,因此应填入的代码为 0 = si=9或 0 = siandsi0或y =0s = str(r)+s解析十进制数转换为二
7、进制数的方法为:除2取余,直到商为0,最后将余数 从下往上拼接。(1)十进制数60转换为二进制数为111100。(2)除2取余,直到商 为0,因此循环条件为y0或y =0;先得到的余数拼接在字符串s的最后, 最后得到的余数拼接在字符s的最前面,因为r是整数,因此要先将r转换为字 符型,然后拼接在字符串s的前面,故处代码为s = str(r)+s。【变式训练】模拟一个简易计算器,其功能是:输入两个数和一个运算符(加、 减、乘、除),进行算术运算并输出运算结果。程序运行效果如下图所示。输入第一个运算数:12输入第二个运算数:6输入运算符:*12.0*6.0=72.0用Python语言编写的程序如下
8、,请在划线处填入合适的代码,实现程序功能。 a=float(input(输入第一个运算数:)b=float(input(输入第二个运算数:)ch=input(输入运算符:”)if :ans = a+bprint(a, b, =ans)elif ch=一:print(a, 一,b, = ans)elif ch = = *:ans = a*bprint(a, b, = ans)elif ch= = /:if 一 :ans = a/bprint(a, b, = ans)else:print(除数不能为0)else:print(输入的运算符不正确!)当输入的第一个数为4,输入的运算符为“”,输入的第二
9、个数为“0”,则程序 输出的运算结果是()A.0B.4C.除数不能为0D.输入的运算符不正确!答案 ch= = +ans = ab b =0 D解析(1)处表示运算符为“ + ”运算的情况,因此处代码为ch= = + ; 处代码表示计算“一”运算的结果,运算结果存储在变量ans中,因此处代 码为ans = a-b;做“/”运算时,还需满足分母不能为0,因此处代码为b =0。 (2)由于输入的运算符“”不符合题中要求,因此程序执行时出现“输入的运算符 不正确! ”的信息,答案为D。霞 角谷猜想:任意一个大于1的自然数n,进行如下运算:若n为奇数,则n 的值替换为3n+l,若n是偶数时,则n变为原
10、来的一半,经过若干次计算后, 该数最终必为lo编写程序,输入一个大于1的自然数,计算从该数变为1的计 算次数,并输出计算过程及计算的次数。程序运行效果如下图所示。输入一个大于1的自然数:100100-50f 25-76-38-19-58-29-88-44-22-11-34fl7-52-26-13- 40f 20f 10f 5 - 16- 8 - 4f 2fl计算次数为:25(1)实现上述功能程序如下,请在程序划线处填入合适的代码。n = int(input(输入一个大于1的自然数:)count=0print(n, end =while:count=count+lifn%2= = l:else:
11、n = n/2if n= = l:print(n, n)else:print(n, 一 ,end =)print(计算次数为:+)(2)当输入的n为3,则输出的计算次数为 o (填数字)答案(1)n =1 或 nl n = 3*n+lstr(count) (2)7解析(1)当n不等于1时,则按照题目规则进行变换,直到n变为1为止,因 此循环条件为n =1或nl;条件n%2= = l表示当前整数n为奇数时的情况, 根据题意将n变为3n+l,因此处代码为n=3*n+l;用变量count存储计算 的次数,由于print语句输出时使用了 “ + ”号,因此需使用str函数将count转 换为字符型。(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 信息 课时 解析 算法 程序 实现
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内