Cos в c как записать
Перейти к содержимому

Cos в c как записать

  • автор:

Функция cos

Вычисление косинуса, функция cos возвращает косинус угла a , переведенного в радианы.

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

В Си, определён только один прототип этой функции, с типом данных double .

Параметры:

  • a
    Значение с плавающей точкой, представляющее угол в радианах.

Возвращаемое значение

Пример: исходный код программы

// пример использования функции cos #include // для оператора cout #include // для функции cos #define PI 3.14159265 // число ПИ int main() < double param = 60.0; // угол 60 градусов std::cout << "Косинус " << param << " градусов = " << cos(param * PI / 180) // вычисляем косинус угла, переведённого в радианы

cos , cosf , cosl

Косинус x . Если x значение больше или равно 263, или меньше или равно -263, происходит потеря значения в результате.

Входные данные Исключение SEH Исключение _matherr
± QNaN, IND нет _DOMAIN
± INF INVALID _DOMAIN

Замечания

Поскольку C++ допускает перегрузку, можно вызывать перегрузки cos , которые принимают и возвращают значения float или long double . В программе C, если вы не используете для вызова этой функции, cos всегда принимает и возвращает значение double .

Если вы используете cos() , тип аргумента определяет, какая версия функции выбрана. Дополнительные сведения см . в разделе «Математика с универсальным типом».

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью «Глобальное состояние» в CRT.

Требования

Маршрут Обязательный заголовок C Обязательный заголовок C++
cos , cosh , cosf или
макрос cos()

Дополнительные сведения о совместимости см. в разделе Совместимость.

cos в C/C++: разбираемся с примерами

�� Привет! В этой статье мы разберем функцию cos в C/C++. Эта функция вычисляет косинус угла. Начнем мы с рассмотрения примера использования этой функции, а потом попробуем реализовать ее самостоятельно. В конце статьи вы найдете упражнения для закрепления материала.

Иллюстрация косинуса

Как вычислить косинус в C++

Для вычисления косинуса в C++ мы можем воспользоваться функцией cos . Эта функция объявлена в заголовочном файле math.h . В C++ вы можете подключать cmath . Выглядит эта функция следующим образом:

double cos (double x);
  • Первым аргументом функция принимает вещественное число. Тут мы передаем угол в радианах, для которого нужно посчитать косинус.
  • Функция возвращает косинус переданного ей угла.

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

#include #include using namespace std; int main()  cout  <"cos(M_PI * 1 / 3) token operator"> <cos(M_PI * 1 / 3)  ; cout  <"cos(M_PI * 2 / 3) token operator"> <cos(M_PI * 2 / 3)  ; cout  <"cos(M_PI) token operator"> <cos(M_PI)  ; cout  <"cos(0) token operator"> <cos(0)  ; cout  <"cos(2 * M_PI) token operator"> <cos(2 * M_PI)  ; return 0; >

Константа M_PI доступна после подключения библиотеки . Это число примерно равно 3.1415.

cos(M_PI * 1 / 3) = 0.5 cos(M_PI * 2 / 3) = -0.5 cos(M_PI) = -1 cos(0) = 1 cos(2 * M_PI) = 1

Что будет выведено на экран?

#include #include using namespace std; int main()  cout  <"cos(M_PI / 4) token operator"> <cos(M_PI / 4)  ; return 0; >

Косинус угла равного π/4 радиан (или 45 градусов) равен √2/2, что примерно равно 0.7071.

Как реализовать cos самому

Для вычисления косинуса без помощи сторонних библиотек, мы воспользуемся рядом Тейлора. Он позволяют разложить косинус на сумму вида:

Ряд Тейлора для cos

Давайте реализуем функцию, которая будет подсчитывать этот ряд:

#include #include using namespace std; // в этой функции мы будем считать факториал числа рекурсивно int factorial(int n)  if (n == 0)  return 1; > return n * factorial(n - 1); > // подсчет степени числа double pow(double base, int exponent)  double result = 1; for (int i = 0; i  exponent; i++)  result *= base; > return result; > // нам нужно будет знать знак числа double sign(double x)  if (x > 0)  return 1; > else if (x  0)  return -1; > else  return 0; > > // подсчет косинуса через ряд Тейлора выше double my_cos(double x)  // наша реализация работает только для чисел от -2*M_PI до 2*M_PI // поэтому мы пользуемся тем, что cos(x) == cos(x + 2*M_PI) для любого x while (fabs(x) >= 2 * M_PI)  x -= sign(x) * 2 * M_PI; > double result = 1; // тут мы подсчитываем 4 элементов ряда // можно подсчитывать больше для лучшей точности for (int i = 1; i  4; i++)  double term = (double)pow(x, 2 * i) / factorial(2 * i); if (i % 2 == 1)  result -= term; > else  result += term; > > return result; > int main()  cout  <"my_cos(M_PI * 1 / 3) token operator"> <my_cos(M_PI * 1 / 3)  ; cout  <"my_cos(M_PI * 2 / 3) token operator"> <my_cos(M_PI * 2 / 3)  ; cout  <"my_cos(M_PI) token operator"> <my_cos(M_PI)  ; cout  <"my_cos(0) token operator"> <my_cos(0)  ; cout  <"my_cos(2 * M_PI) token operator"> <my_cos(2 * M_PI)  ; return 0; >

