#include #include "xexpression.cpp" int main () { ifmp::xexpression a (3); ifmp::xexpression b (4); ifmp::xexpression c (5); ifmp::xexpression d = a-b-c; // left-right ifmp::xexpression e = a-(b-c); // right-left ifmp::xexpression f = -e; ifmp::xexpression g; g = f; ifmp::xexpression h; ifmp::xexpression j = h; ifmp::xexpression i = d; i += e; std::cout << d << "\n"; std::cout << e << "\n"; std::cout << f << "\n"; std::cout << g << "\n"; std::cout << d.evaluate() << "\n"; // -6 std::cout << e.evaluate() << "\n"; // 4 std::cout << i.evaluate() << "\n"; // -2 std::cout << f.evaluate() << "\n"; // -4 std::cout << g.evaluate() << "\n"; // -4 // xepression with unknowns double celsius; ifmp::xexpression Celsius (&celsius); ifmp::xexpression fahrenheit = 9.0 * Celsius / 5.0 + 32.0; std::cout << fahrenheit << "\n"; for (celsius = -30; celsius <= 40; celsius += 5) std::cout << "C = " << celsius << ", F = " << fahrenheit.evaluate() << "\n"; return 0; }