С++: Композиция операций
А что, если понадобится вычислить такое выражение: 3 + 5 - 2? Именно так мы и запишем:
std::cout << (3 + 5 - 2); // 3 + 5 - 2 => 8 - 2 => 6Обратите внимание, что компьютер производит арифметические вычисления в правильном порядке: сначала деление и умножение, потом сложение и вычитание. Иногда этот порядок нужно изменить — об этом следующий урок.
Или другой пример:
std::cout << (2 * 4 * 5 * 10);
// 2 * 4 * 5 * 10 => 8 * 5 * 10 => 40 * 10 => 400Как видно, операции можно соединять друг с другом, получая возможность вычислять все более сложные составные выражения. Чтобы представить себе то, как программа производит вычисления, давайте разберем пример: 2 * 4 * 5 * 10.
- Сначала вычисляется 2 * 4 и получается выражение 8 * 5 * 10.
- Затем 8 * 5. В итоге имеем 40 * 10.
- В конце концов происходит последнее умножение, и получается результат 400.
Операции можно соединять друг с другом, получая возможность вычислять все более сложные составные выражения.
Задание
Реализуйте программу, которая вычисляет значение выражения 8 / 2 + 5 - -3 / 2. Не вычисляйте ничего самостоятельно, ваша программа должна производить все вычисления сама.
Обратите внимание, что программа производит арифметические вычисления в правильном порядке: сначала деление и умножение, потом сложение и вычитание. Иногда этот порядок нужно изменить — об этом следующий урок.
Также обратите внимание на то, что в C++ по умолчанию используется целочисленное деление, 3 / 2 будет 1.
Ваше упражнение проверяется по этим тестам
#include "test_helper.h"
TEST_CASE("testing solution") {
std::string expected = "10\n";
std::string actual = get_output(sizeof(expected));
CHECK(actual == expected);
}Решение учителя откроется через:
20:00
