DamiRocK

JavaScript: составное выражение 8/2 + 5 − (−3/2)

Соединяем несколько арифметических операций и получаем 10.5. Проверяем промежуточные значения, отрицательное частное и порядок вычислений.

Результат одной операции становится входом другой

Композиция операций позволяет записать весь расчёт одним выражением. В 2 * 4 * 5 * 10 промежуточные значения равны 8, 40 и 400. В выражениях с разными операторами дополнительно учитывается их приоритет.

Задание источника

Вычислите 8 / 2 + 5 - -3 / 2, не заменяя его готовым числовым ответом:

console.log(8 / 2 + 5 - -3 / 2);

Вывод — 10.5.

Разбор по частям

Первое деление даёт 4. Второе частное равно −1,5. После этого выполняется 4+5−(−1,5), то есть 9+1,5=10,5.

Для проверки можно временно расставить скобки, не меняющие заданную группировку:

console.log((8 / 2) + 5 - ((-3) / 2));

Этот вариант делает отрицательный операнд и оба частных наглядными.

Что изменит результат

Если сначала объединить 2 + 5 в знаменателе, получится другое выражение. Если потерять один минус, последнее действие станет вычитанием положительных 1,5. Такие ошибки не обязательно вызывают SyntaxError: программа может корректно выполнить неверно записанную формулу.

Инструкция вывода вокруг выражения

Console.log получает уже вычисленный числовой результат. Кавычки вокруг всего выражения заставили бы вывести его текст буквально. В исходном уроке расчёт намеренно выполняется без переменных; дальнейшее выделение промежуточных значений под понятными именами — другой способ улучшить читаемость, но не обязательная часть этого задания.

Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Формула и решение сохранены; промежуточные шаги добавлены.

Reading preferences

Appearance
Contrast
More options

Saved only in this browser. Your device’s reduced-motion setting is always respected. Browser zoom works throughout the site.