caution

# Simple calculator

Requires knowledge of: 1. First program - 4. Conditions

## Overview​

A simple program that allows you to calculate:

• ➕ a sum
• ➖ a difference
• ✖ a product
• ➗ a quotient

of two real numbers.

## Source code​

``#include <iostream>int main(){    std::cout   << "=== CALCULATOR ===\n"                << "Menu:\n"                << "1) Add\n"                << "2) Subtract\n"                << "3) Multiply\n"                << "4) Divide\n"                << "> Your choice: ";    int choice;    std::cin >> choice;    float a, b;    if (choice == 1)    {        std::cout   << "Calculating a sum (a + b).\n"                    << "Please enter the first number: ";        std::cin >> a;        std::cout   << "Please enter the second number: ";        std::cin >> b;        std::cout << "a + b equals " << (a + b);    }    else if (choice == 2)    {        std::cout   << "Calculating a difference (a - b).\n"                    << "Please enter the first number: ";        std::cin >> a;        std::cout   << "Please enter the second number: ";        std::cin >> b;        std::cout << "a - b equals " << (a - b);    }    else if (choice == 3)    {        std::cout   << "Calculating a product (a * b).\n"                    << "Please enter the first number: ";        std::cin >> a;        std::cout   << "Please enter the second number: ";        std::cin >> b;        std::cout << "a * b equals " << (a * b);    }    else if (choice == 4)    {        std::cout   << "Calculating a quotient (a / b).\n"                    << "Please enter the first number: ";        std::cin >> a;        std::cout   << "Please enter the second number: ";        std::cin >> b;        if (b == 0)            std::cout << "Cannot divide by 0!";        else            std::cout << "a / b equals " << (a / b);    }    else        std::cout << "Invalid option: " << choice;}``

## Explaination​

info

This section requires improvement. You can help by editing this doc page.

`cout` is used to print the main program menu at the very beginning (Lesson - 1. First program). We chained a multiple text printings using `<<` operators.

### 2. Choice​

To determine which math operation should be executed we use `if`, `else if` and `else` statements (Lesson - 4. Conditions)

## Things to improve​

### 1. Repeating code​

You can easily spot a piece of code that is repeated several times:

⚠ Repeated code fragment
``std::cout << "Please enter the first number: ";std::cin >> a;std::cout << "Please enter the second number: ";std::cin >> b;``

You'll learn how to solve this problem in the course, by using functions.

### 2. Detecting input failures​

What would happen if you tried to enter a word (f.e.: `hello`) instead of a number in this part of the code:

🤔 Will it work?
``int choice;std::cin >> choice; // entering "hello"``

`TODO`: lesson about input reading failures

caution

# Simple calculator

Requires knowledge of: 1. First program - 4. Conditions

## Overview​

A simple program that allows you to calculate:

• ➕ a sum
• ➖ a difference
• ✖ a product
• ➗ a quotient

of two real numbers.

## Source code​

``#include <iostream>int main(){    std::cout   << "=== CALCULATOR ===\n"                << "Menu:\n"                << "1) Add\n"                << "2) Subtract\n"                << "3) Multiply\n"                << "4) Divide\n"                << "> Your choice: ";    int choice;    std::cin >> choice;    float a, b;    if (choice == 1)    {        std::cout   << "Calculating a sum (a + b).\n"                    << "Please enter the first number: ";        std::cin >> a;        std::cout   << "Please enter the second number: ";        std::cin >> b;        std::cout << "a + b equals " << (a + b);    }    else if (choice == 2)    {        std::cout   << "Calculating a difference (a - b).\n"                    << "Please enter the first number: ";        std::cin >> a;        std::cout   << "Please enter the second number: ";        std::cin >> b;        std::cout << "a - b equals " << (a - b);    }    else if (choice == 3)    {        std::cout   << "Calculating a product (a * b).\n"                    << "Please enter the first number: ";        std::cin >> a;        std::cout   << "Please enter the second number: ";        std::cin >> b;        std::cout << "a * b equals " << (a * b);    }    else if (choice == 4)    {        std::cout   << "Calculating a quotient (a / b).\n"                    << "Please enter the first number: ";        std::cin >> a;        std::cout   << "Please enter the second number: ";        std::cin >> b;        if (b == 0)            std::cout << "Cannot divide by 0!";        else            std::cout << "a / b equals " << (a / b);    }    else        std::cout << "Invalid option: " << choice;}``

## Explaination​

info

This section requires improvement. You can help by editing this doc page.

`cout` is used to print the main program menu at the very beginning (Lesson - 1. First program). We chained a multiple text printings using `<<` operators.

### 2. Choice​

To determine which math operation should be executed we use `if`, `else if` and `else` statements (Lesson - 4. Conditions)

## Things to improve​

### 1. Repeating code​

You can easily spot a piece of code that is repeated several times:

⚠ Repeated code fragment
``std::cout << "Please enter the first number: ";std::cin >> a;std::cout << "Please enter the second number: ";std::cin >> b;``

You'll learn how to solve this problem in the course, by using functions.

### 2. Detecting input failures​

What would happen if you tried to enter a word (f.e.: `hello`) instead of a number in this part of the code:

🤔 Will it work?
``int choice;std::cin >> choice; // entering "hello"``

`TODO`: lesson about input reading failures