跳至内容

QBasic/高级数学

来自 Wikibooks,面向开放世界的开放书籍

复杂数学函数

[编辑 | 编辑源代码]

QBasic 中有一些三角函数,例如

A = 90
PRINT SIN(A)
PRINT COS(A)
PRINT TAN(A)
PRINT ATN(A)

'not trigonometrical
PRINT LOG(A)

大多数其他复杂计算在 QBasic 中没有相应函数,因此您必须自己使用函数并制作它们。

FUNCTION SEC (x)  'Secant
IF COS(x) <> 0 THEN SEC = 1 / COS(x) ELSE BEEP
END FUNCTION

FUNCTION CSC (x)  'CoSecant 
IF SIN(x) <> 0 THEN CSC = 1 / SIN(x) ELSE BEEP
END FUNCTION 

FUNCTION COT (x)  'CoTangent 
IF TAN(x) <> 0 THEN COT = 1 / TAN(x) ELSE BEEP
END FUNCTION 

FUNCTION ARCSIN (x)   'Inverse Sine           
IF x < 1 THEN ARCSIN = ATN(x / SQR(1 - (x * x))) ELSE BEEP
END FUNCTION 

FUNCTION ARCCOS (x) ' Inverse Cosine
IF x < 1 THEN ARCCOS = (2 * ATN(1)) - ATN(x / SQR(1 - x * x)) ELSE BEEP
END FUNCTION

FUNCTION ARCSEC (x)   ' Inverse Secant        
IF x < 1 THEN ARCSEC = ATN(x / SQR(1 - x * x)) + (SGN(x) - 1) * (2 * ATN(1)) ELSE BEEP
END FUNCTION 

FUNCTION ARCCSC (x)  ' Inverse CoSecant 
IF x < 1 THEN ARCCSC = ATN(1 / SQR(1 - x * x)) + (SGN(x)-1) * (2 * ATN(1)) ELSE BEEP 
END FUNCTION 

FUNCTION ARCCOT (x)  ' Inverse CoTangent 
ARCCOT = (2 * ATN(1)) - ATN(x)
END FUNCTION  

FUNCTION SINH (x)  ' Hyperbolic Sine 
IF x <= 88.02969 THEN SINH = (EXP(x) - EXP(-x)) / 2 ELSE BEEP
END FUNCTION  

FUNCTION COSH (x)  ' Hyperbolic CoSine 
IF x <= 88.02969 THEN COSH = (EXP(x) + EXP(-x)) / 2 ELSE BEEP
END FUNCTION  

FUNCTION TANH (x)  ' Hyperbolic Tangent or SINH(x) / COSH(x)
IF 2 * x <= 88.02969 AND EXP(2 * x) + 1 <> 0 THEN 
     TANH = (EXP(2 * x) - 1) / (EXP(2 * x) + 1) 
ELSE BEEP 
END IF 
END FUNCTION  

FUNCTION SECH (x)  ' Hyperbolic Secant or (COSH(x)) ^ -1
IF x <= 88.02969 AND (EXP(x) + EXP(-x)) <> 0 THEN SECH = 2 / (EXP(x) + EXP(-x)) ELSE BEEP  
END FUNCTION  

FUNCTION CSCH (x)  ' Hyperbolic CoSecant or (SINH(x)) ^ -1
IF x <= 88.02969 AND (EXP(x) - EXP(-x)) <> 0 THEN CSCH = 2 / (EXP(x) - EXP(-x)) ELSE BEEP  
END FUNCTION  

FUNCTION COTH (x)  ' Hyperbolic CoTangent or COSH(x) / SINH(x)
IF 2 * x <= 88.02969 AND EXP(2 * x) - 1 <> 0 THEN 
     COTH = (EXP(2 * x) + 1) / (EXP(2 * x) - 1) 
ELSE BEEP  
END IF
END FUNCTION  

FUNCTION ARCSINH (x)  ' Inverse Hyperbolic Sine 
IF (x * x) + 1 >= 0 AND x + SQR((x * x) + 1) > 0 THEN 
ARCSINH = LOG(x + SQR(x * x + 1)) 
ELSE BEEP
END IF
END FUNCTION  

FUNCTION ARCCOSH (x)  ' Inverse Hyperbolic CoSine 
IF x >= 1 AND x * x - 1 >= 0 AND x + SQR(x * x - 1) > 0 THEN 
ARCCOSH = LOG(x + SQR(x * x - 1)) 
ELSE BEEP
END IF
END FUNCTION  

FUNCTION ARCTANH (x)  ' Inverse Hyperbolic Tangent 
IF x < 1 THEN ARCTANH = LOG((1 + x) / (1 - x)) / 2 ELSE BEEP
END FUNCTION 

FUNCTION ARCSECH (x)  ' Inverse Hyperbolic Secant 
IF x > 0 AND x <= 1 THEN ARCSECH = LOG((SGN(x) * SQR(1 - x * x) + 1) / x) ELSE BEEP  
END FUNCTION  

FUNCTION ARCCSCH (x)  ' Inverse Hyperbolic CoSecant 
IF x <> 0 AND x * x + 1 >= 0 AND (SGN(x) * SQR(x * x + 1) + 1) / x > 0 THEN 
     ARCCSCH = LOG((SGN(x) * SQR(x * x + 1) + 1) / x) 
ELSE BEEP
END IF
END FUNCTION  

FUNCTION ARCCOTH (x)  ' Inverse Hyperbolic CoTangent 
IF x > 1 THEN ARCCOTH = LOG((x + 1) / (x - 1)) / 2 ELSE BEEP
END FUNCTION

以下是一些来自 QB64 IDE 帮助页面的示例。

华夏公益教科书