Campo formula - tutto su sintassi e operatori
Vuoi creare il tuo primo campo formula Calculoid? Dai un'occhiata a questo post per familiarizzare con la sintassi e gli operatori di Calculoid.
Sintassi dell'espressione
Il parser accetta una grammatica piuttosto semplice. Gli operatori hanno la normale precidenza - f (x, y, z) (chiamate di funzione), ^ (esponenziazione), *, /, e% (moltiplicazione, divisione e resto) e infine +, -, e || (addizione, sottrazione e concatenazione di stringhe) - e si legano da sinistra a destra (sì, persino l'esponenziazione ... in questo modo è più semplice).
C'è anche un operatore "," (virgola) che concatena i valori in un array. È utile soprattutto per passare argomenti alle funzioni, dal momento che non si comporta sempre come si penserebbe con gli array multidimensionali. Se il valore di sinistra è un array, esso spinge il valore corretto alla fine dell'array, altrimenti crea un nuovo array "[left, right]". Ciò rende impossibile creare una matrice con un altro array come primo elemento.
All'interno del primo argomento della funzione if possono essere utilizzati questi operatori per confrontare le espressioni:
==
Pari!=
Non uguale>
Maggiore di>=
Maggiore o uguale a<
Meno di<=
Minore o uguale aand
Operatore logico ANDor
Operatore logico OR
Esempio di funzione if: if(1 and 2 <= 4, 2, 0) + 2
= 4
Operatori di funzioni
Il parser ha diverse "funzioni" incorporate che sono in realtà operatori. L'unica differenza da un punto di vista esterno è che non possono essere chiamati con più argomenti e vengono valutati dal metodo di semplificazione se i loro argomenti sono costanti.
sin(x)
Seno di x (x è in radianti)cos(x)
Coseno di x (x è in radianti)tan(x)
Tangente di x (x è ... beh, lo sai)asin(x)
Arco seno di x (in radianti)acos(x)
Coseno arco di x (in radianti)atan(x)
Arco tangente di x (in radianti)sqrt(x)
Radice quadrata di x. Il risultato è NaN (Not a Number) se x è negativo.log(x)
Logaritmo naturale di x (non base-10). È log invece di ln perché è ciò che JavaScript chiama.abs(x)
Valore assoluto (magnatude) di xceil(x)
Massimale di x - il numero intero più piccolo che è> = x.floor(x)
Floor of x: il numero intero più grande <= xround(x, n))
X, arrotondato al numero intero più vicino o al numero decimale, utilizzando "arrotondamento a gradeschool".exp(x)
ex (funzione esponenziale / antilogaritmo con base e)random(n)
Ottieni un numero casuale nell'intervallo [0, n). Se n è zero o non è fornito, per impostazione predefinita è 1.fac(n)
n! (fattoriale di n: "n * (n-1) * (n-2) * ... * 2 * 1")min(a,b,…)
Ottieni il numero più piccolo ("minimo") nell'elencomax(a,b,…)
Ottieni il numero più grande ("massimo") nell'elencopyt(a, b)
Funzione pitagorica, cioè la c in "c2 = a2 + b2"pow(x, y)
xy. Questo è esattamente lo stesso di "x ^ y". Viene fornito solo poiché si trova nell'oggetto Math da JavaScriptatan2(y, x)
arco tangente di x / yie l'angolo tra (0, 0) e (x, y) in radianti.if(c, a, b)
La funzione di condizione in cui c è condizione, a è risultato se c è vero, b è risultato se c è falsolen(n)
La lunghezza del carattere di nie len (123) = 3- todayDate () Restituisce la data odierna nel formato standard.
- newDate (anno, mese, giorni) Data di ritorno nel formato standard basato sui parametri anno, mese, giorni.
- dateFormat (data, formato) Data di ritorno in un formato personalizzato o in formato data assoluto (in millisecondi). È possibile trovare diversi formati: https://docs.angularjs.org/api/ng/filter/date.
- getTime (data) Restituisce la data in formato data assoluto (in millisecondi).
- dateAdd (data, tipo, valore) Aggiunge valore alla data. tipi: https://docs.angularjs.org/api/ng/filter/date. I risultati restituiti sono in formato data assoluto. Può essere utilizzato con dateFormat (dateAdd (data, tipo, valore), 'gg.MM.aaaa').
- dateDeduct (date, type, value) Assume valore alla data. Tipi: https://docs.angularjs.org/api/ng/filter/date. I risultati restituiti sono in formato data assoluto. Può essere utilizzato con dateFormat (dateAdd (data, tipo, valore), 'gg.MM.aaaa').