Operatory:
Symbole oznaczające operację arytmetyczną na jednym lub kilku elementach (operandach):
+ dodawanie lub oznaczenie liczby dodatniej - unarny, np.: +2, 4+0.1
- odejmowanie lub oznaczenie liczby ujemnej - unarny, np.: -1.7, 5.1-3
* mnożenie, np. 3*6
/ dzielenie, np. 6.8/2
! silnia, np. 4!
^ potęgowanie, np. 2^4
Ograniczniki jednoznakowe:
( ) nawiasy
; znak oddzielający kolejne argumenty w funkcji wieloargumentowej
Funkcje:
- jednoargumentowe:
sin, cos, tan, ctan - trygonometryczne
asin - arc sin
acos - arc cos
atan - arc tan
actan - arc ctan
sqrt - pierwiastek kwadratowy
ln - logarytm naturalny
exp(x) - podnoszenie e do potęgi x
floor - 'podłoga'- zaokrąglanie w dół
ceil - 'sufit'- zaokrąglanie do góry
abs - wartość absolutna (bezwzględna)
frand(x) = x * rzeczywista liczba losowa z przedziału <0;1>
time(0) - liczba milisekund od włączenia systemu
not(x) negacja logiczna
- dwuargumentowe:
log(x;y) - logarytm z x przy podstawie y
root(x;y) - pierwiastek z liczby x stopnia y
mod(x;y) - x modulo y, np.: mod(-2;5) = -2, mod(-8;5) = -3, mod(8;5) = 3
modulo(x;y) - prawdziwe (matematyczne) modulo, np. modulo(-2;5) = 3
rand(x;y) - całkowita liczba losowa z przedziału <x;y>
min(x;y) - minimum z x i y
max(x;y) - maksimum z x i y
saw(x;y) - 'piła', 'zygzak', 'ząb' w każdym przedziale o długości y, rozpoczynając od punktu x
gcm(x;y) - największy wspólny dzielnik (ang. Greatest Common Measure)
lcm(x;y) - najmniejsza wspólna wielokrotna (ang. Least Common Multiple)
or(x;y) - suma logiczna
and(x;y) - iloczyn logiczny
xor(x;y) - exclusive or
rbit(x;y) - zeruje wszystkie bity na lewo od pozycji y, np. rbit(1110101b;3) = 5 czyli 101b
Funkcje logiczne oraz gcm, lcm operują na liczbach dodatnich, 64-bitowych.
- trójargumentowe:
pmod(b;n;m) = (b^n) modulo m - funkcja użyteczna dla bardzo dużych liczb (dzięki możliwości redukcji modulo)
range(x;a;b) = {1, gdy (x>=a i x<b); 0 w przeciwnym przypadku}
xrange(x;a;b) = {x, gdy (x>=a i x<b); 0 w przeciwnym przypadku}
- czteroargumentowe:
rangew(x;a;b;y) = {y, gdy (x>=a i x<b); 0 w przeciwnym przypadku}
cykl(a;b;c;x) - jeśli modulo(x-c,a+b) < a to cykl()=0; w przeciwnym przypadku cykl()=1, zobacz np. cykl(3;4;1;x), gdzie 3 i 4 - to długości cyklu, a 1 - to przesunięcie
Stałe:
Zdefiniowanych jest 15 stałych:
M_PI pi - liczba Pitagorasa
M_PI_2 - pi/2
M_PI_4 - pi/4
M_1_PI - 1/pi
M_2_PI - 2/pi
M_1_SQRTPI - 1/(pierwiastek z pi)
M_2_SQRTPI - 2/(pierwiastek z pi)
M_E - wartość liczby e
M_LOG2E - log2(e)
M_LOG10E - log10(e)
M_LN2 - ln(2)
M_LN10 - ln(10)
M_SQRT2 - pierwiastek z 2
M_SQRT_2 - (pierwiastek z 2)/2
NN +'nieskończoność' = 1.7e308 (wersja double), 1.18973149535723162e4932 (wersja long double)
Operatory o takim samym pierwszeństwie obliczane są w kolejności od lewej do prawej.
Ujęcie wyrażenia w nawiasy powoduje podniesienie pierwszeństwa tego wyrażenia.
Całe wyrażenie jest zawsze liczone kolejno od początku lewej strony w kierunku do prawej strony. Przykładowo - wyrażenie: x*5+2-3 jest liczone w taki sposób ((x*5)+2)-3 a nie np. (x*5)+(2-3).
Uwagi:Autor: Artur Czekalski; email ARTUR@epokaY.net
Strona główna www.epokaY.net/artur/programowane.php