Можно ли 0 делить на отрицательное число 🚩 Математика
Прежде всего, чтобы разобраться можно ли ноль поделить на отрицательное число, следует вспомнить, как вообще выполняется деление отрицательных чисел. Математическая операция деления представляет собой действие, обратное умножению.
Это можно описать следующим образом: если a и b рациональные числа, то разделить a на b, это значит найти такое число с, которое при умножении на b даст в результате число a. Данное определение деления верно как для положительных, так и для отрицательных чисел, если делители отличны от нуля. При этом строго соблюдается условие, что на ноль делить нельзя.
Поэтому, например, чтобы разделить число 32 на число -8, следует найти такое число, которое при умножении на число -8 даст в итоге число 32. Таким числом будет -4, так как
(-4) х (-8) = 32. Знаки при этом складываются, и минус на минус даст в итоге плюс.
Таким образом:
32 : (-8) = -3.
Другие примеры деления рациональных чисел:
21 : 7 = 3, так как 7 х 3 = 21,
(−9) : (−3) = 3, так как 3 · (−3) = −9.
Чтобы определить модуль частного, необходимо разделить модуль делимого числа на модуль делителя. При этом важно учитывать знак и того, и другого элемента операции.
Чтобы поделить два числа с одинаковыми знаками, нужно модуль делимого разделить на модуль делителя, а перед результатом поставить знак плюс.
Чтобы поделить два числа с разными знаками, нужно модуль делимого разделить на модуль делителя, но перед результатом поставить знак минус, причем неважно, какой именно из элементов, делитель или делимое, был отрицательным.
Указанные правила и соотношения между результатами умножения и деления, известные для положительных чисел, справедливы и для всех рациональных чисел, кроме числа ноль.
Для нуля есть важное правило: частное от деления нуля на любое отличное от нуля число также равно нулю.
0 : b = 0, b ≠ 0. Причем b может быть и положительным, и отрицательным числом.
Таким образом, можно сделать вывод, что ноль поделить на отрицательное число можно, причем в результате всегда будет ноль.
Умножение и деление отрицательных чисел
Мы уже умеем складывать и вычитать отрицательные числа.
Теперь давайте разберемся с умножением и делением.
Предположим, нам нужно умножить +3 на -4. Как это сделать?
Давайте рассмотрим такой случай. Три человека залезли в долги, и у каждого по 4 доллара долга. Чему равен общий долг? Для того чтобы его найти, надо сложить все три долга: 4 доллара + 4 доллара + 4 доллара = 12 долларов. Мы с вами решили, что сложение трех чисел 4 обозначается как 3×4. Поскольку в данном случае мы говорим о долге, перед 4 стоит знак «-». Мы знаем, что общий долг равен 12 долларам, так что теперь наша задача имеет вид 3х(-4)=-12.
Мы получим тот же результат, если по условию задачи каждый из четырех человек имеет долг по 3 доллара. Другими словами, (+4)х(-3)=-12. А поскольку порядок сомножителей значения не имеет, получаем (-4)х(+3)=-12 и (+4)х(-3)=-12.
Давайте обобщим результаты. При перемножении одного положительного и одного отрицательного числа результат всегда будет отрицательным числом. Численная величина ответа будет той же самой, как и в случае положительных чисел. Произведение (+4)х(+3)=+12. Присутствие знака «-» влияет только на знак, но не влияет на численную величину.
А как перемножить два отрицательных числа?
К сожалению, на эту тему очень трудно придумать подходящий пример из жизни. Легко себе представить долг в сумме 3 или 4 доллара, но совершенно невозможно вообразить -4 или -3 человека, которые залезли в долги.
Пожалуй, мы пойдем другим путем. В умножении при изменении знака одного из множителей меняется знак произведения. Если мы меняем знаки у обоих множителей, мы должны дважды сменить знак произведения, сначала с положительного на отрицательный, а затем наоборот, с отрицательного на положительный, то есть у произведения будет первоначальный знак.
Следовательно, вполне логично, хотя немного странно, что (-3)х(-4)=+12.
Положение знака при умножении изменяется таким образом:
- положительное число х положительное число = положительное число;
- отрицательное число х положительное число = отрицательное число;
- положительное число х отрицательное число = отрицательное число;
- отрицательное число х отрицательное число = положительное число.
Иначе говоря, перемножая два числа с одинаковыми знаками, мы получаем положительное число. Перемножая два числа с разными знаками, мы получаем отрицательное число.
Такое же правило справедливо и для действия противоположного умножению – для деления.
(+12):(+3)=+4;
(+12):(-3)=-4;
(-12):(+3)=-4;
(-12):(-3)=+4.
Вы легко можете в этом убедиться, проведя обратные операции умножения. Если в каждом из примеров, приведенных выше, вы умножите частное на делитель, то получите делимое, и убедитесь, что оно имеет тот же самый знак, например (-3)х(-4)=(+12).
Поскольку скоро зима, то пора уже подумать о том, в что переобуть своего железного коня, что бы не скользить по льду и чувствовать себя уверено на зимних дорогах. Можно, например, взять шины йокогама на сайте: mvo.ru или какие-то другие, главное, что бы качественный, больше информации и цены вы можете узнать на сайте Mvo.ru.
Материалы по теме:
Поделиться с друзьями:
Загрузка…Онлайн урок: Деление по предмету Математика 6 класс
Если мы хотим определить, какой знак будет у частного, не считая его, тогда нам помогут следующие правила:Правило: частное двух отрицательных чисел всегда число положительное
Пример:
Частное \(\mathbf{-32}\) и \(\mathbf{-4}\) будет больше нуля.
Проверяем: \(\mathbf{-32:(-4)=32:4=8>0}\)
Правило: частное положительного числа и отрицательного равно нулю
Пример 1:
Частное 45 и \(\mathbf{-5}\) будет меньше нуля.
Проверяем: \(\mathbf{45:(-5)=-(45:5)=-9<0}\)
Пример 2:
Частное \(\mathbf{-36}\) и 3-х будет меньше нуля.
Проверяем: \(\mathbf{-36:3=-(36:3)=-12<0}\)
Также вне зависимости от знаков делить на 0 нельзя ни положительное, ни отрицательное число.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci autem beatae consectetur corporis dolores ea, eius, esse id illo inventore iste mollitia nemo nesciunt nisi obcaecati optio similique tempore voluptate!
Adipisci alias assumenda consequatur cupiditate, ex id minima quam rem sint vitae? Animi dolores earum enim fugit magni nihil odit provident quaerat. Aliquid aspernatur eos esse magnam maiores necessitatibus, nulla?
Эта информация доступна зарегистрированным пользователям
И если делимое равно нулю, то и частное будет равняться нулю (если такое деление вообще возможно, то есть если делитель не равен нулю).
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci autem beatae consectetur corporis dolores ea, eius, esse id illo inventore iste mollitia nemo nesciunt nisi obcaecati optio similique tempore voluptate!Adipisci alias assumenda consequatur cupiditate, ex id minima quam rem sint vitae? Animi dolores earum enim fugit magni nihil odit provident quaerat. Aliquid aspernatur eos esse magnam maiores necessitatibus, nulla?
Эта информация доступна зарегистрированным пользователям
Правило: если делимое равно нулю, а делитель — нет, то частное также равняется нулю.
Разберемся с этими правилами по порядку.
Итак, частное двух отрицательных чисел будет положительно, исходя из того правила, по которому мы его считаем.
Ведь частное двух положительных чисел, очевидно, будет положительным.
А по правилу, частное двух отрицательных чисел равно частному модулей этих чисел, то есть частному положительных чисел.
Также мы помним, что произведение двух отрицательных чисел является положительным числом.
Мы умеем представлять деление как умножение.
Значит, и по такой логике, частное двух отрицательных чисел больше нуля.
Как видите, есть разные способы это доказать.
Исходя из правила деления чисел с разными знаками, а именно исходя из того, что мы приписываем минус к частному модулей, можно сделать вывод, что частное двух чисел с разными знаками будет числом отрицательным.
Или же можно снова пойти по аналогии с умножением.
И так как произведение двух чисел с разными знаками будет числом отрицательным, то и частное будет меньше нуля.
С нулем также можно прибегнуть к аналогии с умножением.
И аналогично тому, как умножение нуля на отрицательное число даст 0, то и деление отрицательного числа на 0, будет нулем.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci autem beatae consectetur corporis dolores ea, eius, esse id illo inventore iste mollitia nemo nesciunt nisi obcaecati optio similique tempore voluptate!
Adipisci alias assumenda consequatur cupiditate, ex id minima quam rem sint vitae? Animi dolores earum enim fugit magni nihil odit provident quaerat. Aliquid aspernatur eos esse magnam maiores necessitatibus, nulla?
Эта информация доступна зарегистрированным пользователям
Арифметические операторы в C++ | Уроки С++
Обновл. 29 Дек 2019 |
Пора поговорить об арифметических операторах.
Унарные арифметические операторы
Существуют два унарных арифметических оператора: плюс (+) и минус (−). Унарные операторы — это те, которые применяются только к одному операнду.
Оператор | Символ | Пример | Операция |
Унарный плюс | + | +x | Значение x |
Унарный минус | − | −x | Отрицательное значение x |
Унарный оператор плюс возвращает значение операнда. Другими словами, +5 = 5
, +х = х
. Унарный плюс вам, скорее всего, не придётся использовать. Его по большей части добавили в качестве симметрии с унарным оператором минус. Унарный оператор минус возвращает операнд, умноженный на −1. Например, если х = 5
, то −х = −5
.
Оба этих оператора нужно размещать непосредственно перед самим операндом, без пробела ( −x
, а не − x
).
Не следует путать унарный оператор минус с бинарным оператором вычитания, хоть они и используют один и тот же символ. Например, в выражении х = 5 − −3;
, первый минус — это оператор вычитания, а второй — унарный минус.
Бинарные арифметические операторы
Их есть 5. Бинарные операторы — это те, которые применяются к двум операндам (слева и справа).
Оператор | Символ | Пример | Операция |
Сложение | + | x + y | x плюс y |
Вычитание | − | x − y | x минус y |
Умножение | * | x * y | x умножить на y |
Деление | / | x / y | x разделить на y |
Деление с остатком | % | x % y | Остаток от деления x на y |
Операторы сложения, вычитания и умножения работают так же, как и в обычной математике. А вот деление и деление с остатком рассмотрим детальнее.
Деление целых чисел и чисел типа с плавающей точкой
Оператор деления имеет два режима. Если оба операнда являются целыми числами, то оператор выполняет целочисленное деление. Т.е. любая дробь (больше/меньше) отбрасывается и возвращается целое значение без округления. Например, 7 / 4 = 1
.
Если один или оба операнда типа с плавающей точкой, то тогда будет выполняться деление типа с плавающей точкой. Здесь уже дробь присутствует. Например: 7.0 / 3 = 2.333
, 7 / 3.0 = 2.333
или 7.0 / 3.0 = 2.333
производят один и тот же результат.
Попытки деления на 0 (или на 0.0) станут причиной сбоя в вашей программе, это правило не следует забывать!
Использование static_cast в операциях деления
В уроке №35 мы уже использовали оператор static_cast для вывода символов ASCII в виде целых чисел.
Аналогичным образом мы можем использовать static_cast для конвертации целого числа в число типа с плавающей точкой. Таким образом, вместо целочисленного деления выполнится деление типа с плавающей точкой. Например:
#include <iostream> int main() { int x = 7; int y = 4; std::cout << «int / int = » << x / y << «\n»; std::cout << «double / int = » << static_cast<double>(x) / y << «\n»; std::cout << «int / double = » << x / static_cast<double>(y) << «\n»; std::cout << «double / double = » << static_cast<double>(x) / static_cast<double>(y) << «\n»; return 0; }
#include <iostream> int main() { int x = 7; int y = 4; std::cout << «int / int = » << x / y << «\n»; std::cout << «double / int = » << static_cast<double>(x) / y << «\n»; std::cout << «int / double = » << x / static_cast<double>(y) << «\n»; std::cout << «double / double = » << static_cast<double>(x) / static_cast<double>(y) << «\n»; return 0; } |
Результат выполнения программы выше:
int / int = 1
double / int = 1.75
int / double = 1.75
double / double = 1.75
Деление с остатком
Оператор деления с остатком (%) работает только с целочисленными операндами и возвращает остаток после целочисленного деления. Например, 7 / 4 = 1
с остатком 3
, таким образом, 7 % 4 = 3
. Ещё пример: 25 / 7 = 3
с остатком 4
, таким образом, 25 % 7 = 4
. Остаток составляет не дробь, а целое число. 36 % 5 = 1
, в числе 36 только 35 делится на 5 без остатка, тогда 36 − 35 = 1
, 1
— это остаток и результат.
Данный оператор чаще всего используют для проверки деления нацело одних чисел на другие (без остатка): если х % у == 0
, то х делится нацело на у.
Например, мы хотим написать программу, которая выводит числа от 1 до 100 по 20 значений в каждой строке. Мы можем использовать оператор деления с остатком для создания разрыва строк. Хоть мы ещё и не рассматривали оператор цикла while, в следующей программе всё максимально просто и понятно:
#include <iostream> int main() { // Переменная count хранит текущее число для вывода int count = 1; // начинаем с 1 // Повторение операции (цикл) до тех пор, пока count не будет = 100 while (count <= 100) { std::cout << count << » «; // вывод текущего числа // Если count делится нацело на 20 без остатка, то вставляем разрыв строки и продолжаем с новой if (count % 20 == 0) std::cout << «\n»; count = count + 1; // переходим к следующему числу } // Конец while return 0; } // Конец main()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <iostream> int main() { // Переменная count хранит текущее число для вывода int count = 1; // начинаем с 1 // Повторение операции (цикл) до тех пор, пока count не будет = 100 while (count <= 100) { std::cout << count << » «; // вывод текущего числа // Если count делится нацело на 20 без остатка, то вставляем разрыв строки и продолжаем с новой if (count % 20 == 0) std::cout << «\n»; count = count + 1; // переходим к следующему числу } // Конец while return 0; } // Конец main() |
Результат выполнения программы выше:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
О while мы ещё поговорим в соответствующем уроке.
Отрицательные числа в операциях деления до C++11
До C++11, если любой из операндов целочисленного деления является отрицательным, то компилятор округляет результат самостоятельно! Например, результатом −5 / 2
может быть либо −3
, либо −2
. Однако большинство современных компиляторов округляют числа в сторону 0 (например, в −5 / 2
результатом будет −2
). В спецификации C++11 определили, что компилятор должен всегда округлять к 0 (или, проще говоря, просто отбрасывать дробь).
Также до C++11, если один из операндов оператора деления с остатком является отрицательным, то результаты могут быть как положительными, так и отрицательными! Например, результатом −5 % 2
может быть как 1
, так и −1
. В спецификации C++11 решили сделать так, чтобы результат a % b
был того же знака, что и значение а
.
Арифметические операторы присваивания
Оператор | Символ | Пример | Операция |
Присваивание | = | x = y | Присваиваем значение y переменной x |
Сложение с присваиванием | += | x += y | Добавляем y к x |
Вычитание с присваиванием | −= | x −= y | Вычитаем y от x |
Умножение с присваиванием | *= | x *= y | Умножаем x на y |
Деление с присваиванием | /= | x /= y | Делим x на y |
Деление с остатком и с присваиванием | %= | x %= y | Присваиваем остаток от деления x на y переменной x |
До этого момента, когда нам нужно было добавить число 5 к определённой переменной, мы делали следующее:
Это работает, но требуется два оператора для выполнения.
Так как стейтменты, типа х = х + 5
являются очень распространёнными, то C++ предоставляет 5 арифметических операторов присваивания для нашего удобства. Вместо х = х + 5
, мы можем записать:
Вместо:
Мы можем записать:
Где оператор возведения в степень?
В C++ вместо оператора возведения в степень есть функция pow(), которая находится в заголовочном файле cmath. pow(base, exponent)
эквивалентно baseexponent
. Стоит отметить, что параметры pow() имеют тип double, поэтому вы можете использовать не только целые числа, но и дробные. Например:
#include <iostream> #include <cmath> // подключаем pow() int main() { std::cout << «Enter the base: «; double base; std::cin >> base; std::cout << «Enter the exponent: «; double exp; std::cin >> exp; std::cout << base << «^» << exp << » = » << pow(base, exp) << «\n»; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> #include <cmath> // подключаем pow() int main() { std::cout << «Enter the base: «; double base; std::cin >> base; std::cout << «Enter the exponent: «; double exp; std::cin >> exp; std::cout << base << «^» << exp << » = » << pow(base, exp) << «\n»; return 0; } |
Тест
Задание №1
Вычислите результат следующего выражения: 6 + 5 * 4 % 3
.
Ответ №1
Поскольку операторы * и % имеют более высокий приоритет, чем оператор +, то оператор + будет выполняться последним. Мы можем переписать наше выражение следующим образом: 6 + (5 * 4 % 3)
. Операторы * и % имеют одинаковый приоритет, но их ассоциативность слева направо, так что левый оператор будет выполняться первым. Получается: 6 + ((5 * 4) % 3)
.
6 + ((5 * 4) % 3) = 6 + (20 % 3) = 6 + 2 = 8
Ответ: 8.
Задание №2
Напишите программу, которая просит пользователя ввести целое число, а затем сообщает, является ли его число чётным или нечётным. Напишите функцию isEven(), которая возвращает true, если целое число чётное. Используйте оператор деления с остатком, чтобы определить чётность числа.
Подсказка: Используйте ветвление if и оператор сравнения (==).
Ответ №2
#include <iostream> bool isEven(int x) { // Если x % 2 == 0, то x — чётное число return (x % 2) == 0; } int main() { std::cout << «Enter an integer: «; int x; std::cin >> x; if (isEven(x)) std::cout << x << » is even\n»; else std::cout << x << » is odd\n»; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <iostream> bool isEven(int x) { // Если x % 2 == 0, то x — чётное число return (x % 2) == 0; } int main() { std::cout << «Enter an integer: «; int x; std::cin >> x; if (isEven(x)) std::cout << x << » is even\n»; else std::cout << x << » is odd\n»; return 0; } |
Примечание: Возможно, вы хотели написать или написали функцию isEven() следующим образом:
bool isEven(int x) { if ((x % 2) == 0) return true; else return false; }
bool isEven(int x) { if ((x % 2) == 0) return true; else return false; } |
Хоть этот способ тоже рабочий, но он сложнее. Посмотрим, как его можно упростить. Во-первых, давайте вытащим условие if и присвоим его отдельной переменной типа bool:
bool isEven(int x) { bool isEven = (x % 2) == 0; if (isEven) // isEven — true return true; else // isEven — false return false; }
bool isEven(int x) { bool isEven = (x % 2) == 0; if (isEven) // isEven — true return true; else // isEven — false return false; } |
В коде выше, если isEven — true, то возвращаем true, в противном случае (если isEven — false) возвращаем false. Мы же можем сразу возвращать isEven:
bool isEven(int x) { bool isEven = (x % 2) == 0; return isEven; }
bool isEven(int x) { bool isEven = (x % 2) == 0; return isEven; } |
Так как переменная isEven используется только один раз, то мы можем её вообще исключить:
bool isEven(int x) { return (x % 2) == 0; }
bool isEven(int x) { return (x % 2) == 0; } |
Оценить статью:
Загрузка…Поделиться в социальных сетях: