Matemática#
Introdução#
A biblioteca standard do C++ disponibiliza funcionalidades matemáticas básicas através das funções <cmath>, que são suportadas no VEXcode IQ. Estas funções permitem realizar operações matemáticas comuns, como trigonometria, arredondamento, exponenciação e muito mais.
Utilize-as para calcular posições, ângulos, distâncias ou para realizar conversões entre graus e radianos.
Segue-se uma lista de funções matemáticas, constantes e utilitários disponíveis:
Funções matemáticas comuns – Ferramentas matemáticas comuns.
abs– Devolve o valor absoluto de um número.fmin– Devolve o menor dos valores de entrada.fmax– Devolve o maior dos valores de entrada.pow– Eleva um número a uma potência.
Constantes – Valores predefinidos de <cmath>.
Trigonometria – Calcular ângulos e relações entre os lados.
sin– Seno de um ângulo em radianos.cos– Coseno de um ângulo em radianos.tan– Tangente de um ângulo em radianos.atan– Arco tangente de um valor em radianos.atan2– Arcotangente de y/x em radianos, considerando o quadrante.asin– Arco seno de um valor em radianos.acos– Arcocosseno de um valor em radianos.
Arredondamento e valor absoluto – Ajuste a precisão ou a direção.
ceil– Arredonda para cima para o número inteiro mais próximo.floor– Arredonda para baixo para o número inteiro mais próximo.trunc– Remove a parte decimal.
Expoentes e Logaritmos – Cálculos de potência, raiz e logaritmo.
sqrt– Devolve a raiz quadrada.exp– Calcula e elevado à potência de x.log– Logaritmo natural (base e).log10– Logaritmo de base 10.
Operações com números de ponto flutuante – Inspecionar ou decompor valores de ponto flutuante.
Funções matemáticas comuns#
abs#
Devolve o valor absoluto de um número, removendo qualquer sinal negativo.
Available Functions1 — Devolve o valor absoluto de um número inteiro.
int abs( int x );
Parameters2 — Devolve o valor absoluto de um número de ponto flutuante de dupla precisão.
double abs( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um número inteiro ou um número de ponto flutuante. |
Devolve o valor absoluto da entrada no mesmo tipo.
Examples// Display the absolute value of -10
Brain.Screen.print("%d", abs(-10));
// Output: 10
fmin#
Retorna o menor de dois valores como um número de ponto flutuante de dupla precisão (double).
Available Functionsdouble fmin( double value1, double value2 );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O primeiro valor a comparar. |
|
|
O segundo valor a comparar. |
Devolve um valor double , representando o menor dos dois valores de entrada.
// Display the lower of two values
Brain.Screen.print("%f", fmin(7, 4));
// Output: 4.000000
fmax#
Retorna o maior dos dois valores como um número de ponto flutuante de dupla precisão (double).
Available Functionsdouble fmax( double value1, double value2 );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O primeiro valor a comparar. |
|
|
O segundo valor a comparar. |
Devolve um valor double , representando o maior dos dois valores de entrada.
// Display the higher of two values
Brain.Screen.print("%f", fmax(7, 4));
// Output: 7.000000
pow#
Devolve um número elevado a uma potência como um número de ponto flutuante de dupla precisão.
Available Functionsdouble pow( double base, double exponent );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O número base. |
|
|
O expoente. |
Devolve um valor double representando a base elevada à potência do expoente.
// Display 2 to the power of 3
Brain.Screen.print("%f", pow(2, 3));
// Output: 8.000000
Constantes#
As constantes são valores predefinidos que permanecem fixos durante um projeto. Podem ser utilizadas em cálculos sem necessidade de definição ou atribuição.
M_PI#
M_PI fornece a constante matemática π, a razão entre a circunferência de um círculo e o seu diâmetro.
const double M_PI;
Esta constante não possui parâmetros.
Return ValuesDevolve a constante matemática π como um double double.
// Calculate the area of a circle with radius 5
double area = M_PI * 5 * 5;
Brain.Screen.print("%f", area);
// Output: 78.539816
M_E#
A constante matemática e (número de Euler), a base do logaritmo natural.
Available Constantsconst double M_E;
Esta constante não possui parâmetros.
Return ValuesDevolve a constante matemática e como um double double.
// Calculate e raised to the power of 2
double result = pow(M_E, 2);
Brain.Screen.print("%f", result);
// Output: 7.389056
Trigonometria#
sin#
Calcula o seno de um ângulo em radianos e devolve um valor do tipo double.
Available Functionsdouble sin( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um símbolo de número duplo que representa um ângulo em radianos. |
Devolve um valor double que representa o seno do ângulo.
// Convert 30 degrees to radians
double radians = 30 * M_PI / 180.0;
// Display the sine of 30 degrees
Brain.Screen.print("%f", sin(radians));
// Output: 0.500000
cos#
Calcula o coseno de um ângulo em radianos e devolve um valor do tipo double.
Available Functionsdouble cos( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um símbolo de número duplo que representa um ângulo em radianos. |
Devolve um valor double representando o coseno do ângulo.
// Convert 60 degrees to radians
double radians = 60 * M_PI / 180.0;
// Display the cosine of 60 degrees
Brain.Screen.print("%f", cos(radians));
// Output: 0.500000
tan#
Calcula a tangente de um ângulo em radianos e devolve um valor do tipo double.
Available Functionsdouble tan( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um símbolo de número duplo que representa um ângulo em radianos. |
Devolve um valor double representando a tangente do ângulo.
// Convert 45 degrees to radians
double radians = 45 * M_PI / 180.0;
// Compute tangent of 45 degrees
Brain.Screen.print("%f", tan(radians));
// Output: 1.000000
atan#
Calcula a tangente inversa (arco tangente) de um número e devolve um valor do tipo double representando o ângulo em radianos.
Available Functionsdouble atan( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um valor duplo. |
Devolve um valor do tipo double representando a tangente do arco em radianos.
// Calculate the arc tangent of 1 in degrees
double degrees = atan(1.0) * 180.0 / M_PI;
Brain.Screen.print("%f", degrees);
// Output: 45.000000
atan2#
Calcula o valor principal da tangente inversa de y/x e devolve um valor do tipo double que representa o ângulo em radianos.
Available Functionsdouble atan2( double y, double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um número de ponto flutuante que representa a coordenada y. |
|
|
Um valor do tipo double que representa a coordenada x. |
Devolve um valor double representando a arcotangente de y/x em radianos.
// Calculate the inverse tangent of 1/1 in degrees
double degrees = atan2(1.0, 1.0) * 180.0 / M_PI;
Brain.Screen.print("%f", degrees);
// Output: 45.000000
asin#
Calcula o arco seno de um número e devolve um valor do tipo double representando o ângulo em radianos.
Available Functionsdouble asin( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um valor duplo entre -1 e 1. |
Devolve um valor double representando o seno do arco em radianos.
// Calculate the arc sine of 0.5 in degrees
double degrees = asin(0.5) * 180.0 / M_PI;
Brain.Screen.print("%f", degrees);
// Output: 30.000000
acos#
Calcula o arco coseno (cosseno inverso) de um número e devolve um valor do tipo double representando o ângulo em radianos.
Available Functionsdouble acos( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um valor duplo entre -1 e 1. |
Devolve um valor double que representa o arco coseno em radianos.
// Calculate the arc cosine of 0.5 in degrees
double degrees = acos(0.5) * 180.0 / M_PI;
Brain.Screen.print("%f", degrees);
// Output: 60.000000
Arredondamento e valor absoluto#
ceil#
Retorna um número arredondado para cima, resultando num número de ponto flutuante de dupla precisão (double).
Available Functionsdouble ceil( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um valor duplo a ser arredondado. |
Devolve um valor double que representa o menor número inteiro maior ou igual a x.
// Round up 9.7
Brain.Screen.print("%f", ceil(9.7));
// Output: 10.000000
floor#
Retorna um número arredondado para baixo como um número de ponto flutuante de dupla precisão (double).
Available Functionsdouble floor( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um valor duplo deve ser arredondado para baixo. |
Devolve um valor double que representa o maior número inteiro menor ou igual a x.
// Round down 9.7
Brain.Screen.print("%f", floor(9.7));
// Output: 9.000000
trunc#
Devolve um número do tipo double, com a parte decimal definida a zero.
Available Functionsdouble trunc( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um duplicado a ser truncado. |
Retorna um valor double sem a parte decimal.
// Truncate 9.7
Brain.Screen.print("%f", trunc(9.7));
// Output: 9.000000
Expoentes e Logaritmos#
sqrt#
Devolve a raiz quadrada de um número.
Available Functionsdouble sqrt( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um número duplo não negativo. |
Devolve um valor double que representa a raiz quadrada de x.
// Display the square root of 121
Brain.Screen.print("%f", sqrt(121));
// Output: 11.000000
exp#
Calcula a exponencial de um número.
Available Functionsdouble exp( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Uma função dupla para calcular a exponencial de. |
Devolve um valor double representando e elevado à potência de x.
// Calculate e raised to the power of 1
double result = exp(1);
Brain.Screen.print("%f", result);
// Output: 2.718282
log#
Calcula o logaritmo natural de um número.
Available Functionsdouble log( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um duplo positivo. |
Devolve um valor double que representa o logaritmo natural de x.
// Calculate the natural logarithm (base e) of e
double result = log(M_E);
Brain.Screen.print("%f", result);
// Output: 1.000000
log10#
Calcula o logaritmo de base 10 de um número.
Available Functionsdouble log10( double x );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um duplo positivo. |
Devolve um double que representa o logaritmo de x na base 10.
// Calculate the base-10 logarithm of 1000
double result = log10(1000);
Brain.Screen.print("%f", result);
// Output: 3.000000
Operações de Ponto Flutuante#
fmod#
Devolve o resto da divisão, mantendo o sinal do dividendo.
Available Functionsdouble fmod( double x, double y );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O dividendo. |
|
|
O divisor. |
Devolve um valor double que representa o resto da divisão de x por y com o sinal de x.
// Calculate remainder of 10 / -3
// that preserves the sign of 10
double result = fmod(10.0, -3.0);
Brain.Screen.print("%f", result);
// Output: 1.000000
copysign#
Devolve um número com a magnitude de x e o sinal de y.
Available Functionsdouble copysign( double x, double y );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O valor cuja magnitude será utilizada. |
|
|
O valor cujo sinal será utilizado. |
Devolve um valor do tipo double com a magnitude de x e o sinal de y.
// Return -10 with the sign of -3 (negative)
double result = copysign(10, -3);
Brain.Screen.print("%f", result);
// Output: -10.000000