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
Вычисление косинуса, функция 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) // вычисляем косинус угла, переведённого в радианы
Стандартные математические функции в языке Си
Математические вычисления не ограничиваются лишь арифметическими действиями. Кроме них, можно ещё встретить корни, модули, логарифмы, тригонометрические функции и пр. Научимся же использовать подобные функции в своих программах.
Для использования математических функций нужно подключить заголовочный файл math.h . В ней определено много различных функций, но мы пока рассмотрим следующие:
Некоторые математические функции
fabs(x) модуль числа x
sqrt(x) квадратный корень из числа x
sin(x) синус числа x (х в радианах)
cos(x) косинус числа x (х в радианах)
pow(x, y) вычисление x y
exp(x) вычисление e x
log(x) натуральный логарифм числа x
log10(x) десятичный логарифм числа x
- Все функции возвращают значение типа double .
- Параметры функций – вещественные числа( double ), но можно передавать и целые числа. При этом произойдёт неявное преобразование типа . Компилятор из целого числа, например 3, сделает вещественное 3.0.
#include #include // подключаем math.h int main (void)
Вычислить синус угла ввёденного с клавиатуры. Угол вводится в градусах.
#include #include // подключаем math.h int main (void) < double alpha, sin_a, pi = 3.1415926; scanf("%lf",&alpha); alpha = alpha*pi/180; sin_a = sin(alpha); printf("%.2f\n", sin_a); return 0; >
В этой программе есть о чём поговорить. Тригонометрические функции, которые определены в math.h работают с радианной мерой угла. Людям же привычнее работать с градусами. Поэтому в данной программе мы предварительно перевели значение из градусов в радианы. Если этого не сделать, результат получится неправильным. Проверьте это самостоятельно.
Неявное преобразование типов
При явном преобразовании типа мы в скобках перед значением указывали тип, к которому нужно привести данное значение. В неявном преобразовании этого делать не нужно. Компилятор автоматически подберёт необходимый тип. Неявное преобразование типов осуществляется в следующих случаях:
- перед передачей аргументов в функцию (как в нашем примере с корнем. Листинг 1.)
- выполнение арифметических операций с разными типами аргументов
- перед выполнением присваивания
- если выполняются арифметические операции с разными типами аргументов. Оба аргумента приводятся к большему типу.
Порядок типов: int < float < double - при присваивании. Значение справа от оператора присваивания приводится к типу переменной слева от оператора присваивания. При этом, если больший тип присваивается меньшему, то может произойти потеря точности.
Примеры: int+float будет автоматически преобразовано к float+float
float/int будет автоматически преобразовано к float/float
double*float будет преобразовано к double*double
int = double double будет преобразовано к int с потерей дробной части
float = int int будет преобразовано к float
Сохрани в закладки или поддержи проект.
Практика

