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 ...

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

  1. 相机校正、张氏标定法、极大似然估计/极大似然参数估计、牛顿法、高斯牛顿法、LM算法、sin/cos/tan/cot

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) CNN:RCNN.SPPNet.Fast RCNN.Faste ...

  2. sin cos tan cot公式

    在直角三角形中 sin@代表对边比斜边 cos@代表邻边比斜边 tan@代表对边比邻边 cot@代表邻边比对边 同角三角函数的基本关系式 倒数关系: 商的关系: 平方关系: tanα ·cotα=1 ...

  3. sin cos tan cot sec csc

    直角三角形有 对边 邻边 斜边 锐角和 钝角三角形有对边 邻边 正弦(sin):角α的对边比上斜边  余弦(cos):角α的邻边比上斜边  正切(tan):角α的对边比上邻边  余切(cot):角α的 ...

  4. 三角函数sin cos tan和弧度,度等定义及其相关

    在此做一个温习及记录,做一个总结,免得到处找. 正弦.余弦和正切是 三角法 里的主要函数,它们是基于一个 直角三角形而建立的. 英文释义: 正弦 (sine), 余弦 (cosine) 和 正切 (t ...

  5. python怎么算反三角函数_python弧度制转换 三角函数 反三角函数 双曲 反双曲 sin cos tan asin acos atan asinh acosh atanh atanh2...

    前提:import math 函数介绍: degrees(x)将x从弧度转换为度数. radians(x)将x从度数转换为弧度. 例如: >>> import math >&g ...

  6. python弧度制转换 三角函数 反三角函数 双曲 反双曲 sin cos tan asin acos atan asinh acosh atanh atanh2

    前提:import math 函数介绍: degrees(x)   将x从弧度转换为度数. radians(x)   将x从度数转换为弧度. 例如: >>> import math ...

  7. sin cos tan c语言,sin cos tan在前端的应用

    /* 正N边形外角和 = 360 正N边形外角 = 360/n 正N边形内角 = 180 - 360/n 正弦 Math.sin() 直角三角形中 对边和斜边的比值 余弦 Math.cos() 直角三 ...

  8. Python绘制三角函数图(sin\cos\tan)并标注特定范围

    根据我们指定的条件检索函数中的元素 import matplotlib.pyplot as plt import numpy as npa = np.linspace(0, 2 * np.pi, 50 ...

  9. cos,sina,tan,cot

    这些都是三角形的公式. 三角形总之就是一个直角两个锐角. cos就是余弦定理,就是锐角的邻边除以三角形的斜边. sin就是正弦定理,就是锐角的对边除以三角形的斜边. tan就是正切定理,就是锐角的对边 ...

  10. 高中的三角函数不会计算机,高中三角函数教学常见问题探析.doc

    高中三角函数教学常见问题探析.doc 高中三角函数教学常见问题探析 三角函数是目前高中数学课程中较为传统的内容,也是高考数学中的重要考点,学好三角函数不仅是高中阶段的重要任务,也是为大学数学打好基础的 ...

最新文章

  1. python都能干什么-python都能做什么
  2. python爬虫教程网-python爬虫入门10分钟爬取一个网站
  3. BinaryReader 、BinaryWriter是方便用二进制方式读写int,double,string之类的数据
  4. dojo Quick Start/dojo入门手册--开始使用dojo.js
  5. VigiBase中搜索和眼病相关的统计数据
  6. 新浪微博2-找到用户的accessToken
  7. 关抢占 自旋锁_互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景
  8. 字节跳动 MySQL 学习笔记火了,完整版开放下载!
  9. java装箱_Java 装箱 拆箱
  10. 学习布局——getContentPane() setContentPane()
  11. 8、RabbitMQ-消息的确认机制(生产者)
  12. 【手势识别】基于matlab GUI肤色手势识别(带面板)【含Matlab源码 1650期】
  13. b-tree的索引页总览
  14. XUI 熟练使用之(五) -----------底部弹出对话框
  15. java联网游戏_Java实现简易版联网坦克对战小游戏(附源码)
  16. [文摘20070308]中国历史朝代歌
  17. PID串口助手的第一部分:串口通信
  18. Grunt 入门教程一:开始使用Grunt(翻译自官方教程)
  19. Linux mint cinnamon 64bit 17.3 使用体验(一)
  20. vue列表的单独展开收起和全部展开收起

热门文章

  1. 企业erp系统对企业预算和采购环节的作用
  2. 如何像专业人士一样使用 Google 学术搜索
  3. 2022微软苏州Software Engineer校招暑期实习生一面
  4. caffe:将mean.binaryproto文件转化为mean.npy文件
  5. 苹果账号安全提示问题忘了怎么办?
  6. UNI-APP_uni-app中设置radio和switch的大小
  7. 阿里云域名备案域名解析SSL证书申请Nginx代理
  8. Centos7.6安装Bugzilla5.0.4
  9. 如何安装.ipa文件
  10. 计算机桌面文件删除不掉是怎么了,桌面上文件删不掉_桌面上的压缩文件为什么删除不了?...