Перейти к содержимому

Как подключить математические функции в c

  • автор:

Как подключить математические функции в c

Стандартная библиотека языка Си предоставляет ряд математических функций, которые определены в разных заголовочных файлах, но в основном определены в файле math.h .

Степерь числа. pow

Функция pow() , определенная в заголовочном файле math.h , возвращает степень числа:

#include #include int main(void) < printf("pow(2, 3) = %.f\n", pow(2, 3)); // 2 в степени 3 printf("pow(5, 2) = %.f\n", pow(5, 2)); // 5 в степени 2 return 0; >

Стоит отметить, что эта функция возвращает число типа double .

Для возведения в степень чисел типа float и long double также определены функции powf() и powl() соответственно.

Округление числа. round

Функция round() округляет число до ближайшего целого. В качестве параметра она принимает число типа double :

#include #include int main(void) < double n1 = 3.14; printf("round(%.2f) = %.2f\n", n1, round(n1)); // round(3.14) = 3.00 double n2 = 3.49; printf("round(%.2f) = %.2f\n", n2, round(n2)); // round(3.49) = 3.00 double n3 = 3.5; printf("round(%.2f) = %.2f\n", n3, round(n3)); // round(3.50) = 4.00 return 0; >

Квадратный корень. sqrt

Функция sqrt() возвращает квадратный корень числа типа double :

#include #include int main(void) < double n1 = 224; printf("sqrt(%.f) = %.f\n", n1, sqrt(n1)); // sqrt(224) = 15 double n2 = 36; printf("sqrt(%.f) = %.f\n", n2, sqrt(n2)); // sqrt(36) = 6 return 0; >

Для получения квадратного корня числа float также есть функция sqrtf() , а для числа типа long double — функция sqrtl()

abs

Функция abs , определенная в файле «stdlib.h», возвращает абсолютное значение числа

#include #include int main(void) < int m = -15; int n = 24; printf("abs(m) = %d \n", abs(m)); // abs(m) = 15 printf("abs(n) = %d \n", abs(n)); // abs(n) = 24 return 0; >

Для возвращения абсолютного значения чисел типов long и long long определены в «stdlib.h» функции labs и llabs соответственно. Для получения абсолютного значения для числа типа float в файле math.h определена функция fasbs . Все эти функцию работают аналогично abs()

Математическая библиотека языков C и C++

В стандартную математическую библиотеку языка Си (а, значит, и C++) входит множество специальных математических функций, которые нужно знать и уметь использовать. Для того, чтобы использовать эти функции в своей программе, необходимо подключить заголовочный файл, содержащий описания этих функций, что делается строчкой в начале программы:

#include 

В языке C++ нужно указывать название заголовочного файла так:

#include

Функция от одного аргумента вызывается, например, так: sin(x) . Вместо числа x может быть любое число, переменная или выражение. Функция возвращает значение, которое можно вывести на экран, присвоить другой переменной или использовать в выражении:

y = sin(x);
printf("%lf", sqrt(2));
Функция Описание
Округление
round Округляет число по правилам арифметики, то есть round(1.5) == 2 , round(-1.5) == -2
floor Округляет число вниз (“пол”), при этом floor(1.5) == 1 , floor(-1.5) == -2
ceil Округляет число вверх (“потолок”), при этом ceil(1.5) == 2 , ceil(-1.5) == -1
trunc Округление в сторону нуля (отбрасывание дробной части), при этом trunc(1.5) == 1 , trunc(-1.5) == -1
fabs Модуль (абсолютная величина)
Корни, степени, логарифмы
sqrt Квадратный корень. Использование: sqrt(x)
cbrt Кубический корень. Использование: cbrt(x)
pow Возведение в степень, возвращает a b . Использование: pow(a,b)
exp Экспонента, возвращает e x . Использование: exp(x)
log Натуральный логарифм
log10 Десятичный логарифм
Тригонометрия
sin Синус угла, задаваемого в радианах
cos Косинус угла, задаваемого в радианах
tan Тангенс угла, задаваемого в радианах
asin Арксинус, возвращает значение в радианах
acos Арккосинус, возвращает значение в радианах
atan Арктангенс, возвращает значение в радианах

Также в файле cmath есть набор полезных числовых констант, например, константа M_PI хранит значение числа \(\pi\).

В компиляторе Visual C++ для использования этих констант необходимо объявить директиву препроцессора _USE_MATH_DEFINES перед подключения заголовочного файла cmath .

#define _USE_MATH_DEFINES #include

Деление действительных чисел

Для действительных чисел определены операции сложения, вычитания, умножения и деления.

При этом операция деления выполняется по-разному для переменных и констант целочисленного типа и для переменных и констант действительных типов. В первом случае деление производится нацело с отбрасыванием дробной части, во втором случае — деление производится точно и результатом является действительное число. Более точно, если делимое и делитель одновременно являются целочисленными константами или переменными целочисленных типов, то деление будет целочисленным, а если хотя бы одно из них действительное, то деление будет действительным. Например:

