Функции библиотеки C -asin()
Стандартная библиотека C - <math.h>
Описание
asin()является частью стандартной библиотеки C<math.h>Функция, используемая для вычисления арксинуса числа (также известного как функция, обратная синусу, среди обратных тригонометрических функций). Эта функция принимает вещественное число от -1 до 1 и возвращает арксинус этого значения в радианах.
Объявление
Ниже приведено объявление функции asin():
#include <math.h> double asin(double x); float asinf(float x); long double asinl(long double x);
Параметр
- x-- Число с плавающей запятой в диапазоне от -1 до 1.
Возвращаемое значение
- return
xарксинус значения в радианах. Возвращаемое значение находится в диапазоне [-π/2, π/2]. - if
xЕсли значение не входит в диапазон [-1, 1], функция вернёт NaN и установит соответствующую математическую ошибку (например,EDOM)。
Пример
В следующем примере демонстрируется использование функции asin().
Пример
#include <math.h>
int main() {
double x = 0.5;
double result = asin(x);
printf("asin(%f) = %f радиан\n", x, result);
printf("asin(%f) = %f градусов\n", x, result * 180 / M_PI);
return 0;
}
Анализ кода:
- Код сначала включает заголовочный файл
<math.h>и<stdio.h>。 - определяет переменную
x, значение равно 0.5. - Использование
asin()Вычислитьxарксинус от, и сохраняет результат вresultВ. - print
xзначение арксинуса, в радианах. - Преобразуйте результат в градусы и выведите его. Формула преобразования:
弧度 * (180 / π)。
Давайте скомпилируем и запустим приведённую выше программу, которая выдаст следующий результат:
asin(0.500000) = 0.523599 radians asin(0.500000) = 30.000000 degrees
Обработка ошибок
Если входное значениеxнаходится вне допустимого диапазона [-1, 1],asin()вернёт NaN и установитerrnoявляетсяEDOM. Можно использоватьisnan()Функция проверяет, является ли результат NaN:
Пример
#include <math.h>
#include <errno.h>
int main() {
double x = 2.0; // Недопустимый ввод, вне диапазона [-1, 1]
errno = 0; // Сбросить errno
double result = asin(x);
if (errno == EDOM) {
printf("Входное значение вне области определения. asin(%f) не определён.\n", x);
} else {
printf("asin(%f) = %f радиан\n", x, result);
}
return 0;
}
Анализ кода:
- Код пытается вычислить
asin(2.0)это недопустимый ввод, поскольку 2.0 не входит в диапазон [-1, 1]. errnoсбрасывается в 0, затем вызватьasin(x)。- Проверяет
errnoРавно ли оноEDOMЕсли так, выведите сообщение об ошибке. - Если ошибки нет, выводится вычисленный результат.
Давайте скомпилируем и запустим приведённую выше программу, которая выдаст следующий результат:
asin(2.000000) = nan radians
asin()Функция используется для вычисления арксинуса заданного значения и является распространённым инструментом для работы с обратными тригонометрическими операциями. При её использовании следует убедиться, что входное значение находится в диапазоне [-1, 1], и обрабатывать возможные ошибки. Преобразовав результат в градусы, можно понять результат более наглядно.