Вывод этой программы:

my_cos(M_PI * 1 / 3) = 0.5 my_cos(M_PI * 2 / 3) = -0.499567 my_cos(M_PI) = -0.976022 my_cos(0) = 1 my_cos(2 * M_PI) = 1

Как вы можете видеть, наша функция подсчитывает косинус угла с погрешностью.

Функции cosl и cosf

Функции cosl и cosf работают как и обычный cos , только с другими типами. Давайте посмотрим на прототип функции cosl :

long double cosl (long double x);

Как можете видеть, функция cosl принимает и возвращает long double ( cos принимает и возвращает просто double ). Теперь давайте посмотрим на cosf :

float cosf (float x);

Тут мы уже видим float . Давайте попробуем сравнить результаты этих функций:

cout  "cosf(M_PI * 1 / 2) token operator"> cosf(M_PI * 1 / 2)  endl; cout  "cos (M_PI * 1 / 2) token operator"> cos(M_PI * 1 / 2)  endl; cout  "cosl(M_PI * 1 / 2) token operator"> cosl(M_PI * 1 / 2)  endl;
cosf(M_PI * 1 / 2) = -4.37114e-08 cos (M_PI * 1 / 2) = 6.12323e-17 cosl(M_PI * 1 / 2) = 6.12323e-17

Все результаты близки к нулю, но немного отличаются. Это из-за разной точности типов данных, которыми они оперируют.

  1. Использование cos :
    Напишите программу на C++, которая запрашивает у пользователя угол в радианах, вычисляет его косинус с помощью функции cos и выводит результат. Также программа должна выводить введенный пользователем угол.
  2. Собственная реализация cos :
    Используя ряд Тейлора из статьи, создайте свою функцию для вычисления косинуса. Проверьте её работу на различных углах и сравните с результатами стандартной функции cos .
  3. Сравнение точности:
    Напишите программу, которая сравнивает результаты вычисления косинуса с использованием стандартной функции cos и вашей собственной реализации. Выведите разницу между ними для различных углов.

Читайте также

В этом уроке вы познакомитесь с функцией log в C++. Данная функция позволяет нам получить натуральный логарифм числа. Мы разберемся с тем как работает функция log в теории и закрепим изученное на практике.

Функция find в C++
Разберемся в функции find из C++ и научимся использовать ее с такими контейнерами, как vector и set.
Функция atoi в C++

Функция atoi позволяет получить число из строки. В данной статье вы узнаете, как использовать данную функцию, возможные проблемы, а также реализуете аналог данной функции сами. Закрепить изученный материал нам помогут упражнения в конце статьи.

strcat в C/C++

Функция strcat используется в языках C и C++ для соединения (конкатенации) строк. В статье будут разобраны примеры использования этой функции. Также в конце статьи есть упражнения.

В данном уроке вы узнаете: что такое map, как правильно его использовать, какими функциями можно оперировать, а также стоит ли его использовать у себя в проектах.

strlen в C/C++

Функция strlen используется в языке программирования C для подсчета количества символов в строке. В статье будут разобраны примеры использования этой функции. Также мы реализуем эту функцию сами, а в конце статьи есть упражнения для закрепления материала.

Функция rand в C++

Язык C++ имеет несколько способов генерации случайных чисел. Функция rand — один из самых популярных способов получить случайное число. В этой статье мы научимся использовать эту функцию, генерировать случайные числа в диапазоне, а также реализуем свой простенький генератор случайных чисел.

vector::size в C++

В C++, контейнер std::vector представляет собой динамический массив, который может автоматически изменять свой размер. Часто возникает необходимость определить, сколько элементов на данный момент содержит vector. Встречайте функцию size! В этой статье мы рассмотрим, как работает функция size, покажем практические примеры и расскажем о других полезных функциях.

map::count в C++

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

Функция sqrt используется в языках C и C++ для вычисления квадратного корня числа. В статье будут разобраны примеры использования этой функции. Также в конце ста

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

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