QBASIC - Functions - Mathematical
| ABS | ATN | COS | EXP | FIX | INT | LOG | RND | SGN | SIN | SQR | TAN |
 
ABS(n)
Returns absolute value of n
PRINT ABS(-2.5)
PRINT ABS(45.5 - 100!) 
2.5
54.5
 
ATN(
n)
Arctangent of n
If TAN(r) = n then ATN(n) = r
Result: -pi/2 .. pi/2 radians
NB: deg = rad * 180 / pi
pi = 4 * ATN(1) = 3.141593
>TAN()
   atn.gif (1461 bytes)
 
PRINT "PI ="; 4 * ATN(1)
PRINT "PI ="; 4 * ATN(1#)
PRINT "PI/2 ="; 2 * ATN(1#)
PRINT "ATN(0) ="; ATN(0)
PRINT "ATN(1000) ="; ATN(1000)
PI = 3.141593
PI = 3.141592653589793
PI/2 = 1.570796326794897
ATN(0) = 0
ATN(1000) = 1.569796
 
COS()
Cosinus af en vinkel i radian
COS(0) = 1
COS(pi/2) = 0 (eksakt - men afrundingsfejl giver et lille tal:)
pi = 4 * ATN(1)
FOR i = 0 TO 2 * pi STEP pi / 2
  PRINT i, COS(i)
NEXT
 0             1
 1.570796     -4.371139E-08
 3.141593     -1
 4.712389      1.192488E-08
 6.283185      1
 
Vinkler i gradmål kan omregnes til radian med:  r = g * pi/180
pi = 4 * ATN(1)
g = 45
PRINT g; "grader ="; g * pi / 180; "radian"
  
  
 45 grader = .7853982 radian
Fra radian til grader: g = r * 180/pi
 
EXP()
Exponentialfunktion med grundtallet e
EXP(n) = e^n
EXP(1) = e^1 = e = 2.718282
EXP(1#) = 2.718281828459045
EXP(0) = e^0 = 1
 
NB: Exponentialfunktioner med vilkårligt grundtal g skrives: g^n
- fx: 10^2.5
- fx: 2.718282^2.5 (som er = EXP(2.5))
 
>LOG()
 
FIX(n)
Returns integer part of n
FIX(3.2)  ' 3
FIX(-3.2) '-3
>INT()
 
INT(n)
Returns nearest integer < n
INT(3.2)  ' 3
INT(-3.2) '-4
>FIX()
 
LOG()
"Naturlig logaritme" med grundtallet e (=EXP(1)=2.718282).
LOG(EXP(n)) = n.
 
NB: Normalt betegner LN() den naturlige logaritme, mens LOG() er 10-talslogaritmen.
I Qbasic kan 10-talslogaritmen til n beregnes med LOG(n)/LOG(10):
x = 100
PRINT LOG(x)/LOG(10)
 
2
 
>EXP()
 
RND()
Random - returnerer et tilfældigt tal mellem 0 og 1.
FOR i = 1 TO 3
  PRINT RND
NEXT
.7055475
.533424
.5795186
Tallene er ikke helt tilfældige - den samme sekvens returneres, hver gang programmet køres.
Sekvensen kan dog ændres med RANDOMIZE.
 
Hele tal fra 0 til n:
n = 9
FOR i = 1 TO 20
  PRINT INT(RND * (n + 1));
NEXT
7 5 5 2 3 7 0 7 8 7 0 4 8 7 3 9 8 0 9 3
 
Hele tal fra 1 til 6 (Terningkast):
n = 6
FOR i = 1 TO 20
  PRINT INT(RND * n) + 1;
NEXT
5 4 4 2 2 5 1 5 5 5 1 3 6 5 3 6 6 1 6 3
 
SGN(n)
Returns sign (-1,0,1) of n
SGN(-3.2) '-1
SGN(0)    ' 0
SGN(3.2)  ' 1
SIN()
 
SQR()
 
TAN()
>ATN()