[zz]Math库实用汇总

Posted on 2008-02-02 23:38  oyy  阅读(709)  评论(0编辑  收藏  举报
 

Math库实用汇总

FP中,Math库为我们提供了丰富的数学函数。以下介绍在OI中可能会用到的Math库中一些函数、过程。

使用方法:在程序头用Uses语句加载Math

例子:

Program Ex_Math;

Uses Math;

Begin

      Writeln(hypot(3,4));

End.

函数介绍:

l        hypot

原型:function hypot(x:float;y:float):float

功能:返回直角三角形中较长边的长度,也就是sqrt(sqr(x)+sqr(y))

l         ceil

原型:function ceil(x:float):Integer

功能:返回比参数大的最小整数

引发错误:在x超出Integer的范围时会引发溢出错误

l         floor

原型:function floor(x:float):Integer

功能:返回参数小的最大整数

引发错误:在x超出Integer的范围时会引发溢出错误

l         power

原型:function power(base:float;exponent:float):float

功能:返回baseexponent次方

引发错误:在base为负数且exponent为小数时

l         intpower

原型:function intpower(base:float;const exponent:Integer):float

功能:返回baseexponent次方

l         ldexp

原型:function ldexp(x:float;const p:Integer):float

功能:返回2p次方乘以x

l         log10

原型:function log10(x:float):float

功能:返回x的常用对数

l         log2

原型:function log2(x:float):float

功能:返回x2为底的对数

l         logn

原型:function logn(n:float;x:float):float

功能:返回xn为底的对数

l         Max

原型:function Max(a:Integer;b:Integer):Integer

function Max(a:Int64;b:Int64):Int64

function Max(a:Extended;b:Extended):Extended

功能:返回ab中较大的一个

l         Min

原型:function Min(a:Integer;b:Integer):Integer

function Min(a:Int64;b:Int64):Int64

function Min(a:Extended;b:Extended):Extended

功能:返回ab中较小的一个

l         arcsin

原型:function arcsin(x:float):float

功能:返回x的反正弦值,返回的是弧度指单位

l         arccon

原型:function arccon(x:float):float

功能:返回x的反余弦值,返回的是弧度指单位

l         tan

原型:function tan(x:float):float

功能:返回x的正切值,x以弧度为单位

l         cotan

原型:function cotan(x:float):float

功能:返回x的余切值,x以弧度为单位

l         arcsinh

原型:function arcsinh(x:float):float

功能:返回双曲线的反正弦

l         arccosh

原型:function arccosh(x:float):float

功能:返回双曲线的反余弦

l         arctanh

原型:function arctanh(x:float):float

功能:返回双曲线的反正切

l         sinh

原型:function sinh(x:float):float

功能:返回双曲线的正弦

l         cosh

原型:function sinh(x:float):float

功能:返回双曲线的正弦

l         tanh

原型:function sinh(x:float):float

功能:返回双曲线的正切

l         cycletorad

原型:function cycletorad(cycle:float):float

功能:返回圆的份数转换成弧度之后的值

l         degtorad

原型:function degtorad(deg:float):float

功能:返回角度转换成弧度之后的值

l         radtocycle

原型:function radtocycle(rad:float):float

功能:返回弧度转换成圆的份数之后的值

l         radtodeg

原型:function radtodeg(rad:float):float

功能:返回弧度转换成角度之后的值

l         MaxValue

原型:function maxvalue(const data:Array[] of float):float

function maxvalue(const data:Array[] of Integer):Integer

function maxvalue(const data:PFloat;const N:Integer):float

function maxvalue(const data:PInteger;const N:Integer):Integer

功能:返回数组中的最大值

l         MinValue

原型:function minvalue(const data:Array[] of float):float

function minvalue(const data:Array[] of Integer):Integer

function minvalue(const data:PFloat;const N:Integer):float

function MinValue(const Data:PInteger;const N:Integer):Integer

功能:返回数组中的最小值

l         sum

原型:function sum(const data:Array[] of float):float

function sum(const data:PFloat;const N:LongInt):float

功能:求数组中所有数之和

l         sumsandsquares

原型:procedure sumsandsquares(const data:Array[] of float;var sum:float;

var sumofsquares:float)

procedure sumsandsquares(const data:PFloat;const N:Integer;

var sum:float;var sumofsquares:float)

功能:将数组中的数求和方如num中,求平方和放入sumofsquares


例子:(注:以下全都在已经uses math的前提下进行的。)

begin

  Writeln(hypot(6,8)); //输出1010^2=6^2+8^2

end.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

begin

  writeln(ceil(3.4));//4

  writeln(ceil(3.7));//4

  writeln(ceil(-3.4));//-3

  writeln(ceil(-3.7));//-3

  writeln(floor(3.4));//3

  writeln(floor(3.7));//3

  writeln(floor(-3.4));//-4

  writeln(floor(-3.7));//-4

end.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

begin

  writeln(power(1.1,1.1):2:3);

  writeln(power(-1.1,3):2:3);

  writeln(power(1.1,-1.1):2:3);

  writeln(intpower(1.1,2):2:3);

  writeln(intpower(4.1,-2):2:3);

  writeln(intpower(-1.1,2):2:3);

  writeln(ldexp(2,4):8:4);  // 32.0000

  writeln(ldexp(0.5,3):8:4);//  4.0000

  writeln(ldexp(-3,3):8:4); // -24.000

  Writeln(Log10(10):8:4);

  Writeln(Log10(1):8:4);

  Writeln(Log10(0.1):8:4);

  Writeln(Log2(4):8:4);

  Writeln(Log2(0.5):8:4);

  Writeln(Logn(3,4):8:4);

  Writeln(Logn(exp(1),exp(1)):8:4);

  writeln(max(1,2));

  writeln(min(1,2));

end.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

begin

  writeln(arccos(0.5)/pi);

  writeln(arcsin(0.5)/pi);

  writeln(arctan(0.5)/pi); //这个不在math库里,system库里就有

  writeln(cos(pi/6));    //这个不在math库里,system库里就有

  writeln(sin(pi/6));    //这个不在math库里,system库里就有

  writeln(tan(pi/6));

  writeln(cotan(pi/6));

end.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

begin

  //返回的是双曲线的            | 定义域

  writeln(arcosh(2));//反余弦   |  [R]

  writeln(arsinh(2));//反正弦   |  [R]

  writeln(artanh(0.1));//反正切  | [-1,1]

  writeln(cosh(2));//余弦       |  [R]

  writeln(sinh(2));//正弦       |  [R]

  writeln(tanh(2));//正切       |  [R]

end.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

begin

  //角度、弧度、圆的相互转换,圆是指这么大的角占多少个圆

  writeln(cycletorad(1/6)/pi);//圆到弧度

  writeln(degtorad(90)/pi);//角度到弧度

  writeln(radtocycle(pi/2));//弧度到圆

  writeln(radtodeg(pi/3));//弧度到角度

end.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Var

  I:Integer;

  a:array[1..10] of float;//一定要是longintfloat,就是32为变量

begin

  Randomize ;

  for I:=low(a) to high (a) do begin

    a[i]:=random(10);

    write(a[i]:2:2,' ');

  end;

  writeln;

  writeln(MaxValue(a):2:2);//数组中的最大值

  writeln(MinValue(a):2:2);//数组中的最小值

  writeln(sum(a):2:2);//数组中所有元素的和,只有float能用

  sumsandsquares(a,s,ss);//s为和,ss为平方和,只有float能用

  writeln(s:2:2,' ',ss:2:2);

end.

Copyright © 2024 oyy
Powered by .NET 8.0 on Kubernetes