Campo de Fórmula - tudo sobre Sintaxe e Operadores
Prestes a criar o seu primeiro campo de fórmula Calculoid? Dê uma olhada neste post para se familiarizar com a sintaxe e operadores da Calculoid.
Expressão sintática
O analisador aceita uma gramática bastante básica. Os operadores têm a precidência normal - f (x, y, z) (chamadas de função), ^ (exponenciação), *, / e% (multiplicação, divisão e resto) e, finalmente, +, - e || (adição, subtração e concatenação de strings) - e ligar da esquerda para a direita (sim, até mesmo exponenciação ... é mais simples assim).
Há também um operador "," (vírgula) que concatena valores em uma matriz. É mais útil para passar argumentos para funções, uma vez que nem sempre se comporta como você pensaria em relação a matrizes multidimensionais. Se o valor da esquerda é uma matriz, ele coloca o valor correto no final da matriz, caso contrário, ele cria uma nova matriz “[esquerda, direita]“. Isso torna impossível criar um array com outro array como primeiro elemento.
Dentro do primeiro argumento da função if podem ser usados esses operadores para comparar expressões:
==
Igual!=
Não igual>
Melhor que>=
Maior ou igual a<
Menor que<=
Menor ou igual aand
Operador Lógico Eor
Operador OR lógico
Exemplo de função if if(1 and 2 <= 4, 2, 0) + 2
= 4
Operadores de função
O analisador possui várias “funções” internas que são, na verdade, operadores. A única diferença do ponto de vista externo é que eles não podem ser chamados com múltiplos argumentos e são avaliados pelo método simplify se seus argumentos forem constantes.
sin(x)
Seno de x (x está em radianos)cos(x)
Cosseno de x (x está em radianos)tan(x)
Tangente de x (x é… bem, você sabe)asin(x)
Arco senoidal de x (em radianos)acos(x)
Cosseno de arco de x (em radianos)atan(x)
Arc tangente de x (em radianos)sqrt(x)
Raiz quadrada de x. O resultado é NaN (não é um número) se x for negativo.log(x)
Logaritmo natural de x (não baseado em 10). É log em vez de ln porque é isso que o JavaScript chama.abs(x)
Valor absoluto (magnatude) de xceil(x)
Teto de x - o menor inteiro que é> = x.floor(x)
Piso de x - o maior inteiro que é <= xround(x, n))
X, arredondado para o número inteiro mais próximo ou para n casas decimais, usando “arredondamento de graus de ensino”.exp(x)
ex (função exponencial / antilogaritmo com base e)random(n)
Obter um número aleatório no intervalo [0, n). Se n for zero ou não for fornecido, o valor padrão será 1.fac(n)
n! (fatorial de n: “n * (n-1) * (n-2) *… * 2 * 1 ″)min(a,b,…)
Obtenha o menor número (mínimo) na listamax(a,b,…)
Obtenha o maior (“máximo”) número na listapyt(a, b)
Função pitagórica, ou seja, o c em “c2 = a2 + b2“pow(x, y)
xy. Isso é exatamente o mesmo que “x ^ y”. É apenas fornecido desde que está no objeto Math do JavaScriptatan2(y, x)
arco tangente de x / yie o ângulo entre (0, 0) e (x, y) em radianos.if(c, a, b)
A função de condição onde c é condição, a é resultado se c é verdadeira, b é resultado se c é falsolen(n)
O comprimento do caractere de nie len (123) = 3- todayDate () Retorna a data de hoje no formato padrão.
- newDate (ano, mês, dias) Data de retorno no formato padrão com base nos parâmetros ano, mês, dias.
- dateFormat (date, format) Data de retorno em um formato personalizado ou em formato de data absoluta (em milissegundos). Formatos diferentes podem ser encontrados: https://docs.angularjs.org/api/ng/filter/date.
- getTime (date) Retorna a data no formato de data absoluta (em milissegundos).
- dateAdd (data, tipo, valor) Adiciona valor à data. Tipos: https://docs.angularjs.org/api/ng/filter/date. Retorna o resultado no formato de data absoluto. Pode ser usado com dateFormat (dateAdd (data, tipo, valor), 'dd.MM.yyyy').
- dateDeduct (data, tipo, valor) Leva o valor à data. Tipos: https://docs.angularjs.org/api/ng/filter/date. Retorna o resultado no formato de data absoluto. Pode ser usado com dateFormat (dateAdd (data, tipo, valor), 'dd.MM.yyyy').