Как возвести в степень visual studio
Калькулятор: как добавить вычисление корня, квадрата синуса, косинуса
не подскажите как добавить корень,квадрат син,кос для приложения калькулятор под код case "+": .
Вычисление факториала от квадрата числа
программа работает, но что-то не так, факториал вычисляется неправильно. подскажите, в чем дело :(.
Рекурсия: вычисление квадрата натурального числа
можете написать всю программу с объяснениями. Написать рекурсивную функцию для вычисления квадрата.
Math. Pow(Double, Double) Метод
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает указанное число, возведенное в указанную степень.
Параметры
Число двойной точности с плавающей запятой, возводимое в степень.
Число двойной точности с плавающей запятой, задающее степень.
Возвращаемое значение
Число x , возведенное в степень y .
Примеры
В следующем примере метод используется Pow для вычисления значения, полученного от возведения 2 в степень в диапазоне от 0 до 32.
Комментарии
В следующей таблице указано возвращаемое значение, если для параметров и указаны различные значения или диапазоны x значений y . Дополнительные сведения см. в разделах Double.PositiveInfinity, Double.NegativeInfinity и Double.NaN.
Параметры | Возвращаемое значение |
---|---|
x или y = NaN . | NaN |
x = Любое значение NaN , кроме; y = 0. | 1 |
x = NegativeInfinity ; y < 0. | 0 |
x = NegativeInfinity ; y положительное нечетное целое число. | NegativeInfinity |
x = NegativeInfinity ; y положительное, но не нечетное целое число. | PositiveInfinity |
x < 0, но NegativeInfinity не y является целым числом, NegativeInfinity или PositiveInfinity . | NaN |
x =-1; y = NegativeInfinity или PositiveInfinity . | NaN |
-1 < x < 1; y = NegativeInfinity . | PositiveInfinity |
-1 < x < 1; y = PositiveInfinity . | 0 |
x 1; y = NegativeInfinity . | 0 |
x 1; y = PositiveInfinity . | PositiveInfinity |
x = 0; y < 0. | PositiveInfinity |
x = 0; y > 0. | 0 |
x = 1; y — любое значение, кроме NaN . | 1 |
x = PositiveInfinity ; y < 0. | 0 |
x = PositiveInfinity ; y > 0. | PositiveInfinity |
Этот метод вызывает базовую среду выполнения C, а точный результат или допустимый входной диапазон может отличаться в разных операционных системах или архитектурах.
Давайте рассмотрим еще несколько примеров:
Пример, в котором степень и число задается пользователем:
Пояснение: возведение "2" в степень "n" реализуется с помощью сдвига, в общем случае:
- сдвиг влево (в сторону старших разрядов) реализует умножение на два,
- сдвиг вправо (в сторону младших разрядов) реализует деление на два.
Число n должно быть целочисленным.
Пример, в котором не используется функция pow()
В этом примере пользователь вводит числа n и a . Где n — число, которое возводится в степень, a — степень числа. В цикле for, мы умножаем число n на само себя a раз и в результате получаем степень.
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает указанное число, возведенное в указанную степень.
Параметры
Число двойной точности с плавающей запятой, возводимое в степень.
Число двойной точности с плавающей запятой, задающее степень.
Возвращаемое значение
Число x , возведенное в степень y .
Примеры
В следующем примере метод используется Pow для вычисления значения, которое приводит к повышению 2 до мощности в диапазоне от 0 до 32.
Комментарии
В следующей таблице указывается возвращаемое значение, если для и y параметров указаны различные значения или диапазоны значений x . Дополнительные сведения см. в разделах Double.PositiveInfinity, Double.NegativeInfinity и Double.NaN.
Параметры | Возвращаемое значение |
---|---|
x или y = NaN . | NaN |
x = любое значение, кроме NaN ; y = 0. | 1 |
x = NegativeInfinity ; y < 0. | 0 |
x = NegativeInfinity ; y является положительным нечетным целым числом. | NegativeInfinity |
x = NegativeInfinity ; y является положительным, но не нечетным целым числом. | PositiveInfinity |
x < 0, но нет NegativeInfinity ; не является целым числом или NegativeInfinity``PositiveInfinity . y | NaN |
x = -1; y = NegativeInfinity или PositiveInfinity . | NaN |
-1 < < x 1; = y``NegativeInfinity . | PositiveInfinity |
-1 < < x 1; = y``PositiveInfinity . | 0 |
x < -1 или x >1; = y``NegativeInfinity . | 0 |
x < -1 или x >1; = y``PositiveInfinity . | PositiveInfinity |
x = 0; y < 0. | PositiveInfinity |
x = 0; y > 0. | 0 |
x = 1; y — любое значение, кроме NaN . | 1 |
x = PositiveInfinity ; y < 0. | 0 |
x = PositiveInfinity ; y > 0. | PositiveInfinity |
Этот метод вызывает базовую среду выполнения C, а точный результат или допустимый диапазон входных данных может отличаться между разными операционными системами или архитектурами.
Рассмотрим основные методы класса Math:
Abs(double value) : возвращает абсолютное значение для аргумента value
Acos(double value) : возвращает арккосинус value. Параметр value должен иметь значение от -1 до 1
Asin(double value) : возвращает арксинус value. Параметр value должен иметь значение от -1 до 1
Atan(double value) : возвращает арктангенс value
BigMul(int x, int y) : возвращает произведение x * y в виде объекта long
Ceiling(double value) : возвращает наименьшее целое число с плавающей точкой, которое не меньше value
Cos(double d) : возвращает косинус угла d
Cosh(double d) : возвращает гиперболический косинус угла d
DivRem(int a, int b, out int result) : возвращает результат от деления a/b, а остаток помещается в параметр result
Exp(double d) : возвращает основание натурального логарифма, возведенное в степень d
Floor(decimal d) : возвращает наибольшее целое число, которое не больше d
IEEERemainder(double a, double b) : возвращает остаток от деления a на b
Log(double d) : возвращает натуральный логарифм числа d
Log(double a, double newBase) : возвращает логарифм числа a по основанию newBase
Log10(double d) : возвращает десятичный логарифм числа d
Max(double a, double b) : возвращает максимальное число из a и b
Min(double a, double b) : возвращает минимальное число из a и b
Pow(double a, double b) : возвращает число a, возведенное в степень b
Round(double d) : возвращает число d, округленное до ближайшего целого числа
Round(double a, int b) : возвращает число a, округленное до определенного количества знаков после запятой, представленного параметром b
Sign(double value) : возвращает число 1, если число value положительное, и -1, если значение value отрицательное. Если value равно 0, то возвращает 0
Sin(double value) : возвращает синус угла value
Sinh(double value) : возвращает гиперболический синус угла value
Sqrt(double value) : возвращает квадратный корень числа value
Tan(double value) : возвращает тангенс угла value
Tanh(double value) : возвращает гиперболический тангенс угла value
Truncate(double value) : отбрасывает дробную часть числа value, возвращаяя лишь целое значние
Также класс Math определяет две константы: Math.E и Math.PI . Например, вычислим площадь круга:
Программирование и разработка
В математике мы всегда использовали термин «возвести в степень» для вычисления числа с некоторым показателем степени. Это можно сказать как (базовое число) возведение в степень (показатель степени). Итак, в сегодняшней статье мы увидим, как можно использовать экспоненту для возведения числа в определенную степень в C ++. Убедитесь, что в вашей операционной системе Linux уже установлен и настроен компилятор G ++. Начнем реализацию сегодняшней статьи с открытия терминала оболочки с помощью сочетания клавиш «Ctrl + Alt + T». Теперь, когда терминал открыт, мы можем приступить к реализации наших примеров.
Пример 1
Во-первых, создайте внутри него файл C ++. Используйте ключевое слово touch с новым именем файла с расширением C ++. Файл будет создан в вашей домашней папке системы Linux. Вы можете открыть этот файл, дважды коснувшись его непосредственно в текстовом редакторе, чтобы внести в него код. В системе Linux есть еще один встроенный редактор, то есть Nano и vim. Мы использовали GNU Nano, чтобы напрямую открыть новый файл в консоли оболочки. Таким образом, обе команды для создания и открытия файла C ++ показаны в терминале на изображении ниже.
Мы начали наш самый первый пример, используя простой ручной способ возвести число в степень с помощью экспоненты в C ++. Итак, мы включили заголовок библиотеки потока ввода-вывода в первую строку кода после открытия файла. Стандартное пространство имен было использовано в коде после файла заголовка. Эти два необходимы для запуска и выполнения нашего кода C ++. Выполнение кода C ++ в основном начинается с метода main (). Таким образом, мы использовали здесь функцию main () при инициализации некоторых целочисленных переменных значением 1, т.е. B обозначает основание, e обозначает показатель степени, res обозначает результат.
Стандартное предложение cout использовалось для того, чтобы все пользователи вводили базовое значение, т.е. Число. Предложение cin используется для получения ввода от пользователя в переменной «b» в качестве базового значения, которое будет возведено в степень. Другой оператор cout сообщает пользователю ввести значение экспоненты, т.е. Число. Это число будет использоваться в качестве степени основного числа. Предложение cin использовалось для получения числа экспоненты в качестве ввода от пользователя во время выполнения. Цикл for использовался для вычисления значения основного числа, используя показатель степени в качестве его степени. Цикл будет выполняться от 0 до значения экспоненты, введенного пользователем в качестве входных данных, т.е. 2,3,4,5,6 и т. Д. До тех пор, значение переменной «res» будет умножено на введенное число базового значения. пользователем. Переменная res использует 1 в качестве начального значения, в то время как ее значение будет изменено на следующей последовательной итерации.
Вот как мы вручную вычисляем число с показателем степени, чтобы возвести число в степень. Сначала сохраните файл кода, используя Ctrl + S. Теперь закройте файл, чтобы вернуться к терминалу с помощью сочетания клавиш «Ctrl + X».
Теперь пришло время скомпилировать только что созданный файл кода C ++. Таким образом, мы уже установили компилятор C ++ в нашу систему Ubuntu 20.04 с именем g ++. Компиляция этого кода ничего не возвращает. Это показывает, что наш код на C ++ верен во всех отношениях. Выполнение любого кода C ++ можно выполнить с помощью команды «./a.out» в оболочке. Итак, мы использовали тот же самый. Пользователя попросили ввести базовое число. Таким образом, мы добавили 6 в качестве базового значения. Затем пользователя попросили ввести значение экспоненты, которое будет использоваться в качестве степени основного числа. На этот раз пользователь ввел 5. Программа цикла «for» взяла оба значения и вычислила результирующее значение 7776 для числа с основанием 6, имеющего показатель степени, возведенный в степень 5. Это было вычислено как простая математическая логика 6 * 6 * 6 * 6 * 6.
Пример 2
Скомпилировал код компилятором G ++ и не получил ошибок, т.е. компиляция прошла успешно, так как код не содержит логических или синтаксических ошибок. Выполнение было выполнено теми же командами «./a.out» в оболочке. Взамен мы получили значение 343 как результат вычисления основания 7, возведенного в степень 3.
Давайте внимательно посмотрим на степенную функцию, чтобы узнать, как она реагирует на показатель степени 0. Итак, мы снова открыли тот же файл и оставили общий код без изменений. Единственное изменение, которое мы сделали, заключено в скобки функции pow (). Здесь мы использовали показатель степени 0, чтобы увидеть, будет ли вычисленное значение 1 или нет. Оставьте файл после его сохранения.
Итак, после компиляции этого кода мы его выполнили. Результат — 1, как и ожидалось.
Давайте посмотрим, как функция pow () работает со степенью отрицательной экспоненты, чтобы возвести число в степень. Итак, мы открыли то же самое и изменили только степенную функцию. Остальной код остался без изменений. Мы добавили −2 как показатель степени. Запустим этот файл.
После компиляции и выполнения файла мы получили 0 в результате отрицательной экспоненты.
На иллюстрации ниже мы использовали отрицательное базовое значение и положительную экспоненту.
В результате мы получили положительный результат за счет использования четной положительной экспоненты.
Заключение
В этой статье объясняется, как использовать экспоненту для возведения числа в определенную степень в коде C ++. Для достижения этой цели мы использовали ручной цикл for и функцию power (). Все примеры, использованные в этой статье, просты и понятны каждому базовому и опытному пользователю. Мы уверены, что эта статья поможет любому пользователю C ++.
Оператор остатка от деления – это оператор, который возвращает остаток после целочисленного деления. Например, 7/4 = 1 и остаток 3 . Следовательно, 7 % 4 = 3 . В качестве другого примера, 25/7 = 3 и остаток 4, таким образом, 25 % 7 = 4 . Оператор остатка от деления работает только с целочисленными операндами.
Этот оператор наиболее полезен для проверки того, делится ли одно число без остатка на другое число: если x % y принимает значение 0, то мы знаем, что x без остатка делится на y .
Вот результаты нескольких запусков этой программы:
Теперь давайте рассмотрим пример, в котором второе число больше первого:
Поначалу остаток от 2 может быть немного неочевидным, но это просто: 2/4 равно 0 (с использованием целочисленного деления), остаток 2. Когда второе число больше первого, второе число разделит первое число на 0 раз, поэтому первое число будет остатком.
Остаток от деления с отрицательными числами
Оператор остатка от деления также может работать с отрицательными операндами. x % y всегда возвращает результаты со знаком x .
Запускаем приведенную выше программу:
В обоих случаях вы можете видеть, что остаток принимает знак первого операнда.
Предупреждение
До C++11 оператор остатка от деления с отрицательным операндом мог давать как положительный, так и отрицательный результат. В C++11 это стало предсказуемым.
Где оператор возведения в степень?
Вы заметите, что оператор ^ (обычно используемый для обозначения возведения в степень в математике) – в C++ это побитовая операция XOR (исключающее ИЛИ) (описанная в уроке «O.3 – Битовые манипуляции с побитовыми операторами и битовыми масками»). В C++ нет оператора возведения в степень.
Обратите внимание, что параметры (и возвращаемое значение) функции pow() имеют тип double . Из-за ошибок округления в числах с плавающей запятой результаты pow() могут быть неточными (даже если вы передадите ей целочисленные значения или целые числа).
Если вы хотите выполнить целочисленное возведение в степень, лучше всего использовать для этого свою собственную функцию. Следующая функция реализует целочисленное возведение в степень (с использованием для повышения эффективности неинтуитивного алгоритма «возведения в возведения в квадрат»):
Не волнуйтесь, если вы не понимаете, как работает эта функция – чтобы вызывать ее, вам не нужно понимать ее внутреннюю работу.
Данная программа выводит следующее:
Предупреждение
В подавляющем большинстве случаев целочисленное возведение в степень приведет к переполнению целочисленного типа. Вероятно, именно поэтому такая функция не была включена в стандартную библиотеку.
Небольшой тест
Вопрос 1
Что будет результатом вычисления следующего выражения? 6 + 5 * 4 % 3
Поскольку * и % имеют более высокий приоритет, чем + , + будет вычисляться последним. Мы можем переписать наше выражение как 6 + (5 * 4 % 3) . Операторы * и % имеют одинаковый приоритет, поэтому мы должны учитывать ассоциативность для их вычисления. Ассоциативность для операторов * и % – слева направо, поэтому сначала мы вычисляем левый оператор. Мы можем переписать наше выражение так: 6 + ((5 * 4) % 3) .
6 + ((5 * 4) % 3) = 6 + (20 % 3) = 6 + 2 = 8
Вопрос 2
Напишите программу, которая просит пользователя ввести целое число и сообщает пользователю, четное это число или нечетное. Напишите функцию с именем isEven() , которая возвращает true (истину), если переданное ей целое число четное, и false (ложь) в противном случае. Чтобы проверить, является ли целочисленный параметр четным, используйте оператор остатка от деления.
Подсказка: в этой программе вам нужно будет использовать операторы if и оператор сравнения ( == ). Если вам нужно напомнить, как это сделать, смотрите урок «4.9 – Логические (булевы) значения».
Ваша программа должна давать следующий вывод:
Примечание: у вас может возникнуть соблазн написать функцию isEven() следующим образом:
Хотя это работает, но это сложнее, чем должно быть. Давайте посмотрим, как это можно упростить. Во-первых, давайте вытащим условное выражение if и присвоим его отдельному логическому значению:
Теперь обратите внимание, что оператор if выше, по сути, говорит: «Если isEvenNumber равно true , вернуть true , в противном случае, если isEvenNumber равно false , вернуть false ». Если это так, мы можем просто вернуть isEvenNumber :
И в этом случае, поскольку мы используем переменную isEvenNumber только один раз, мы могли бы также исключить и ее:
Читайте также: