TapHome

Matematičke funkcije

Matematičke funkcije skripte TapHome — MIN, MAX, AVG i njihove varijante STRICT, ABS, SIGN, SQRT, POWER, MOD, LOG, LN i DEWPOINT.

Funkcije za agregiranje vrijednosti i za osnovnu aritmetiku. ROUND, CEIL, FLOOR, RAND i RANDINT nalaze se na stranici Zaokruživanje i slučajni brojevi. Operatori kao +, -, * i / nalaze se na stranici Operatori; operatori % i ** ne postoje — koristite MOD i POWER.

MIN

MIN vraća najmanju od zadanih vrijednosti i preskače nepoznate vrijednosti (Null i NaN).

1
2
MIN(value1, value2, ...)
MIN(collection)

Parametri — 1 do 100 vrijednosti ili točno jedna zbirka. Vrijednosti ne moraju biti brojevi, ali moraju biti međusobno usporedive, na primjer vrijednosti datetime.

Vraća — najmanju poznatu vrijednost. Kada nijedna vrijednost nije poznata, rezultat je NaN (Null kada su svi ulazi Null).

Primjer

MIN(40, 80, NaN);
# Result: 40
MIN({1, NaN, 3});
# Result: 1
VAR d1 := DATETIME(2014, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
VAR d2 := DATETIME(2015, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
MIN(d1, d2);
# Result: the value of d1

Pogreške — Collection is empty za praznu zbirku.

MINSTRICT

MINSTRICT vraća najmanju od zadanih vrijednosti, ali čim naiđe na nepoznatu vrijednost (Null ili NaN), umjesto toga vraća tu vrijednost — koristite ga kada jedan ulaz koji nedostaje mora poništiti cijeli rezultat.

1
2
MINSTRICT(value1, value2, ...)
MINSTRICT(collection)

Primjer

MINSTRICT(40, 80);
# Result: 40
MINSTRICT(80, NaN);
# Result: NaN
MINSTRICT({1, NaN, 3});
# Result: NaN

Argumenti i pogreške isti su kao kod funkcije MIN.

MAX

MAX vraća najveću od zadanih vrijednosti i preskače nepoznate vrijednosti (Null i NaN); prihvaća iste argumente kao MIN.

1
2
MAX(value1, value2, ...)
MAX(collection)

Primjer

MAX(40, 80, NaN);
# Result: 80
MAX({1, NaN, 3});
# Result: 3

MAXSTRICT

MAXSTRICT vraća najveću od zadanih vrijednosti ili prvu nepoznatu vrijednost (Null ili NaN) na koju naiđe.

1
2
MAXSTRICT(value1, value2, ...)
MAXSTRICT(collection)

Primjer

MAXSTRICT(2, 2, 6);
# Result: 6
MAXSTRICT({1, NaN, 3});
# Result: NaN

AVG

AVG vraća aritmetičku sredinu zadanih vrijednosti kao double i preskače Null i NaN.

1
2
AVG(value1, value2, ...)
AVG(collection)

Vraća — double; NaN kada nijedna vrijednost nije poznata. Prosjek znakova računa se iz njihovih kodova, pa je AVG('a', 'c') broj 98, a ne znak 'b'.

Primjer

AVG(40, 80, NaN);
# Result: 60
AVG({1, NaN, 3});
# Result: 2
AVG('a', 'c');
# Result: 98

AVGSTRICT

AVGSTRICT vraća aritmetičku sredinu zadanih vrijednosti ili NaN čim je jedna od njih NaN.

1
2
AVGSTRICT(value1, value2, ...)
AVGSTRICT(collection)

Vraća — double. Ulaz Null je pogreška pri izvršavanju, a ne preskočena vrijednost.

Primjer

AVGSTRICT(40, 80);
# Result: 60
AVGSTRICT(80, NaN);
# Result: NaN

ABS

ABS vraća apsolutnu vrijednost broja kao double.

ABS(-100);
# Result: 100

SIGN

SIGN vraća -1 za negativan broj, 0 za nulu i 1 za pozitivan broj, kao int.

SIGN(-22.5);
# Result: -1

SQRT

SQRT vraća drugi korijen broja koji je 0 ili veći.

SQRT(25);
# Result: 5

Pogreške — Argument for SQRT cannot be less than 0.

POWER

POWER potencira broj zadanim eksponentom; eksponent smije biti negativan ili razlomak.

1
POWER(number, exponent)

Primjer

POWER(2, 3);
# Result: 8
POWER(10, -3);
# Result: 0.001
POWER(25, 0.5);
# Result: 5

MOD

MOD vraća ostatak dijeljenja jednog broja drugim; radi i s decimalnim brojevima.

1
MOD(dividend, divisor)

Vraća — double s predznakom djeljenika, pa negativan djeljenik daje negativan ostatak (za razliku od funkcije MOD u Excelu). Djelitelj 0 daje NaN, a ne pogrešku.

Primjer

MOD(6, 4);
# Result: 2
MOD(6, 2.5);
# Result: 1
MOD(-7, 3);
# Result: -1

LOG

LOG vraća logaritam pozitivnog broja sa zadanom bazom ili s bazom 10 kada se baza izostavi.

1
2
LOG(number)
LOG(number, base)

Primjer

LOG(100);
# Result: 2
LOG(4, 0.5);
# Result: -2

Pogreške — Arguments for LOG cannot be less or equal to 0; Second argument for LOG cannot be less or equal to 0 or 1.

LN

LN vraća prirodni logaritam (baza e) pozitivnog broja.

LN(100);
# Result: 4.605 (rounded)

Pogreške — Argument for LN cannot be less or equal to 0.

DEWPOINT

DEWPOINT vraća rosište u °C iz temperature zraka u °C i relativne vlažnosti zadane kao udio od 0 do 1 (0.5 znači 50 %).

1
DEWPOINT(temperature, relativeHumidity)

Vraća — double, izračunat Magnusovom formulom (jednadžba). Kada argument uopće nije broj (na primjer Null ili tekst), rezultat je -40.

Primjer

DEWPOINT(20, 0.5);
# Result: 9.26 (rounded)
DEWPOINT(0, 1);
# Result: 0

Vlažnost zadajte kao udio. DEWPOINT(20, 50) vraća 103.17, besmislenu vrijednost, bez ikakve pogreške. Vlažnost u postocima, na primjer neobrađenu vrijednost očitanu iz registra Modbus, najprije treba podijeliti sa 100.