Решите предложенные задачи: Для удобства работы сразу переходите в полноэкранный режим
Дополнительные материалы
- пока нет
Math. Cos(Double) Метод
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает косинус указанного угла.
public: static double Cos(double d);
public static double Cos (double d);
static member Cos : double -> double
Public Shared Function Cos (d As Double) As Double
Параметры
Угол, измеряемый в радианах.
Возвращаемое значение
Косинус d . Если значение параметра d равно NaN, NegativeInfinity или PositiveInfinity, то данный метод возвращает NaN.
Примеры
В следующем примере используется Cos для оценки определенных тригонометрических удостоверений для выбранных углов.
// Example for the trigonometric Math.Sin( double ) // and Math.Cos( double ) methods. using namespace System; // Evaluate trigonometric identities with a given angle. void UseSineCosine( double degrees ) < double angle = Math::PI * degrees / 180.0; double sinAngle = Math::Sin( angle ); double cosAngle = Math::Cos( angle ); // Evaluate sin^2(X) + cos^2(X) == 1. Console::WriteLine( "\n Math::Sin(deg) == \n" " Math::Cos( deg) == ", degrees, Math::Sin( angle ), Math::Cos( angle ) ); Console::WriteLine( "(Math::Sin( deg))^2 + (Math::Cos( deg))^2 == ", degrees, sinAngle * sinAngle + cosAngle * cosAngle ); // Evaluate sin(2 * X) == 2 * sin(X) * cos(X). Console::WriteLine( " Math::Sin( deg) == ", 2.0 * degrees, Math::Sin( 2.0 * angle ) ); Console::WriteLine( " 2 * Math::Sin( deg) * Math::Cos( deg) == ", degrees, 2.0 * sinAngle * cosAngle ); // Evaluate cos(2 * X) == cos^2(X) - sin^2(X). Console::WriteLine( " Math::Cos( deg) == ", 2.0 * degrees, Math::Cos( 2.0 * angle ) ); Console::WriteLine( "(Math::Cos( deg))^2 - (Math::Sin( deg))^2 == ", degrees, cosAngle * cosAngle - sinAngle * sinAngle ); > // Evaluate trigonometric identities that are functions of two angles. void UseTwoAngles( double degreesX, double degreesY ) < double angleX = Math::PI * degreesX / 180.0; double angleY = Math::PI * degreesY / 180.0; // Evaluate sin(X + Y) == sin(X) * cos(Y) + cos(X) * sin(Y). Console::WriteLine( "\n Math::Sin(deg) * Math::Cos( deg) +\n" " Math::Cos( deg) * Math::Sin( deg) == ", degreesX, degreesY, Math::Sin( angleX ) * Math::Cos( angleY ) + Math::Cos( angleX ) * Math::Sin( angleY ) ); Console::WriteLine( " Math::Sin( deg) == ", degreesX + degreesY, Math::Sin( angleX + angleY ) ); // Evaluate cos(X + Y) == cos(X) * cos(Y) - sin(X) * sin(Y). Console::WriteLine( " Math::Cos( deg) * Math::Cos( deg) -\n" " Math::Sin( deg) * Math::Sin( deg) == ", degreesX, degreesY, Math::Cos( angleX ) * Math::Cos( angleY ) - Math::Sin( angleX ) * Math::Sin( angleY ) ); Console::WriteLine( " Math::Cos( deg) == ", degreesX + degreesY, Math::Cos( angleX + angleY ) ); > int main() < Console::WriteLine( "This example of trigonometric " "Math::Sin( double ) and Math::Cos( double )\n" "generates the following output.\n" ); Console::WriteLine( "Convert selected values for X to radians \n" "and evaluate these trigonometric identities:" ); Console::WriteLine( " sin^2(X) + cos^2(X) == 1\n" " sin(2 * X) == 2 * sin(X) * cos(X)" ); Console::WriteLine( " cos(2 * X) == cos^2(X) - sin^2(X)" ); UseSineCosine( 15.0 ); UseSineCosine( 30.0 ); UseSineCosine( 45.0 ); Console::WriteLine( "\nConvert selected values for X and Y to radians \n" "and evaluate these trigonometric identities:" ); Console::WriteLine( " sin(X + Y) == sin(X) * cos(Y) + cos(X) * sin(Y)" ); Console::WriteLine( " cos(X + Y) == cos(X) * cos(Y) - sin(X) * sin(Y)" ); UseTwoAngles( 15.0, 30.0 ); UseTwoAngles( 30.0, 45.0 ); >/* This example of trigonometric Math::Sin( double ) and Math::Cos( double ) generates the following output. Convert selected values for X to radians and evaluate these trigonometric identities: sin^2(X) + cos^2(X) == 1 sin(2 * X) == 2 * sin(X) * cos(X) cos(2 * X) == cos^2(X) - sin^2(X) Math::Sin(15 deg) == 2.5881904510252074E-001 Math::Cos(15 deg) == 9.6592582628906831E-001 (Math::Sin(15 deg))^2 + (Math::Cos(15 deg))^2 == 1.0000000000000000E+000 Math::Sin(30 deg) == 4.9999999999999994E-001 2 * Math::Sin(15 deg) * Math::Cos(15 deg) == 4.9999999999999994E-001 Math::Cos(30 deg) == 8.6602540378443871E-001 (Math::Cos(15 deg))^2 - (Math::Sin(15 deg))^2 == 8.6602540378443871E-001 Math::Sin(30 deg) == 4.9999999999999994E-001 Math::Cos(30 deg) == 8.6602540378443871E-001 (Math::Sin(30 deg))^2 + (Math::Cos(30 deg))^2 == 1.0000000000000000E+000 Math::Sin(60 deg) == 8.6602540378443860E-001 2 * Math::Sin(30 deg) * Math::Cos(30 deg) == 8.6602540378443860E-001 Math::Cos(60 deg) == 5.0000000000000011E-001 (Math::Cos(30 deg))^2 - (Math::Sin(30 deg))^2 == 5.0000000000000022E-001 Math::Sin(45 deg) == 7.0710678118654746E-001 Math::Cos(45 deg) == 7.0710678118654757E-001 (Math::Sin(45 deg))^2 + (Math::Cos(45 deg))^2 == 1.0000000000000000E+000 Math::Sin(90 deg) == 1.0000000000000000E+000 2 * Math::Sin(45 deg) * Math::Cos(45 deg) == 1.0000000000000000E+000 Math::Cos(90 deg) == 6.1230317691118863E-017 (Math::Cos(45 deg))^2 - (Math::Sin(45 deg))^2 == 2.2204460492503131E-016 Convert selected values for X and Y to radians and evaluate these trigonometric identities: sin(X + Y) == sin(X) * cos(Y) + cos(X) * sin(Y) cos(X + Y) == cos(X) * cos(Y) - sin(X) * sin(Y) Math::Sin(15 deg) * Math::Cos(30 deg) + Math::Cos(15 deg) * Math::Sin(30 deg) == 7.0710678118654746E-001 Math::Sin(45 deg) == 7.0710678118654746E-001 Math::Cos(15 deg) * Math::Cos(30 deg) - Math::Sin(15 deg) * Math::Sin(30 deg) == 7.0710678118654757E-001 Math::Cos(45 deg) == 7.0710678118654757E-001 Math::Sin(30 deg) * Math::Cos(45 deg) + Math::Cos(30 deg) * Math::Sin(45 deg) == 9.6592582628906831E-001 Math::Sin(75 deg) == 9.6592582628906820E-001 Math::Cos(30 deg) * Math::Cos(45 deg) - Math::Sin(30 deg) * Math::Sin(45 deg) == 2.5881904510252085E-001 Math::Cos(75 deg) == 2.5881904510252096E-001 */
// Example for the trigonometric Math.Sin( double ) // and Math.Cos( double ) methods. using System; class SinCos < public static void Main() < Console.WriteLine( "This example of trigonometric " + "Math.Sin( double ), Math.Cos( double ), and Math.SinCos( double )\n" + "generates the following output.\n" ); Console.WriteLine( "Convert selected values for X to radians \n" + "and evaluate these trigonometric identities:" ); Console.WriteLine( " sin^2(X) + cos^2(X) == 1\n" + " sin(2 * X) == 2 * sin(X) * cos(X)" ); Console.WriteLine( " cos(2 * X) == cos^2(X) - sin^2(X)" ); Console.WriteLine( " cos(2 * X) == cos^2(X) - sin^2(X)" ); UseSineCosine(15.0); UseSineCosine(30.0); UseSineCosine(45.0); Console.WriteLine( "\nConvert selected values for X and Y to radians \n" + "and evaluate these trigonometric identities:" ); Console.WriteLine( " sin(X + Y) == sin(X) * cos(Y) + cos(X) * sin(Y)" ); Console.WriteLine( " cos(X + Y) == cos(X) * cos(Y) - sin(X) * sin(Y)" ); UseTwoAngles(15.0, 30.0); UseTwoAngles(30.0, 45.0); Console.WriteLine( "\nWhen you have calls to sin(X) and cos(X) they \n" + "can be replaced with a single call to sincos(x):" ); UseCombinedSineCosine(15.0); UseCombinedSineCosine(30.0); UseCombinedSineCosine(45.0); >// Evaluate trigonometric identities with a given angle. static void UseCombinedSineCosine(double degrees) < double angle = Math.PI * degrees / 180.0; (double sinAngle, double cosAngle) = Math.SinCos(angle); // Evaluate sin^2(X) + cos^2(X) == 1. Console.WriteLine( "\n Math.SinCos(deg) == (, )", degrees, sinAngle, cosAngle); Console.WriteLine( "(double sin, double cos) = Math.SinCos( deg)", degrees ); Console.WriteLine( "sin^2 + cos^2 == ", sinAngle * sinAngle + cosAngle * cosAngle ); > // Evaluate trigonometric identities with a given angle. static void UseSineCosine(double degrees) < double angle = Math.PI * degrees / 180.0; double sinAngle = Math.Sin(angle); double cosAngle = Math.Cos(angle); // Evaluate sin^2(X) + cos^2(X) == 1. Console.WriteLine( "\n Math.Sin(deg) == \n" + " Math.Cos( deg) == ", degrees, Math.Sin(angle), Math.Cos(angle) ); Console.WriteLine( "(Math.Sin( deg))^2 + (Math.Cos( deg))^2 == ", degrees, sinAngle * sinAngle + cosAngle * cosAngle ); // Evaluate sin(2 * X) == 2 * sin(X) * cos(X). Console.WriteLine( " Math.Sin( deg) == ", 2.0 * degrees, Math.Sin(2.0 * angle) ); Console.WriteLine( " 2 * Math.Sin( deg) * Math.Cos( deg) == ", degrees, 2.0 * sinAngle * cosAngle ); // Evaluate cos(2 * X) == cos^2(X) - sin^2(X). Console.WriteLine( " Math.Cos( deg) == ", 2.0 * degrees, Math.Cos(2.0 * angle) ); Console.WriteLine( "(Math.Cos( deg))^2 - (Math.Sin( deg))^2 == ", degrees, cosAngle * cosAngle - sinAngle * sinAngle ); > // Evaluate trigonometric identities that are functions of two angles. static void UseTwoAngles(double degreesX, double degreesY) < double angleX = Math.PI * degreesX / 180.0; double angleY = Math.PI * degreesY / 180.0; // Evaluate sin(X + Y) == sin(X) * cos(Y) + cos(X) * sin(Y). Console.WriteLine( "\n Math.Sin(deg) * Math.Cos( deg) +\n" + " Math.Cos( deg) * Math.Sin( deg) == ", degreesX, degreesY, Math.Sin(angleX) * Math.Cos(angleY) + Math.Cos(angleX) * Math.Sin(angleY)); Console.WriteLine( " Math.Sin( deg) == ", degreesX + degreesY, Math.Sin(angleX + angleY)); // Evaluate cos(X + Y) == cos(X) * cos(Y) - sin(X) * sin(Y). Console.WriteLine( " Math.Cos( deg) * Math.Cos( deg) -\n" + " Math.Sin( deg) * Math.Sin( deg) == ", degreesX, degreesY, Math.Cos(angleX) * Math.Cos(angleY) - Math.Sin(angleX) * Math.Sin(angleY)); Console.WriteLine( " Math.Cos( deg) == ", degreesX + degreesY, Math.Cos(angleX + angleY)); > > /* This example of trigonometric Math.Sin( double ) and Math.Cos( double ) generates the following output. Convert selected values for X to radians and evaluate these trigonometric identities: sin^2(X) + cos^2(X) == 1 sin(2 * X) == 2 * sin(X) * cos(X) cos(2 * X) == cos^2(X) - sin^2(X) Math.Sin(15 deg) == 2.5881904510252074E-001 Math.Cos(15 deg) == 9.6592582628906831E-001 (Math.Sin(15 deg))^2 + (Math.Cos(15 deg))^2 == 1.0000000000000000E+000 Math.Sin(30 deg) == 4.9999999999999994E-001 2 * Math.Sin(15 deg) * Math.Cos(15 deg) == 4.9999999999999994E-001 Math.Cos(30 deg) == 8.6602540378443871E-001 (Math.Cos(15 deg))^2 - (Math.Sin(15 deg))^2 == 8.6602540378443871E-001 Math.Sin(30 deg) == 4.9999999999999994E-001 Math.Cos(30 deg) == 8.6602540378443871E-001 (Math.Sin(30 deg))^2 + (Math.Cos(30 deg))^2 == 1.0000000000000000E+000 Math.Sin(60 deg) == 8.6602540378443860E-001 2 * Math.Sin(30 deg) * Math.Cos(30 deg) == 8.6602540378443860E-001 Math.Cos(60 deg) == 5.0000000000000011E-001 (Math.Cos(30 deg))^2 - (Math.Sin(30 deg))^2 == 5.0000000000000022E-001 Math.Sin(45 deg) == 7.0710678118654746E-001 Math.Cos(45 deg) == 7.0710678118654757E-001 (Math.Sin(45 deg))^2 + (Math.Cos(45 deg))^2 == 1.0000000000000000E+000 Math.Sin(90 deg) == 1.0000000000000000E+000 2 * Math.Sin(45 deg) * Math.Cos(45 deg) == 1.0000000000000000E+000 Math.Cos(90 deg) == 6.1230317691118863E-017 (Math.Cos(45 deg))^2 - (Math.Sin(45 deg))^2 == 2.2204460492503131E-016 Convert selected values for X and Y to radians and evaluate these trigonometric identities: sin(X + Y) == sin(X) * cos(Y) + cos(X) * sin(Y) cos(X + Y) == cos(X) * cos(Y) - sin(X) * sin(Y) Math.Sin(15 deg) * Math.Cos(30 deg) + Math.Cos(15 deg) * Math.Sin(30 deg) == 7.0710678118654746E-001 Math.Sin(45 deg) == 7.0710678118654746E-001 Math.Cos(15 deg) * Math.Cos(30 deg) - Math.Sin(15 deg) * Math.Sin(30 deg) == 7.0710678118654757E-001 Math.Cos(45 deg) == 7.0710678118654757E-001 Math.Sin(30 deg) * Math.Cos(45 deg) + Math.Cos(30 deg) * Math.Sin(45 deg) == 9.6592582628906831E-001 Math.Sin(75 deg) == 9.6592582628906820E-001 Math.Cos(30 deg) * Math.Cos(45 deg) - Math.Sin(30 deg) * Math.Sin(45 deg) == 2.5881904510252085E-001 Math.Cos(75 deg) == 2.5881904510252096E-001 */
// Example for the trigonometric Math.Sin( double ) // and Math.Cos( double ) methods. // In F#, the sin and cos functions may be used instead. open System // Evaluate trigonometric identities with a given angle. let useSineCosine degrees = let angle = Math.PI * degrees / 180. let sinAngle = Math.Sin angle let cosAngle = Math.Cos angle // Evaluate sin^2(X) + cos^2(X) = 1. printfn $""" Math.Sin( deg) = Math.Cos( deg) = """ printfn $"(Math.Sin( deg))^2 + (Math.Cos( deg))^2 = " // Evaluate sin(2 * X) = 2 * sin(X) * cos(X). printfn $" Math.Sin( deg) = " printfn $" 2 * Math.Sin( deg) * Math.Cos( deg) = " // Evaluate cos(2 * X) = cos^2(X) - sin^2(X). printfn $" Math.Cos( deg) = " printfn $"(Math.Cos( deg))^2 - (Math.Sin( deg))^2 = " // Evaluate trigonometric identities that are functions of two angles. let useTwoAngles degreesX degreesY = let angleX = Math.PI * degreesX / 180. let angleY = Math.PI * degreesY / 180. // Evaluate sin(X + Y) = sin(X) * cos(Y) + cos(X) * sin(Y). printfn $""" Math.Sin( deg) * Math.Cos( deg) Math.Cos( deg) * Math.Sin( deg) = """ printfn $" Math.Sin( deg) = " // Evaluate cos(X + Y) = cos(X) * cos(Y) - sin(X) * sin(Y). printfn $""" Math.Cos( deg) * Math.Cos( deg) - Math.Sin( deg) * Math.Sin( deg) = """ printfn $" Math.Cos( deg) = " // Evaluate trigonometric identities with a given angle. let useCombinedSineCosine degrees = let angle = Math.PI * degrees / 180. let struct(sinAngle, cosAngle) = Math.SinCos angle // Evaluate sin^2(X) + cos^2(X) = 1. printfn $"\n Math.SinCos( deg) = (, )" printfn $"(double sin, double cos) = Math.SinCos( deg)" printfn $"sin^2 + cos^2 = " printfn """This example of trigonometric Math.Sin( double ), Math.Cos( double ), and Math.SinCos( double ) generates the following output. Convert selected values for X to radians and evaluate these trigonometric identities: sin^2(X) + cos^2(X) = 1\n sin(2 * X) = 2 * sin(X) * cos(X) cos(2 * X) = cos^2(X) - sin^2(X) cos(2 * X) = cos^2(X) - sin^2(X) """ useSineCosine 15. useSineCosine 30. useSineCosine 45. printfn """ Convert selected values for X and Y to radians and evaluate these trigonometric identities: sin(X + Y) = sin(X) * cos(Y) + cos(X) * sin(Y) cos(X + Y) = cos(X) * cos(Y) - sin(X) * sin(Y) """ useTwoAngles 15. 30. useTwoAngles 30. 45. printfn """ When you have calls to sin(X) and cos(X) they can be replaced with a single call to sincos(x):""" useCombinedSineCosine 15. useCombinedSineCosine 30. useCombinedSineCosine 45. // This example of trigonometric Math.Sin( double ) and Math.Cos( double ) // generates the following output. // // Convert selected values for X to radians // and evaluate these trigonometric identities: // sin^2(X) + cos^2(X) = 1 // sin(2 * X) = 2 * sin(X) * cos(X) // cos(2 * X) = cos^2(X) - sin^2(X) // // Math.Sin(15 deg) = 2.5881904510252074E-001 // Math.Cos(15 deg) = 9.6592582628906831E-001 // (Math.Sin(15 deg))^2 + (Math.Cos(15 deg))^2 = 1.0000000000000000E+000 // Math.Sin(30 deg) = 4.9999999999999994E-001 // 2 * Math.Sin(15 deg) * Math.Cos(15 deg) = 4.9999999999999994E-001 // Math.Cos(30 deg) = 8.6602540378443871E-001 // (Math.Cos(15 deg))^2 - (Math.Sin(15 deg))^2 = 8.6602540378443871E-001 // // Math.Sin(30 deg) = 4.9999999999999994E-001 // Math.Cos(30 deg) = 8.6602540378443871E-001 // (Math.Sin(30 deg))^2 + (Math.Cos(30 deg))^2 = 1.0000000000000000E+000 // Math.Sin(60 deg) = 8.6602540378443860E-001 // 2 * Math.Sin(30 deg) * Math.Cos(30 deg) = 8.6602540378443860E-001 // Math.Cos(60 deg) = 5.0000000000000011E-001 // (Math.Cos(30 deg))^2 - (Math.Sin(30 deg))^2 = 5.0000000000000022E-001 // // Math.Sin(45 deg) = 7.0710678118654746E-001 // Math.Cos(45 deg) = 7.0710678118654757E-001 // (Math.Sin(45 deg))^2 + (Math.Cos(45 deg))^2 = 1.0000000000000000E+000 // Math.Sin(90 deg) = 1.0000000000000000E+000 // 2 * Math.Sin(45 deg) * Math.Cos(45 deg) = 1.0000000000000000E+000 // Math.Cos(90 deg) = 6.1230317691118863E-017 // (Math.Cos(45 deg))^2 - (Math.Sin(45 deg))^2 = 2.2204460492503131E-016 // // Convert selected values for X and Y to radians // and evaluate these trigonometric identities: // sin(X + Y) = sin(X) * cos(Y) + cos(X) * sin(Y) // cos(X + Y) = cos(X) * cos(Y) - sin(X) * sin(Y) // // Math.Sin(15 deg) * Math.Cos(30 deg) + // Math.Cos(15 deg) * Math.Sin(30 deg) = 7.0710678118654746E-001 // Math.Sin(45 deg) = 7.0710678118654746E-001 // Math.Cos(15 deg) * Math.Cos(30 deg) - // Math.Sin(15 deg) * Math.Sin(30 deg) = 7.0710678118654757E-001 // Math.Cos(45 deg) = 7.0710678118654757E-001 // // Math.Sin(30 deg) * Math.Cos(45 deg) + // Math.Cos(30 deg) * Math.Sin(45 deg) = 9.6592582628906831E-001 // Math.Sin(75 deg) = 9.6592582628906820E-001 // Math.Cos(30 deg) * Math.Cos(45 deg) - // Math.Sin(30 deg) * Math.Sin(45 deg) = 2.5881904510252085E-001 // Math.Cos(75 deg) = 2.5881904510252096E-001
' Example for the trigonometric Math.Sin( Double ) and Math.Cos( Double ) methods. Module SinCos Sub Main() Console.WriteLine( _ "This example of trigonometric " & _ "Math.Sin( double ) and Math.Cos( double )" & vbCrLf & _ "generates the following output." & vbCrLf) Console.WriteLine( _ "Convert selected values for X to radians " & vbCrLf & _ "and evaluate these trigonometric identities:") Console.WriteLine( _ " sin^2(X) + cos^2(X) = 1" & vbCrLf & _ " sin(2 * X) = 2 * sin(X) * cos(X)") Console.WriteLine(" cos(2 * X) = cos^2(X) - sin^2(X)") UseSineCosine(15.0) UseSineCosine(30.0) UseSineCosine(45.0) Console.WriteLine( _ vbCrLf & "Convert selected values for X and Y to radians" & _ vbCrLf & "and evaluate these trigonometric identities:") Console.WriteLine(" sin(X + Y) = sin(X) * cos(Y) + cos(X) * sin(Y)") Console.WriteLine(" cos(X + Y) = cos(X) * cos(Y) - sin(X) * sin(Y)") UseTwoAngles(15.0, 30.0) UseTwoAngles(30.0, 45.0) End Sub ' Evaluate trigonometric identities with a given angle. Sub UseSineCosine(degrees As Double) Dim angle As Double = Math.PI * degrees / 180.0 Dim sinAngle As Double = Math.Sin(angle) Dim cosAngle As Double = Math.Cos(angle) ' Evaluate sin^2(X) + cos^2(X) = 1. Console.WriteLine( _ vbCrLf & " Math.Sin( deg) = " & _ vbCrLf & " Math.Cos( deg) = ", _ degrees, Math.Sin(angle), Math.Cos(angle)) Console.WriteLine( _ "(Math.Sin( deg))^2 + (Math.Cos( deg))^2 = ", _ degrees, sinAngle * sinAngle + cosAngle * cosAngle) ' Evaluate sin(2 * X) = 2 * sin(X) * cos(X). Console.WriteLine( _ " Math.Sin( deg) = ", _ 2.0 * degrees, Math.Sin(2.0 * angle)) Console.WriteLine( _ " 2 * Math.Sin( deg) * Math.Cos( deg) = ", _ degrees, 2.0 * sinAngle * cosAngle) ' Evaluate cos(2 * X) = cos^2(X) - sin^2(X). Console.WriteLine( _ " Math.Cos( deg) = ", _ 2.0 * degrees, Math.Cos(2.0 * angle)) Console.WriteLine( _ "(Math.Cos( deg))^2 - (Math.Sin( deg))^2 = ", _ degrees, cosAngle * cosAngle - sinAngle * sinAngle) End Sub ' Evaluate trigonometric identities that are functions of two angles. Sub UseTwoAngles(degreesX As Double, degreesY As Double) Dim angleX As Double = Math.PI * degreesX / 180.0 Dim angleY As Double = Math.PI * degreesY / 180.0 ' Evaluate sin(X + Y) = sin(X) * cos(Y) + cos(X) * sin(Y). Console.WriteLine( _ vbCrLf & " Math.Sin( deg) * Math.Cos( deg) +" & _ vbCrLf & " Math.Cos( deg) * Math.Sin( deg) = ", _ degreesX, degreesY, Math.Sin(angleX) * Math.Cos(angleY) + _ Math.Cos(angleX) * Math.Sin(angleY)) Console.WriteLine( _ " Math.Sin( deg) = ", _ degreesX + degreesY, Math.Sin(angleX + angleY)) ' Evaluate cos(X + Y) = cos(X) * cos(Y) - sin(X) * sin(Y). Console.WriteLine( _ " Math.Cos( deg) * Math.Cos( deg) -" & vbCrLf & _ " Math.Sin( deg) * Math.Sin( deg) = ", _ degreesX, degreesY, Math.Cos(angleX) * Math.Cos(angleY) - _ Math.Sin(angleX) * Math.Sin(angleY)) Console.WriteLine( _ " Math.Cos( deg) = ", _ degreesX + degreesY, Math.Cos(angleX + angleY)) End Sub End Module 'SinCos ' This example of trigonometric Math.Sin( double ) and Math.Cos( double ) ' generates the following output. ' ' Convert selected values for X to radians ' and evaluate these trigonometric identities: ' sin^2(X) + cos^2(X) = 1 ' sin(2 * X) = 2 * sin(X) * cos(X) ' cos(2 * X) = cos^2(X) - sin^2(X) ' ' Math.Sin(15 deg) = 2.5881904510252074E-001 ' Math.Cos(15 deg) = 9.6592582628906831E-001 ' (Math.Sin(15 deg))^2 + (Math.Cos(15 deg))^2 = 1.0000000000000000E+000 ' Math.Sin(30 deg) = 4.9999999999999994E-001 ' 2 * Math.Sin(15 deg) * Math.Cos(15 deg) = 4.9999999999999994E-001 ' Math.Cos(30 deg) = 8.6602540378443871E-001 ' (Math.Cos(15 deg))^2 - (Math.Sin(15 deg))^2 = 8.6602540378443871E-001 ' ' Math.Sin(30 deg) = 4.9999999999999994E-001 ' Math.Cos(30 deg) = 8.6602540378443871E-001 ' (Math.Sin(30 deg))^2 + (Math.Cos(30 deg))^2 = 1.0000000000000000E+000 ' Math.Sin(60 deg) = 8.6602540378443860E-001 ' 2 * Math.Sin(30 deg) * Math.Cos(30 deg) = 8.6602540378443860E-001 ' Math.Cos(60 deg) = 5.0000000000000011E-001 ' (Math.Cos(30 deg))^2 - (Math.Sin(30 deg))^2 = 5.0000000000000022E-001 ' ' Math.Sin(45 deg) = 7.0710678118654746E-001 ' Math.Cos(45 deg) = 7.0710678118654757E-001 ' (Math.Sin(45 deg))^2 + (Math.Cos(45 deg))^2 = 1.0000000000000000E+000 ' Math.Sin(90 deg) = 1.0000000000000000E+000 ' 2 * Math.Sin(45 deg) * Math.Cos(45 deg) = 1.0000000000000000E+000 ' Math.Cos(90 deg) = 6.1230317691118863E-017 ' (Math.Cos(45 deg))^2 - (Math.Sin(45 deg))^2 = 2.2204460492503131E-016 ' ' Convert selected values for X and Y to radians ' and evaluate these trigonometric identities: ' sin(X + Y) = sin(X) * cos(Y) + cos(X) * sin(Y) ' cos(X + Y) = cos(X) * cos(Y) - sin(X) * sin(Y) ' ' Math.Sin(15 deg) * Math.Cos(30 deg) + ' Math.Cos(15 deg) * Math.Sin(30 deg) = 7.0710678118654746E-001 ' Math.Sin(45 deg) = 7.0710678118654746E-001 ' Math.Cos(15 deg) * Math.Cos(30 deg) - ' Math.Sin(15 deg) * Math.Sin(30 deg) = 7.0710678118654757E-001 ' Math.Cos(45 deg) = 7.0710678118654757E-001 ' ' Math.Sin(30 deg) * Math.Cos(45 deg) + ' Math.Cos(30 deg) * Math.Sin(45 deg) = 9.6592582628906831E-001 ' Math.Sin(75 deg) = 9.6592582628906820E-001 ' Math.Cos(30 deg) * Math.Cos(45 deg) - ' Math.Sin(30 deg) * Math.Sin(45 deg) = 2.5881904510252085E-001 ' Math.Cos(75 deg) = 2.5881904510252096E-001
Комментарии
Угол должен d быть в радианах. Умножьте на Math.PI/180, чтобы преобразовать градусы в радианы.
Этот метод вызывает базовую среду выполнения C, и точный результат или допустимый диапазон входных данных может отличаться в разных операционных системах или архитектурах.