精华内容
下载资源
问答
  • 7-2 计算代数表达式

    千次阅读 2020-02-14 10:36:51
    7-2 计算代数表达式 (2.2) (10分) 求: 输入格式: 输入角度x。变量数据类型为double。π为3.14159。 输出格式: 输出y的值,精确到小数点后2位。 输入样例: 12.3 输出样例: 1.69 #include<stdio.h> #include&...

    7-2 计算代数表达式 (2.2) (10分)

    求:

    输入格式:
    输入角度x。变量数据类型为double。π为3.14159。

    输出格式:
    输出y的值,精确到小数点后2位。

    输入样例:
    12.3

    输出样例:
    1.69

    #include<stdio.h>
    
    #include<math.h>
    
    #define PI 3.14159
    
    int main()
    {
        double x,y,h;
        h = PI/180;
        scanf("%lf",&x);
        y = sqrt((sin(60*h)+1)*(sin(30*h)+1)/cos(x*h));
        printf("%.2lf",y);
        return 0;
    }
    
    展开全文
  • 利用栈结构计算代数表达式的值

    千次阅读 2016-11-29 21:52:18
    之前做题遇到过,面试也面试到过,就是如何求解含有加减乘除和括号的表达式的值。今天刷书看到栈ADT结构这一章的时候 正好讲到了求解这种题目的思路。顺便自己写了点代码实现了一下,现在记录一下思路和简单实现。 ...

    之前做题遇到过,面试也面试到过,就是如何求解含有加减乘除和括号的表达式的值。今天刷书看到栈ADT结构这一章的时候

    正好讲到了求解这种题目的思路。顺便自己写了点代码实现了一下,现在记录一下思路和简单实现。

    思路很简单,建立一个存储操作符和括号的堆栈,输入是一个表达式的字符串,依次遍历,当是数字的时候,直接追加到输

    出,遍历到操作符则入栈。当入栈一个操作符时,要注意两个判断,第一个是要依次弹出优先级高于或等于即将入栈的操作符;第

    二如果当前遍历位置在“(”和“)”之间,则切记不可将入栈的“(”也弹出了。直到遍历到了“)”再依次弹出“(”之前的全部。

    import java.util.*;
    
    public class MathematicalCal {
    	private static HashMap<String, Integer> priority = new HashMap<String, Integer>() {
    		/**
    		 * 
    		 */
    		private static final long serialVersionUID = 3144136159818291600L;
    
    		{
    			put("(", 2);
    			put("×", 0);
    			put("÷", 0);
    			put("+", 1);
    			put("-", 1);
    
    		}
    	};
    
    	public static String converse(String expression) {
    		int len = expression.length();
    		Stack<String> operator = new Stack<>();
    		StringBuffer result = new StringBuffer();
    		for (int i = 0; i < len; i++) {
    			if (Character.isDigit(expression.charAt(i))) {
    				result.append(String.valueOf(expression.charAt(i)));
    			} else if (operator.isEmpty()) {
    				operator.push(String.valueOf(expression.charAt(i)));
    			} else {
    				if (expression.charAt(i) == ')') {
    					while (!(operator.peek().equals("("))) {
    						result.append(operator.pop());
    					}
    					operator.pop(); // remove '('
    				} else if (expression.charAt(i) == '(') {
    					operator.push("(");
    				} else {
    					while (!(operator.isEmpty())
    							&& (Integer.valueOf(priority.get(String.valueOf(expression.charAt(i)))) >= Integer
    									.valueOf(priority.get(operator.peek())))) {
    						result.append(operator.pop());
    					}
    					operator.push(String.valueOf(expression.charAt(i)));
    				}
    			}
    		}
    		while (!(operator.isEmpty())) {
    			result.append(operator.pop());
    		}
    		return result.toString();
    
    	}
    
    	public static double exec(String expression) {
    		int len = expression.length();
    		Stack<Double> num = new Stack<>();
    		for (int i = 0; i < len; i++) {
    			if (Character.isDigit(expression.charAt(i))) {
    				num.push(Double.parseDouble("" + expression.charAt(i)));
    			} else {
    				double op2 = num.pop();
    				double op1 = num.pop();
    				switch (expression.charAt(i)) {
    				case '+':
    					num.push(op1 + op2);
    					break;
    				case '-':
    					num.push(op1 - op2);
    					break;
    				case '×':
    					num.push(op1 * op2);
    					break;
    				case '÷':
    					num.push(op1 / op2);
    					break;
    				}
    			}
    		}
    		return num.pop();
    	}
    }
    
    输入“(1+2×3-(4×5+6)×7)÷3”,输出的后缀表达式为“123×+45×6+7×-3÷”,计算结果为“-58.333333333333336”

    展开全文
  • 求: 输入格式: 输入角度x。变量数据类型为double。π为3.14159。 输出格式: 输出y的值,精确到小数点后2位。 输入样例: ... printf("%.2f",sqrt((sin(3.14159/3.0)+1.0)*(sin(3.14159/6.0)+1.0)/

    求:在这里插入图片描述

    输入格式:

    输入角度x。变量数据类型为double。π为3.14159。

    输出格式:

    输出y的值,精确到小数点后2位。

    输入样例:

    12.3

    输出样例:

    1.69

    #include <stdio.h>
    #include <math.h>
    #define PI 3.14159
    int main()
    {
      double x;
      scanf("%lf",&x);
      printf("%.2f",sqrt((sin(PI/3.0)+1.0)*(sin(PI/6.0)+1.0)/cos(x*PI/180)));
      return 0;
    }
    
    展开全文
  • c#中动态输入和计算 代数表达式

    千次阅读 2015-09-17 11:45:32
     /// 计算结果,如果表达式出错则抛出异常  ///  /// 表达式,如"1+2+3+4"  /// 结果  public static object Eval(string statement)  {  return _evaluatorType.InvokeMember(  "Eval",  ...

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;
    using System.ComponentModel;
    using System.CodeDom;
    using System.CodeDom.Compiler;
    using Microsoft.JScript;
    using System.Reflection;  


    下面是一个完整的类,代码已经测试过


    /// <summary>

        /// 动态求值
        /// </summary>
        public class Evaluator
        {
            /// <summary>
            /// 计算结果,如果表达式出错则抛出异常
            /// </summary>
            /// <param name="statement">表达式,如"1+2+3+4"</param>
            /// <returns>结果</returns>
            public static object Eval(string statement)
            {
                return _evaluatorType.InvokeMember(
                            "Eval",
                            BindingFlags.InvokeMethod,
                            null,
                            _evaluator,
                            new object[] { statement }
                         );
            }
            /// <summary>
            /// 
            /// </summary>
            static Evaluator()
            {
                //构造JScript的编译驱动代码
                CodeDomProvider provider = CodeDomProvider.CreateProvider("JScript");


                CompilerParameters parameters;
                parameters = new CompilerParameters();
                parameters.GenerateInMemory = true;


                CompilerResults results;
                results = provider.CompileAssemblyFromSource(parameters, _jscriptSource);


                Assembly assembly = results.CompiledAssembly;
                _evaluatorType = assembly.GetType("Evaluator");


                _evaluator = Activator.CreateInstance(_evaluatorType);
            }


            private static object _evaluator = null;
            private static Type _evaluatorType = null;
            /// <summary>
            /// JScript代码
            /// </summary>
            private static readonly string _jscriptSource =


                @"class Evaluator
                  {
                      public function Eval(expr : String) : String 
                      { 
                         return eval(expr); 
                      }
                  }";
        }




    调用很简单:Evaluator.Eval(  "4*9+8"   ) 返回的object 对象转化为数字就是计算的结果

    展开全文
  • I . 代数表达式 语法 II . 代数表达式 语法 示例 III . 设计 上下文无关语法 IV . 确定性有限自动机 DFA 转为 上下文无关语法
  • 这是一个功能集合,计算的向量代数表达式的功能分区,特别是为Kostant分区功能,以及更多的数学函数。包括模板多元多项式类。
  • 题目:编写一个程序,先用二叉树来表示代数表达式,树的每一个结点包括一个运算符货运算数,代数表达式中只包含加减乘除和一位整数且没有错误,并按先加减后乘除的原则构造二叉树,然后由对应的二叉树计算该表达式的...
  • 您可能感兴趣的话题:C++核心提示:昨天晚上,我花了大把的时间研究里面二叉树应用解决计算表达式的问题昨天晚上,我花了大把的时间研究里面二叉树应用解决计算表达式的问题,一直就没理解,主要是觉得是不是自己错...
  • 题目:编写一个程序,先用二叉树来表示代数表达式,树的每一个结点包括一个运算符或者运算数,代数表达式中只包含加减乘除和一位整数且没有错误,并按先加减后乘除的原则构造二叉树,然后由对应的二叉树计算该表达式...
  • 题目:编写一个程序,先用二叉树来表示代数表达式,树的每一个结点包括一个运算符或者运算数,代数表达式中只包含加减乘除和一位整数且没有错误,并按先加减后乘除的原则构造二叉树,然后由对应的二叉树计算该表达式...
  • 问题及代码/* ...All rights reserved. 文件名称:用二叉树求解...问题描述: 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、-、*、/,不加
  • 一、使用说明1.1 项目简介表达式求值是程序设计语言编译中的一个最基本的问题,就是将一个表达式转化为逆波兰表达式并求值。具体要求是以字符序列的形式从终端输入语法正确的、不含变量的整数表达式,并利用给定的...
  • /* ...*All rights reserved....*文件名称:项目2-用二叉树求解代数表达式 *作 者:董丽娟 *完成日期:2017年11月7日 *版 本 号:v1.0 * 问题: 用二叉树来表示代数表达式,树的每一个分支节点代表一
  • 【项目 - 用二叉树求解代数表达式】   用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、-、*、/,不加括号,运算数也只是一位的数字...
  • 【项目 - 用二叉树求解代数表达式】 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、-、*、/,不加括号,运算数也只是一位的数字字符。...
  • 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、-、*、/,不加括号,运算数也只是一位的数字字符。本项目只考虑输入合乎以上规则的情况)...
  • 行列式 如果有两个向量 ,那么这两个向量组成的行列式是: 看起来只是表示一个简单的计算,仅仅计算了一个数值,但是别忘了,行列式是由向量组成的,它一定会表示向量间的某种关系。 在《线性代数4——向量3...
  • *文件名称:项目二__用二叉树求解代数表达式 *作 者:王硕 *完成日期:2017年11月2日 *版 本 号:v1.0 * 问题: 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为...
  • 问题及代码: /* ... All rights reserved. 文件名称:第十一周项目2 - 用二叉树求解代数表达式.cpp 作 者:孙翰文 ... 版 本 号:v1.0 问题描述: 用二叉树来表示代数表达式,树的每一个分支节点代表
  • 问题及代码 /* ...All rights reserved....文件名称:第十一周项目5 - 用二叉树求解代数表达式.cpp ...问题描述: 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只
  • 【项目 - 用二叉树求解代数表达式】   用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、-、*、/,不加括号,运算数也只是一位的数字...
  • /* ...All rights reserved. 文件名称:用二叉树求解代数表达式.cpp ...问题描述: 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、-、*、
  • /*    *Copyright (c) 2016,烟台大学计算机学院  *All right reserved.    *文件名称:test.cpp  ...* 问题描述:用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一
  • /* ...*All rights reserved. *文件名称:.cpp *完成日期:2017年11月16日 .../* 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数(为简化,只支持二目运算的+、-、*、/,不
  • /* ... All rights reserved.... 文件名称:第十一周项目2-用二叉树求解代数表达式 作 者:佟兴锋 ...问题描述:用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 670
精华内容 268
热门标签
关键字:

计算代数表达式