printf(«%lf\n», 10 / 3);
printf(«%lf\n», 10. / 3);
printf(«%lf\n», 10 / 3.);
printf(«%lf\n», 10. / 3.);

выведет 3 в первой строке и 3.33333 в остальных строках.

Результат выполнения деления не зависит от того, какой переменной будет присвоен результат. Если написать double a = 10 / 3; , то переменная a будет равна 3, так как деление 10/3 будет целочисленным, независимо от того, чему будет присвоен результат.

Как подключить математические функции в c

В языке С++ имеется большое количество математических функций. Для их использования в тексте программы необходимо подключить заголовочный файл cmath (ранее использовался math.h).

Прототип и краткое описание

int abs(int i);

Возвращает абсолютное значение целого аргумента i .

double acos(double x);

Функция арккосинуса. Значение аргумента должно находиться в диапазоне от -1 до +1 .

double asin(double x) ;

Функция арксинуса. Значение аргумента должно находиться в диапазоне от -1 до +1 .

double atan(double x) ;

double atan2(double y, double x) ;

Функция арктангенса от значения y / x .

double ceil(double x);

Вычисляет ближайшее целое, не меньшее, чем аргумент x .

double cos(double x);

Функция косинуса. Аргумент задается в радианах.

double exp(double x);

Вычисляет значение (экспоненциальная функция).

double fabs(double x);

Возвращает абсолютное значение вещественного аргумента x двойной точности.

double floor(double x);

Находит наибольшее целое, не превышающее значение x. Возвращает его в форме double.

double fmod(double x, double y);

Возвращает остаток от деления нацело x на y .

double frexp(double value, int *exp);

Разбивает число с плавающей точкой value на нормализованную мантиссу и целую часть как степень числа 2 . Целочисленная степень записывается в область памяти, на которую указывает exp , а мантисса используется как значение, которое возвращает функция.

double hypot(double x, double y);

Вычисляет гипотенузу z прямоугольного треугольника по значениям катетов x , y : .

long labs(long x);

Возвращает абсолютное значение целого (длинного(!) целого) аргумента x .

double ldexp(double v, int e);

Возвращает значение выражения .

double log(double x);

Возвращает значение натурального логарифма ( ln x).

double log10(double x);

Возвращает значение десятичного логарифма ().

double modf(double value, double *iptr);

Разделяет число с плавающей точкой value на целую и дробную части. Целая часть записывается в области памяти, на которую указывает iptr , дробная часть является значением, возвращаемым функцией.

double poly(double x, int n, double c[ ]);

Вычисляет значение полинома: c[n]x n + c[n  1]x n -1 +…+ c[1]x +c[0].

double pow(double x, double y);

Возвращает значение , т.е. x в степени y .

double pow10(int p);

Возвращает значение 10 p .

double sin(double x);

Функция синуса. Угол задается в радианах.

double sinh(double x);

Возвращает значение гиперболического синуса для x .

double sqrt(double x);

Возвращает положительное значение квадратного корня .

double tan(double x);

Функция тангенса. Угол задается в радианах.

double tanh(double x);

Возвращает значение гиперболического тангенса для x .

Как пользоваться этой таблицей? Рассмотрим на примере sin X . Во второй колонке (прототип) написано:

double sin(double x);

Что это означает? Функция sin() возвращает результат типа double (тип результата указан перед именем функции); в качестве входного параметра этой функции также выступает значение типа double (текст в скобках — double x ).

Примеры использования этой функции:

Математические функции

Подписка на Случайные статьи

Стандарт ANSI С определяет 22 математические функции, которые подразделяются на следую­щие категории:

  • Тригонометрические функции
  • Гиперболические функции
  • Экспоненциальные и логарифмические функции
  • Разные функции

Borland реализует все эти функции, а также добавляет несколько собственных. Многие функ­ции, добавленные корпорацией Borland, являются версиями стандартных функций для данных типа long double. Эти функции также обсуждаются ниже.

Для использования математических функций необходимо включить заголовочный файл math.h. В дополнение к объявлению математических функций этот заголовочный файл определяет также три макроса EDOM, ERANGE, HUGE_VAL. Если аргумент математической функции выходит за пределы значений, для которых она определена, то глобальная переменная errno устанавливается равной EDOM, а функция возвращает величину, зависящую от реализации. Если в результате вы­полнения процедуры результат оказывается слишком большим для представления, то возникает пе­реполнение. В результате функция возвращает HUGE_VAL, а переменная errno устанавливается равной ERANGE, указывая тем самым на ошибку, связанную с выходом за допустимую область значений. (Если функция возвращает long double, то при переполнении возвращается _LHUGE_VAL.) Если же возникает потеря значимости, то есть получается результат, который меньше минимально представимого числа, то функция возвращает ноль, а переменная errno устанавливается равной ERANGE

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *