Expression Evaluation

Environment: VC 4.0/5.0

I made this code while working on a program for analyzing mathematical expressions, and I made some classes for making things easier.

See sample code: express.zip ; the programme was writen using MSVC 4.0 and compiled with MSVC 5.0

This classes can be used for evaluating expressions like :

1+4*(5+9) or

1+var1+var2*(5+b5), where var1 , var2 can be: numeric values or expressions or other numeric stuff. See the sample code.

The class hierarchy that I implemented is :

CExpression derived from CObject - represents a mathematical expression; use ChangeExpression to assign a string expression to the expression object

The folowing mathematical functions are known: sin, cos, exp, sqrt, log, tg, ctg, asin, acos, atg and the default operations like +, -,  *, /, ^ - (pow()); the abs function is implemented using: |expresion|.

CValue derived from CObject - represents a value; use SetValue/GetValue - to set / get the value, or UpdateValue to Update the value

CExpValue derived from CValue - represents a value that is defined by a expresion

CNumericValue derived from CValue - represents a simple numeric value

The best way of understanding the way that this classes are functioning is to see the sample project.

If you have some questions or you have some improvement ideas, or you find a bug please send me a mail to: zolyfarkas@usa.net or zoly@csoft.dnttm.ro

See sample code: express.zip



Comments

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Live Event Date: December 11, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT Market pressures to move more quickly and develop innovative applications are forcing organizations to rethink how they develop and release applications. The combination of public clouds and physical back-end infrastructures are a means to get applications out faster. However, these hybrid solutions complicate DevOps adoption, with application delivery pipelines that span across complex hybrid cloud and non-cloud environments. Check out this …

  • Due to internal controls and regulations, the amount of long term archival data is increasing every year. Since magnetic tape does not need to be periodically operated or connected to a power source, there will be no data loss because of performance degradation due to the drive actuator. Read this white paper to learn about a series of tests that determined magnetic tape is a reliable long-term storage solution for up to 30 years.

Most Popular Programming Stories

More for Developers

RSS Feeds