课件编号20219625

项目挑战: 口算批改 课件(17张PPT)

日期:2024-05-20 科目:信息技术 类型:高中课件 查看:72次 大小:20222596Byte 来源:二一课件通
预览图 1/7
项目,挑战,口算,批改,课件,17张
  • cover
(课件网) 项目挑战:口算批改 单击此处添加副标题 项目挑战:口算批改 为了帮助小学生检查口算作业,我们计划开发一款“口算批改”APP,以提高口算批改的效率。该程序的基本设想是:将手机对着作业本拍照,利用OCR(光学字符识别)技术,从图片中识别出算式,然后逐一计算,判断答案是否正确。 知识回顾 后缀表达式计算 def op_js(n,m,op): s=0 if op=='*': s=n*m elif op=='/': s=n/m elif op=='+': s=n+m elif op=='-': s=n-m return s ss=[‘6’,’7’,’8’,’5’,’-’,’*’,’+’] stack=[ ] for i in ① : if i in '+-*/': n2=stack.pop() n1=stack.pop() stack.append( ② ) else: stack.append(int(i)) print(‘结果为:’+ ③ ) op_js(n1,n2,i) str(stack[0]) ss 是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间(例:3 + 4)。 与前缀或后缀不同的是,中缀表达式中括号是必需的。还需要考虑算数运算符的优先级。 中缀表达式 知识链接 探索新知———中缀转后缀 中缀表达式 后缀表达式 6+7-8 6 7 + 8 - 6+7*8-5 6 7 8 * + 5 - 6+7*(8-5) 6 7 8 5 - * + 1.转换前后,数字的顺序有无改变? 2.转换前后,运算符的顺序有无改变? 3.可以用什么数据结构 来处理运算符? 没有发生改变 发生改变 栈结构 ①创建一个符号栈ops,用来暂存运算符 ops=[] ②创建一个列表exp,用来存放后缀表达式 exp=[] 中缀转后———抽象与建模 活动一:同级表达式转换 活动二:不同级表达式转换 活动三:小括号表达式转换 中缀转后缀 活动一:同级表达式转换 取到运算符时,该进行什么判断 中缀转后———设计算法 栈为空,入栈 栈不为空,栈顶元素出栈,再入栈 s='6+7-8' ops=[] exp=[] for ch in s: if '0'<=ch<='9': _____①_____ else: while len(ops)!=0: op= ____②____ exp.append(op) else: _____③_____ while ops: op=ops.pop() exp.append(op) print(exp) exp.append(ch) ops.pop() ops.append(ch) 活动一:同级表达式转换 不同优先级的运算符如何出入ops栈 如何表达运算符的优先级 使用字典来表示运算符的优先级 活动二:不同级表达式转换 中缀转后———设计算法 优先级高的先计算,先出栈 ①栈为空,入栈 ②当前优先级>栈顶元素优先级,直接入栈 ③当前优先级<=栈顶元素优先级,栈顶元素出栈 活动二:不同级表达式转换 s='6+7*8-5’ _____ ……… while len(ops)!=0: op=ops.pop() if ops_rules[ch]>ops_rules[op]: ops.append(op) ops.append(ch) break else: exp.append(op) else: ops.append(ch) ……… ops_rules={'+':1,'-':1,'*':2,'/':2} s='6+7-8' ops=[];exp=[] for ch in s: if '0'<=ch<='9': exp.append(ch) else: while len(ops)!=0: op=ops.pop() exp.append(op) else: ops.append(ch) while ops: op=ops.pop() exp.append(op) print(exp) 若取到’(‘,如何存储 若取到’)’,该如何处理 活动三:小括号表达式转换 中缀转后———设计算法 直接入栈 ops栈顶元素依次出栈, 直到取到“(“ s='6+7*(8-5)’ ……… for ch in s: if '0'<=ch<='9': exp.append(ch) elif _____①_____: while len(ops)!=0: op=ops.pop() if _____②_____ ops_rules[op]

~~ 您好,已阅读到文档的结尾了 ~~