c语言有cot三角函数吗,c/c++ 实现三角函数(不使用库函数) sin/cos/tan/cot

c/c++ 实现三角函数(不使用库函数) sin/cos/tan/cot

#include

#include

#include

constexpr auto PI = 3.1415926;

int menu_select() {

int select;

std::cout << "-------Welcome to Snow Calculator-------" << std::endl;

std::cout << " 1. sin x " << std::endl;

std::cout << " 2. cos x " << std::endl;

std::cout << " 3. tan x " << std::endl;

std::cout << " 4. cot x " << std::endl;

std::cout << " 5. Clean screen " << std::endl;

std::cout << " 0. to quit " << std::endl;

std::cout << "----------------------------------------" << std::endl;

std::cin >> select;

return select;

}

double inputtrans(void) {

double x;

std::cout << "Please input x: " << std::endl;

std::cin >> x;

while (x >= 360.0)

{

x -= 360.0;

}

return (x * PI / 180.0);

}

double factorial(double n) {

if (n <= 1) {

return n;

}

else {

return n * factorial(n - 1);

}

}

//下面为求绝对值函数

double myabs(double num1)

{

return((num1 > 0) ? num1 : -num1);

}

//下面为求sin(x)的值

double snowsin(double num2)

{

int i = 1, negation = 1;//取反

double sum;

double index = num2;//指数

double Factorial = 1;//阶乘

double TaylorExpansion = num2;//泰勒展开式求和

do

{

Factorial = Factorial * ((__int64)i + 1) * ((__int64)i + 2);//求阶乘

index *= num2 * num2;//求num2的次方

negation = -negation;//每次循环取反

sum = index / Factorial * negation;

TaylorExpansion += sum;

i += 2;

} while (myabs(sum) > 1e-15);

return(TaylorExpansion);

}

double snowcos(double x) {

x = (PI / 2) - x;

return sin(x);

}

double snowtan(double x) {

return (snowsin(x) / snowcos(x));

}

double snowcot(double x) {

return (1 / snowtan(x));

}

int main()

{

double result = 0.0;

double x = 0.0;

int menu = menu_select();

while (menu != 0)

{

switch (menu)

{

case 1:

x = inputtrans();

result = snowsin(x);

std::cout << std::fixed << std::setprecision(5) << "Result = " << result << std::endl;

break;

case 2:

x = inputtrans();

result = snowcos(x);

std::cout << std::fixed << std::setprecision(5) << "Result = " << result << std::endl;

break;

case 3:

x = inputtrans();

result = snowtan(x);

std::cout << std::fixed << std::setprecision(5) << "Result = " << result << std::endl;

break;

case 4:

x = inputtrans();

result = snowcot(x);

std::cout << std::fixed << std::setprecision(5) << "Result = " << result << std::endl;

break;

case 5:

system("cls");

break;

case 0:

break;

default:

std::cout << "Wrong input, please input again!" << std::endl;

break;

}

if (menu == 0) {

break;

}

menu = menu_select();

}

std::cout << "Thank you for using!\nPress any key to exit.\n";

system("pause");

}

汇编语言计算Sin&comma;Cos&comma;Pow函数

填了一下之前的坑.首先是一个题外话,在VS2015中默认汇编代码会使用SSE生成,如果想用FPU编译出FLD,FSTP这些指令,需要设置一下. 项目 >> 属性 >> C/C+ ...

Chartjs 简单使用 ------ 制作sin cos 折线图

Chart.js 一款简单干净的图表工具,基于html5 的Javascript. 可以用来制做条形,扇形,折线,混合等等的强大工具 图表要放在html 的  cancas  标签中

初中知识回顾tan&comma;sin&comma;cos关系

如果K=tan, sin 是X x=k/power(1+k*k,0.5)  开平方 cos是y y=1.0/power(1+k*k,0.5) 开平方 gisoracle总结 ============= ...

javascript&colon; Math&period;sin&lpar;&rpar; cos&lpar;&rpar; 用法

Math.sin(x)      x 的正玄值.返回值在 -1.0 到 1.0 之间: Math.cos(x)    x 的余弦值.返回的是 -1.0 到 1.0 之间的数: 这两个函数中的X 都是指 ...

c&plus;&plus;中sin&comma;cos,arcsin等和在C&sol;C&plus;&plus;中使用pi &lpar;π&rpar; 值

先 #include 反3角函数有 acos(double),asin(double),atan(double),atan(double,double),返回值 doubl ...

基于语法分析器GOLD Parser开发的数学表达式计算器

最近发现一款文法分析神器,看完官网(http://goldparser.org/)的介绍后感觉很犀利的样子,于是就拿来测试了一番,写了一个数学表达式分析的小程序,支持的数学运算符如下所示:常规运算:+ ...

机器学习:Jupyter Notebook中numpy的使用

一.Jupyter Notebook的魔法命令 # 模块/方法 + ?或者help(模块/方法):查看模块/方法的解释文档: 1)%run # 机械学习中主要应用两个魔法命令:%run.%timeit ...

MuPAD使用总结

MuPAD使用总结 一.打开notebook界面的方法: 二.notebook界面的三种区域 (一).输入区域 输入区域在打开来的时候就有,就是,但是之后如果还想再加,可以点击上方红色框内的图标. 这 ...

&lpar;3&rpar;ES6解构赋值-对象篇

对象的解构赋值(可以不按顺序,但是key必须一样否则为undefined) //demo1 var {name,age} = { name: "Jewave", age:26 }; ...

随机推荐

CSS之伪元素

1. :first-line 向元素的首行文本添加样式,不必关心首行是元素节点还是文本节点

loadrunner常用函数

1.关联函数:web_reg_save_param("session", "LB=value=", "RB=>", LAST);

埃及分数(codevs 1288)

题目描述 Description 在古埃及,人们使用单位分数的和(形如1/a的, a是自然数)表示一切有理数. 如:2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为加数中有相同的. 对于一 ...

angularJs&colon;动态效果之:显示与隐藏&lpar;该例对比了普通赋值,层次赋值,事件的写法对比&rpar;

testShowAndHiddern.html

...

Entity Framework - 理清关系 - 基于外键关联的单向一对一关系

注:本文针对的是 Entity Framework Code First 场景. 之前写过三篇文章试图理清Entity Framework中的一对一关系(单相思(单向一对一), 两情相悦(双向一对 ...

套汇问题 Floyd

问题:套汇. 思路:Floyd 代码: #include #include #include #define ...

Driver development

Windows Driver Kit (WDK) https://msdn.microsoft.com/en-us/library/windows/hardware/ff557573(v=vs.85) ...

selenium webdriver启动IE浏览器失败的解决办法

通过selenium webdriver启动IE浏览器失败,报错:selenium.common.exceptions.WebDriverException: Message: Unexpected ...

io 的一些简单说明及使用

io 流简述: i->inputStream(输入流) o->outputStream  (输出流) IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间的数据传输, ...

CSS基础【2】:CSS常见属性

CSS常见属性 文字属性 font-style 作用:规定文字样式 格式:font-style: italic; 取值: normal:正常的,默认就是正常的 italic:倾斜的 font-weig ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值