|课件下载
终身会员
搜索
    上传资料 赚现金
    项目七 探究计算机中算术表达式的计算——了解二叉树及其基本操作(第一课时)课件+教案
    立即下载
    加入资料篮
    资料中包含下列文件,点击文件名可预览资料内容
    • 课件
      项目七(第一课时).pptx
    • 项目七(第一课时).doc
    项目七 探究计算机中算术表达式的计算——了解二叉树及其基本操作(第一课时)课件+教案01
    项目七 探究计算机中算术表达式的计算——了解二叉树及其基本操作(第一课时)课件+教案02
    项目七 探究计算机中算术表达式的计算——了解二叉树及其基本操作(第一课时)课件+教案03
    项目七 探究计算机中算术表达式的计算——了解二叉树及其基本操作(第一课时)课件+教案04
    项目七 探究计算机中算术表达式的计算——了解二叉树及其基本操作(第一课时)课件+教案05
    项目七 探究计算机中算术表达式的计算——了解二叉树及其基本操作(第一课时)课件+教案06
    项目七 探究计算机中算术表达式的计算——了解二叉树及其基本操作(第一课时)课件+教案07
    项目七 探究计算机中算术表达式的计算——了解二叉树及其基本操作(第一课时)课件+教案08
    项目七 探究计算机中算术表达式的计算——了解二叉树及其基本操作(第一课时)课件+教案01
    项目七 探究计算机中算术表达式的计算——了解二叉树及其基本操作(第一课时)课件+教案02
    项目七 探究计算机中算术表达式的计算——了解二叉树及其基本操作(第一课时)课件+教案03
    还剩22页未读, 继续阅读
    下载需要40学贝 1学贝=0.1元
    使用下载券免费下载
    加入资料篮
    立即下载

    高中信息技术1.探究计算机中算术表达式的计算原理优秀ppt课件

    展开
    这是一份高中信息技术1.探究计算机中算术表达式的计算原理优秀ppt课件,文件包含项目七第一课时pptx、项目七第一课时doc等2份课件配套教学资源,其中PPT共30页, 欢迎下载使用。

    第四单元 二叉树

    项目七 探究计算机中算术表达式的计算

    ——了解二叉树及其基本操作

    第一课时 探究计算机中算术表达式的计算原理

     

    教材分析

    本节的主要内容是探究计算机中算术表达式的计算原理。以探究计算机中算术表达式的计算原理为主线,整个项目分为探究计算机中算术表达式的计算原理、探究为何二叉树能将算术表达式转换为后缀表达式、构建二叉树三部分。本节课时是从问题在计算中输入计算式后,计算机是如何判断运算顺序并进行运算的呢导入,先通过举例分析后缀表达式的计算过程,说明计算机如何完成算术表达式的运算。在这一课时过程中,让学生逐步理解算术表达式的值是按运算符间优先级从高到低来计算的,这与四则运算的规则完全相同。通过这一项目学习过程,进一步培养学生的信息意识和计算思维。

    教学目标

    1.探究计算机中算术表达式的计算原理;

    2.理解什么是后缀表达式;

    3.培养学生的信息意识和计算思维能力。

    教学重点

    1.计算机中算术表达式的计算原理;

    2.理解后缀表达式;

    教学难点

    1.计算机中算术表达式的计算原理;

    2.培养学生的信息意识和计算思维能力。

    教学方法

    体验法、讲授法、讨论法、示例法

    教学准备

      计算机教室、多媒体设备、多媒体广播软件、教学课件等。

    教学过程

    一、新课导入

    日常生活中,人们经常要进行四则运算,如计算3×(4+5)-7,相信大家都知道该计算式正确的运算顺序,但是在计算机中输入这个计算式后(4-1),计算机是如何判断运算顺序并进行运算的呢?这样的计算式在计算机中称为算术表达式,书写为3*(4+5)7,须将其转换成方便计算机处理的表达式形式,并通过一定的算法来让计算机实现正确运算。

     

    二、探究计算机中算术表达式的计算原理

    算术表达式的值是按运算符间优先级从高到低来计算的,这与四则运算的规则完全相同。由于算术表达式的多样性和复杂性,人们很难设计很好的算法编程来求解任意表达式的值。

    在计算机中进行算术表达式的计算是通过栈来实现的。这一节首先讨论算术表达式的两种表示方法,即中缀表示法和后缀表示法,接着讨论后缀表达式求值的算法,最后讨论中缀表达式转换为后缀表达式的算法。
        1.算术表达式的两种表示
        通常书写的算术表达式是由操作数(又叫运算对象或运算量)和运算符以及改变运算次序的圆括号连接而成的式子。操作数可以是常量、变量和函数,同时还可以是表达式。运算符包括单目运算符和双目运算符两类,单目运算符只要求一个操作数,并被放在该操作数的前面,双目运算符要求有两个操作数,并被放在这两个操作数的中间。单目运算符为取正+和取负-,双目运算符有加+,-,*和除/等。为了简便起见,在我们的讨论中只考虑双目运算符。
        如对于一个算术表达式2+5*6,乘法运算符*的两个操作数是它两边的56;对于加法运算符+的两个操作数,一个是它前面的2,另一个是它后面的5*6的结果即30。我们把双目运算符出现在两个操作数中间的这种习惯表示叫做算术表达式的中缀表示,这种算术表达式被称为中缀算术表达式或中缀表达式。
        中缀表达式的计算比较复杂,它必须遵守以下三条规则:
        先计算括号内,后计算括号外;
        在无括号或同层括号内,先进行乘除运算,后进行加减运算,即乘除运算的优先级高于加减运算的优先级;
        同一优先级运算,从左向右依次进行。
        从这三条规则可以看出,在中缀表达式的计算过程中,既要考虑括号的作用,又要考虑运算符的优先级,还要考虑运算符出现的先后次序。因此,各运算符实际的运算次序往往同它们在表达式中出现的先后次序是不一致的,是不可预测的。当然凭直观判别一个中缀表达式中哪个运算符最先算,哪个次之,……,哪个最后算并不困难,但通过计算机处理就比较困难了,因为计算机只能一个字符一个字符地扫描,要想得到哪一个运算符先算,就必须对整个中缀表达式扫描一遍,一个中缀表达式中有多少个运算符,原则上就得扫描多少遍才能计算完毕,这样就太浪费时间了,显然是不可取的。
        那么,能否把中缀算术表达式转换成另一种形式的算术表达式,使计算简单化呢?回答是肯定的。波兰科学家卢卡谢维奇(Lukasiewicz)很早就提出了算术表达式的另一种表示,即后缀表示,又称逆波兰式,其定义是把运算符放在两个运算对象的后面。采用后缀表示的算术表达式被称为后缀算术表达式或后缀表达式。在后缀表达式中,不存在括号,也不存在优先级的差别,计算过程完全按照运算符出现的先后次序进行,整个计算过程仅需一遍扫描便可完成,显然比中缀表达式的计算要简单得多。

    例如,对于后缀表达式12!4!-!5!/,其中!字符表示成分之间的空格,因减法运算符在前,除法运算符在后,所以应先做减法,后做除法;减法的两个操作数是它前面的124,其中第一个数12是被减数,第二个数4是减数;除法的两个操作数是它前面的124的差(8)5,其中8是被除数,5是除数。
        中缀算术表达式转换成对应的后缀算术表达式的规则是:把每个运算符都移到它的两个运算对象的后面,然后删除掉所有的括号即可。
        例如,对于下列各中缀表达式:
        3/5+6
        16-9*(4+3)
        2*(x+y)/(1-x)
        (25+x)*(a*(a+b)+b)
        对应的后缀表达式分别为:
        3!5!/!6!+
        16!9!4!3!+!*!-
        2!x!y!+!*!1!x!-!/
        25!x!+!a!a!b!+!*!b!+!*

         2.后缀表达式求值的算法
        后缀表达式的求值比较简单,扫描一遍即可完成。它需要使用一个栈,假定用S表示,其元素类型应为操作数的类型,假定为浮点型float,用此栈存储后缀表达式中的操作数、计算过程中的中间结果以及最后结果。假定一个后缀算术表达式以字符@作为结束符,并且以一个字符串的方式提供。后缀表达式求值算法的基本思路是:把包含后缀算术表达式的字符串定义为一个输入字符串流对象,每次从中读入一个字符(空格作为数据之间的分隔符,不会被作为字符读入)时,若它是运算符,则表明它的两个操作数已经在栈S中,其中栈顶元素为运算符的后一个操作数,栈顶元素的下一个元素为运算符的前一个操作数,把它们弹出后进行相应运算即可,然后把运算结果再压入栈S中;否则,读入的字符必为操作数的最高位数字,应把它重新送回输入流中,然后把下一个数据作为浮点数输入,并把它压入到栈S中。依次扫描每一个字符(对于浮点数只需扫描它的最高位并一次输入整个浮点数)并进行上述处理,直到遇到结束符@为止,表明后缀表达式计算完毕,最终结果保存在栈中,并且栈中仅存这一个值,把它弹出返回即可。

    具体算法描述为:

     float Compute( char * str)
     // 计算由str字符串所表示的后缀表达式的值,
     // 表达式要以'@'字符结束。
    {
    StackS;//用S栈存储操作数和中间计算结果
    InitStack(S);//初始化栈
    istrstreamins(str);//把str定义为输入字符串流对象ins
    charch;//用于输入字符
    floatx;//用于输入浮点数
    ins>>ch;//从ins流对象(即str字符串)中顺序读入一个字符
    while(ch!='@')
    {//扫描每一个字符并进行相应处理
    switch(ch)
    {
    case'+':
    x=Pop(S)+Pop(S);
    break;
    case'-':
    x=Pop(S);//Pop(S)弹出减数
    x=Pop(S)-x;//Pop(S)弹出的是被减数
    break;
    case'*':
    x=Pop(S)*Pop(S);
    break;
    case'/':
    x=Pop(S);//Pop(S)弹出除数
    if(x!=0.0)
    x=Pop(S)/x;//Pop(S)弹出的是被除数
    else   {//除数为0时终止运行
    cerr<<"Divideby0!"<exit(1);
    }
    break;
    default://读入的必为一个浮点数的最高位数字
    ins.putback(ch);//把它重新回送到输入流中
    ins>>x;//从字符串输入流中读入一个浮点数
    }
    Push(S,x);//把读入的一个浮点数或进行相应运算
    //的结果压入到S栈中
    ins>>ch;//输入下一个字符,以便进行下一轮循环处理
    }
    if(!StackEmpty(S))
    {//若栈中仅有一个元素,则它是后缀表达式的值,否则为出错
    x=Pop(S);
    if(StackEmpty(S))
    returnx;
    else   {
    cerr<<"expressionerror!"<exit(1);
    }
    }
    else   {//若最后栈为空,则终止运行
    cerr<<"Stackisempty!"<exit(1);
    }
    }
     

    此算法的运行时间主要花在while循环上,它从头到尾扫描后缀表达式中的每一个数据(每个操作数或运算符均为一个数据),若后缀表达式由n个数据组成,则此算法的时间复杂度为O(n)。此算法在运行时所占用的临时空间主要取决于栈S的大小,显然,它的最大深度不会超过表达式中操作数的个数,因为操作数的个数与运算符(假定把@也看作为一个特殊运算符,即结束运算符)的个数相等,所以此算法的空间复杂度也同样为O(n)
    假定一个字符串a为:
        chara[30]="123204/*8-6*+@";
        对应的中缀算术表达式为12+(3*(20/4)-8)*6@,则使用如下语句调用上述函数得到的输出结果为54

    三、课堂活动

        结合第三单元所学的栈的相关知识,按上述方法,画出通过进栈和出栈完成后缀表达式345+*7-计算的过程。

    栈操作示意图:

     

     

     

     

    相关课件

    高中信息技术沪教版(2019)必修1 数据与计算2.了解数值数据和文本数据的编码教课内容课件ppt: 这是一份高中信息技术沪教版(2019)必修1 数据与计算2.了解数值数据和文本数据的编码教课内容课件ppt,文件包含122项目二第二课时了解数值数据和文本数据的编码-高一信息技术同步精品课堂沪科版2019必修1pptx、122项目二第二课时了解数值数据和文本数据的编码-高一信息技术同步精品课堂沪科版2019必修1docx等2份课件配套教学资源,其中PPT共24页, 欢迎下载使用。

    高中信息技术沪教版(2019)必修1 数据与计算3.了解声音和图像的数字化图片ppt课件: 这是一份高中信息技术沪教版(2019)必修1 数据与计算3.了解声音和图像的数字化图片ppt课件,共7页。

    高中信息技术沪教版(2019)必修1 数据与计算1.从树牌号认识编码评课ppt课件: 这是一份高中信息技术沪教版(2019)必修1 数据与计算1.从树牌号认识编码评课ppt课件,文件包含121项目二第一课时探究计算机中的数据表示1从树牌号认识编码课件20222023学年沪科版2019高中信息技术必修1pptx、121项目二第一课时探究计算机中的数据表示1从树牌号认识编码教案20222023学年沪科版2019高中信息技术必修1doc等2份课件配套教学资源,其中PPT共18页, 欢迎下载使用。

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

    每充值一元即可获得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 张下载券

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

        如何免费获得下载券?

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

        即将下载

        项目七 探究计算机中算术表达式的计算——了解二叉树及其基本操作(第一课时)课件+教案
        该资料来自成套资源,打包下载更省心 该专辑正在参与特惠活动,低至4折起
        [共10份]
        浏览全套
          立即下载(共1份)
          返回
          顶部
          Baidu
          map