虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

表达式求值

  • 1

    1, 表达式一般由操作数(operand),运算符(operator)和界限符(delimiter)组成。操作数可以有常数,变量或者标识符。运算符分为算术运算符,关系运算符和逻辑运算符。基本界限符有左右括号和表达式结束符号。为了程序简单,仅讨论简单算术表达式的求值问题。这种表达式只含加,减,乘,除和四则运算符,括号以及结束符‘#’。 2, 算法基本思想:  建立两个栈:一个是操作数栈(Stack_nd),用以寄存操作数或运算结果;另一个是运算符栈(Stack_tr),用以寄存运算符和界限符。  依次读入表达式中的字符,若是操作数则压进操作数栈(Stack_nd),若是运算符,则与运算栈(Stack_tr)的栈顶元素比较优先级,根据比较的结果进行相应的操作。 3, 规定算符间的优先级;算符q1与q2至多是下面三种关系之一:  q1<q2 q1的优先权低于q2  q1=q2 q1的优先权等于 q2  q1>q2 q1的优先权高于 q2

    标签:

    上传时间: 2013-12-21

    上传用户:FreeSky

  • 经典问题

    经典问题,表达式,求值,java源代码

    标签:

    上传时间: 2013-12-28

    上传用户:gundamwzc

  • 本题要完成的是一组简单C表达的运算。所有表达式存放在文件 CExpression.txt 中

    本题要完成的是一组简单C表达的运算。所有表达式存放在文件 CExpression.txt 中,每个表达式一行。每行的长度不会超过80个字符。文件最后有一个空行表示结束。 每个表达式,只包含简单的整数变量和限定的一些操作符,表达式中没有常量。总共有26个可能出现在表达式中的变量,分别命名为 a,b,...,z。每个变量最多出现一次。26个变量的初值分别为1,2,...,26。 表达式中的操作符,包括:两个二元操作符 +, -,表示加,减运算。例如,表达式a+c-d+b(即1+3-4+2)的结果为2。 单独一个-号不能放在变量前面,表示负数。 表达式中还包含两个一元运算符:++,--,表示加一和减一运算。它们既可以出现在一个变量的前面、也可以出现在后面。如果出现在变量前面,则表示先对变量进行加一/减一运算,然后变量值参与表达式计算。如果出现在变量后面,则表示变量的原值参与表达式计算,表达式计算完之后,变量值加一/减一。 例如,表达式 -- c + b-- 的结果为 4, 表达式计算完之后, b,c的值分别为1,2 输出格式要求:输出直接显示在屏幕上。对于每个表达式,第一行输出表达式的内容。第二行输出表达式的值,后面几行输出参与运算的各个变量的结果值。

    标签: CExpression txt 运算 表达式

    上传时间: 2017-01-17

    上传用户:cjf0304

  • (2)、24点游戏: 基本要求及步骤: 1) 随机产生四个1-13的数

    (2)、24点游戏: 基本要求及步骤: 1) 随机产生四个1-13的数,分别代表13张牌。 2) 提示玩家输入算式。 3) 判断玩家输入的表达式是否合法,其中算式中的四个数字只能是程序所给的四个数字,非法则回到1)。 4) 如果玩家认为这四张牌算不出24点(如:1,1,1,1),可只输入?,程序将判断这四张牌是否能得出24点,如果能,则程序将给出算式,如果不能,说明不能,并回到1)。 5) 当用户正确输入算式后,用“堆栈来求表达式的值”的原理 求出结果并判断是否为24,得出用户是输是赢的结果。 6) 询问用户是否继续,是则回到1),否则结束程序。

    标签: 13 随机

    上传时间: 2017-03-24

    上传用户:chens000

  • 合理运用栈

    合理运用栈,按照教材中的运算优先级,编程实现任意中缀算术表达式的求值运算。

    标签:

    上传时间: 2013-12-17

    上传用户:zm7516678

  • 1) 随机产生四个1-13的数

    1) 随机产生四个1-13的数,分别代表13张牌。 2) 提示玩家输入算式。 3) 判断玩家输入的表达式是否合法,其中算式中的四个数字只能是程序所给的四个数字,非法则回到1)。 4) 如果玩家认为这四张牌算不出24点(如:1,1,1,1),可只输入?,程序将判断这四张牌是否能得出24点,如果能,则程序将给出算式,如果不能,说明不能,并回到1)。 5) 当用户正确输入算式后,用“堆栈来求表达式的值”的原理 求出结果并判断是否为24,得出用户是输是赢的结果。 6) 询问用户是否继续,是则回到1),否则结束程序。

    标签: 13 随机

    上传时间: 2014-01-18

    上传用户:er1219

  • C51原理及相关基础入门知识

    C51原理及相关基础入门知识 第一章:C51 流程控制语句一、分类条件语句、循环语句和开关语句。下面将对这些语句作详细介绍。(1) 条件语句条件语句的一般形式为:if(表达式)语句 1;else语句 2;上述结构表示: 如果表达式的值为非0(TURE)即真, 则执行语句1, 执行完语句1 从语句2 后开始继续向下执行; 如果表达式的值为 0(FALSE)即假, 则跳过语句1 而执行语句2。所谓表达式是指关系表达式和逻辑表达式的结合式。注意:1. 条件执行语句中"else 语句2;"部分是选择项, 可以缺省, 此时条件语句变成:if(表达式) 语句1;表示若表达式的值为非 0 则执行语句1 , 否则跳过语句1 继续执行。2. 如果语句1 或语句2 有多于一条语句要执行时, 必须使用"{"和"}" 把这些语句包括在其中, 此时条件语句形式为:if(表达式){语句体 1;}else{语句体 2;}3. 条件语句可以嵌套, 这种情况经常碰到, 但条件嵌套语句容易出错, 其原因主要是不知道哪个if 对应哪个else。例如:if(x>20||x<-10)if(y<=100&&y>x)printf("Good");elseprintf("Bad");对于上述情况,规定: else 语句与最近的一个if 语句匹配, 上例中的 else 与 if(y<=100&&y>x) 相匹配。为了使 else 与if(x>20||x<-10) 相匹配, 必须用花括号。如下所示:if(x>20||x<-10){if(y<=100&&y>x)printf("Good");}

    标签: C51 入门知识

    上传时间: 2013-10-24

    上传用户:Sophie

  • 这是非常有挑战性的题目。对于用户输入的任意一个平面函数f(x)

    这是非常有挑战性的题目。对于用户输入的任意一个平面函数f(x),绘制出其函数曲线。这里最关键的技术难点就是如何实现计算表达式的值。在《编译原理》和《数据结构》的书中,都有对表达式运算方法的论述。说实在的,在编译型计算机语言中实现对用户输入表达式的运算是非常困难的。需要对表达式进行扫描,去括号,按照运算符的优先级生成2叉树,然后遍历该树生成逆波兰表达式,再然后通过栈的方法进行运算。如果在表达式中再包含有函数的话......描述起来都麻烦,更不要说用程序实现了:-(

    标签: 用户 函数 输入

    上传时间: 2014-08-07

    上传用户:1159797854

  • 一个利用递归下降分析方法

    一个利用递归下降分析方法,实现算术表达式的值,是一个非常值得参考的程序,是学习编译原理的首选.

    标签: 递归 分析方法

    上传时间: 2015-08-10

    上传用户:784533221

  • 1.这个计算器可用在离散数学的数理逻辑中

    1.这个计算器可用在离散数学的数理逻辑中,纯属工具,随意传播,由java语言实现,解压即可运行,需要按照java环境。可以去这里下载运行环境:http://www.skycn.com/soft/3116.html 2.这个计算器可以计算逻辑表达式的值、对应的真值表、主析取范式、主合取范式。 3.输入表达式时可以在表达式栏中输入,也可用相应的按钮输入,变元只能是PQRST。由于等价连接词无法识别,所以用等号代替,这也是一个无奈的选择。 4.计算前请选择变元个数(默认为3元)并对变元赋值。变元个数最高为5,基本能满足日常的计算。 5.计算器有自动检查表达式是否正确的功能,如果判断功能有误,麻烦您告诉我您的表达式。

    标签: 计算器 离散 数理 逻辑

    上传时间: 2013-12-13

    上传用户:txfyddz