Write a program that calculates the mathematical expression

###### Solution

Oops! This is a really complex expression. Let’s take a look at an approach that even a newbie can follow.

The main idea is to break the complex expression into smaller, simpler expressions and assign each sub-result to temporary variables. In the end, you can build the original expression out of all these temporary variables! This approach is presented here.

## PHP

```<?php
echo "Enter value for x: ";
\$x = trim(fgets(STDIN));
echo "Enter value for w: ";
\$w = trim(fgets(STDIN));
echo "Enter value for z: ";
\$z = trim(fgets(STDIN));

\$temp1 = 3 * \$x * \$x + 5 * \$x + 2;
\$temp2 = 7 * \$w - 1 / \$z;
\$temp3 = (3 + \$x) / 7;
\$nominator = 5 * \$temp1 / \$temp2 - \$z;
\$denominator = 4 * \$temp3;

\$y = \$nominator / \$denominator;

echo "The result is: ", \$y;
?>
```

## Java

```public static void main(String[] args) throws java.io.IOException {
double denominator, nominator, temp1, temp2, temp3, w, x, y, z;

System.out.print("Enter value for x: ");
System.out.print("Enter value for w: ");
System.out.print("Enter value for z: ");

temp1 = 3 * x * x + 5 * x + 2;
temp2 = 7 * w - 1 / z;
temp3 = (3 + x) / 7;
nominator = 5 * temp1 / temp2 - z;
denominator = 4 * temp3;

y = nominator / denominator;

System.out.println("The result is: " + y);
}
```

## C++

```#include <iostream>
using namespace std;
int main() {
double denominator, nominator, temp1, temp2, temp3, w, x, y, z;

cout << "Enter value for x: ";
cin >> x;
cout << "Enter value for w: ";
cin >> w;
cout << "Enter value for z: ";
cin >> z;

temp1 = 3 * x * x + 5 * x + 2;
temp2 = 7 * w - 1 / z;
temp3 = (3 + x) / 7;
nominator = 5 * temp1 / temp2 - z;
denominator = 4 * temp3;

y = nominator / denominator;

cout << "The result is: " << y;
return 0;
}

```

## C#

```static void Main() {
double denominator, nominator, temp1, temp2, temp3, w, x, y, z;

Console.Write("Enter value for x: ");
Console.Write("Enter value for w: ");
Console.Write("Enter value for z: ");

temp1 = 3 * x * x + 5 * x + 2;
temp2 = 7 * w - 1 / z;
temp3 = (3 + x) / 7;
nominator = 5 * temp1 / temp2 - z;
denominator = 4 * temp3;

y = nominator / denominator;

Console.Write("The result is: " + y);

}
```

## Visual Basic

```Sub Main()
Dim denominator, nominator, temp1, temp2, temp3, w, x, y, z As Double

Console.Write("Enter value for x: ")
Console.Write("Enter value for w: ")
Console.Write("Enter value for z: ")

temp1 = 3 * x ^ 2 + 5 * x + 2
temp2 = 7 * w - 1 / z
temp3 = (3 + x) / 7
nominator = 5 * temp1 / temp2 - z
denominator = 4 * temp3

y = nominator / denominator

Console.Write("The result is: " & y)

End Sub
```

## Python

```x = float(input("Enter value for x: "))
w = float(input("Enter value for w: "))
z = float(input("Enter value for z: "))

temp1 = 3 * x ** 2 + 5 * x + 2
temp2 = 7 * w - 1 / z
temp3 = (3 + x) / 7
nominator = 5 * temp1 / temp2 - z
denominator = 4 * temp3

y = nominator / denominator

print("The result is:", y)
```

You may say, “Okay, but I wasted so many variables and as everybody knows, each variable is a portion of main memory. How can I write the original expression in one single line and waste less memory?

This job may be a piece of cake for an advanced programmer, but what about you? What about a novice programmer?

The next method will help you write even the most complex mathematical expressions without any syntax or logic errors! The rule is very simple. “After breaking the complex expression into smaller, simpler expressions and assigning each sub-result to temporary variables, start backwards and replace each variable with its assigned expression. Be careful though! When you replace a variable with an expression, you must always enclose the expression in parentheses!”

Confused? Don’t be! It’s easier in action. Let’s try to rewrite the previous program. Starting backwards, replace variables `nominator` and `denominator` with their assigned expressions. The result is

## Python

Now you must replace variables `temp1`, `temp2`, and `temp3` with their assigned expressions, and the one-line expression is complete!

## Python

It may look scary at the end but it wasn’t that difficult, was it?

The program can now be rewritten

## PHP

```<?php
echo "Enter value for x: ";
\$x = trim(fgets(STDIN));
echo "Enter value for w: ";
\$w = trim(fgets(STDIN));
echo "Enter value for z: ";
\$z = trim(fgets(STDIN));

\$y = (5 * (3 * \$x * \$x + 5 * \$x + 2)/(7 * \$w - 1 / \$z) - \$z)/(4 * ((3 + \$x)/7));

echo "The result is: ", \$y;
?>

```

## Java

```public static void main(String[] args) throws java.io.IOException {
double w, x, y, z;

System.out.print("Enter value for x: ");
System.out.print("Enter value for w: ");
System.out.print("Enter value for z: ");

y = (5 * (3 * x * x + 5 * x + 2)/(7 * w - 1 / z) - z)/(4 * ((3 + x) / 7));

System.out.println("The result is: " + y);
}

```

## C++

```#include <iostream>
using namespace std;
int main() {
double w, x, y, z;

cout << "Enter value for x: ";
cin >> x;
cout << "Enter value for w: ";
cin >> w;
cout << "Enter value for z: ";
cin >> z;

y = (5 * (3 * x * x + 5 * x + 2)/(7 * w - 1 / z) - z)/(4 * ((3 + x) / 7));

cout << "The result is: " << y;
return 0;
}
```

## C#

```static void Main() {
double w, x, y, z;

Console.Write("Enter value for x: ");
Console.Write("Enter value for w: ");
Console.Write("Enter value for z: ");

y = (5 * (3 * x * x + 5 * x + 2)/(7 * w - 1 / z) - z)/(4 * ((3 + x) / 7));

Console.Write("The result is: " + y);

}
```

## Visual Basic

```Sub Main()
Dim w, x, y, z As Double

Console.Write("Enter value for x: ")
Console.Write("Enter value for w: ")
Console.Write("Enter value for z: ")

y = (5 * (3 * x ^ 2 + 5 * x + 2)/(7 * w - 1 / z) - z)/(4 * ((3 + x) / 7))

Console.Write("The result is: " & y)

End Sub

```

## Python

```x = float(input("Enter value for x: "))
w = float(input("Enter value for w: "))
z = float(input("Enter value for z: "))

y = (5 * (3 * x ** 2 + 5 * x + 2)/(7 * w - 1 / z) - z)/(4 * ((3 + x) / 7))

print("The result is:", y)
```