codecamp

C++ 数学函数

在数学领域,你可能会看到sin和log这样的函数,也学过对sin(π/2)和log(1/x)这样的表达式求值。首先,要求出括号中表达式的值,这个值称为函数的参数。比如π/2约为1.571,若x为10则1/x的值为0.1。

然后你就可以通过查表或执行各种计算来求函数本身的值了。1.571的正弦是1,0.1的对数是-1(假设log函数是求以10为底的对数)。

对于求类似log(1/sin(π/2))这样的更复杂表达式的值,上述求解过程可反复进行。首先我们求出最里面那个函数的参数,然后求整个函数,如此反复。

C++提供了一组内置函数,包含了大多数你能想到的数学运算。调用这些数学函数的语法形式与其本身的数学符号很相似:

double log = log(17.0);
double angle = 1.5;
double height = sin(angle);

第一例中的log定义为求17的自然对数(底数为e)。还有一个函数名为log10,取以10为底的对数。

第二例求解的是变量angle的正弦值。C++设定赋给sin以及其他三角函数的参数都是以弧度为单位的。角度转弧度,需要先除以360,再乘以2π。

如果你不知道π精确到15位小数是多少,你可以使用acos函数计算出来。-1的arccos(反余弦)值就是π,因为π的余弦值是-1。

double pi = acos(-1.0);
double degrees = 90;
double angle = degrees * 2 * pi / 360.0;

在使用数学函数之前,需要包含math头文件。头文件包含了编译器需要知道的,却在你的程序之外定义的函数信息。比如"Hello, world!"这个例子中,我们通过使用include语句包含了名为iostream.h的头文件:

#include <iostream.h>

iostream.h包含了输入、输出(I/O)字节流的信息,包括一个名为cout的对象。

类似的,math头文件包含了数学函数的相关信息,可以在你的程序开头把它同iostream.h一起包含进去:

#include <math.h> 
C++ double到int的转换
C++ 函数组合
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }