教学设计 课程基本信息 课题 栈的应用(第十课时) 教学目标 1.对于给定的问题,能自觉、主动地寻求恰当的方式来获取与处理信息。 2.根据实际任务的需要,恰当地选择数据结构,存储问题解决中的各种数据。 3.在解决问题的过程中,界定问题、抽象特征、建立模型,运用合理的算法形成解决问题的方案,并用某种程序语言编程实现。 教学内容 教学重点: 厘请加减乘除括号等运算符号的优先级处理 教学难点: 1.加减乘除括号等运算符号的优先级的程序实现。 2.结合运算符号的优先级,计算算式的程序实现。 教学过程 【项目情境】为了帮助小学生检查口算作业,设计了“口算批改”程序,根据识别出来的算式,逐一计算,检验算式的正确性,并显示计算结果是否正确。 【项目任务】 分析项目,可以分解为以下三个项目: 1.将口算图片转化为文本 2.处理每一个算式,计算算式的正确答案 3.输出判定结果 【项目任务第一课时】第1个项目在第一个课时已经完成。主要解决了: 如何提取算式:以字符串读入,先找出等号,等号左边是算式,等号右边是输入的结果 如何提取算式的数字与运算符:分离算式中的数字和运算符。 数字可能有多位,所以需要循环取出数字, 运算符只有一位,只需逐位取出,取出后存入列表中。 程序实现: 【项目任务第二课时】本课时为本视频的重点。 1.抽象建模: 思考3:计算机如何处理加、减、乘、除、括号等运算符的优先级问题? 可以用字典来定义每个运算符的优先级,或者通过分支语句实现 思考4:结合运算符的优先级,如何算得计算式的值? 先将表达式转为逆波兰表达式,再求得逆波兰表达式的值 设计意图:引导学生思考如何处理运算符的优先级,以及如何计算计算式的值,建立模型,为下一步的算法设计做铺垫。 2.转为逆波兰表达式(有括号)的设计算法(回顾): 设计意图:复习前知,为了让本节课进行的更加顺利。 3. 转为逆波兰表达式(有括号)的程序填空: 设计意图:考查学生对入栈的几种情况是否理解。 4.分享转为逆波兰表达式的程序实现 设计意图:在分享交流中学习。 5.计算逆波兰表达式的值的设计算法: (1)、从左往右遍历逆波兰表达式 ①若取到数字进栈 ②若取到运算符则取出栈顶的两个数字进行运算,并将运算后将结果放入栈顶 (2)、循环遍历到最后,栈顶的值即为结果 (3)、根据逆波兰表达式计算得到等号左边算式的值,与等号右边的结果进行比较 ①若相等,则输出正确 ②若不相等,则输出错误 设计意图:厘请算法思路 6. 求算术表达式值的程序填空:主要设计到算法设计中第(4)点,第(5)点的程序填空。 设计意图:考查学生对符号处理的过程。 7.分享求解算式值的程序实现 设计意图:在分享交流中学习。 8.项目评价 ... ...
~~ 您好,已阅读到文档的结尾了 ~~