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>.

  • M_PI – A constante π (pi).

  • M_E – Número de Euler, base do logaritmo natural.

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.

  • fmod – Resto com sinal do dividendo.

  • copysign – Devolve um valor com o sinal de outro.

Funções matemáticas comuns#

abs#

Devolve o valor absoluto de um número, removendo qualquer sinal negativo.

Available Functions

1 — Devolve o valor absoluto de um número inteiro.

int abs( int x );

2 — Devolve o valor absoluto de um número de ponto flutuante de dupla precisão.

double abs( double x );

Parameters

Parâmetro

Tipo

Descrição

x

int or double

Um número inteiro ou um número de ponto flutuante.

Return Values

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 Functions
double fmin( double value1, double value2 );

Parameters

Parâmetro

Tipo

Descrição

value1

double

O primeiro valor a comparar.

value2

double

O segundo valor a comparar.

Return Values

Devolve um valor double , representando o menor dos dois valores de entrada.

Examples
// 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 Functions
double fmax( double value1, double value2 );

Parameters

Parâmetro

Tipo

Descrição

value1

double

O primeiro valor a comparar.

value2

double

O segundo valor a comparar.

Return Values

Devolve um valor double , representando o maior dos dois valores de entrada.

Examples
// 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 Functions
double pow( double base, double exponent );

Parameters

Parâmetro

Tipo

Descrição

base

double

O número base.

exponent

double

O expoente.

Return Values

Devolve um valor double representando a base elevada à potência do expoente.

Examples
// 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.

Available Constants
const double M_PI;

Parameters

Esta constante não possui parâmetros.

Return Values

Devolve a constante matemática π como um double double.

Examples
// 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 Constants
const double M_E;

Parameters

Esta constante não possui parâmetros.

Return Values

Devolve a constante matemática e como um double double.

Examples
// 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 Functions
double sin( double x );

Parameters

Parâmetro

Tipo

Descrição

x

double

Um símbolo de número duplo que representa um ângulo em radianos.

Return Values

Devolve um valor double que representa o seno do ângulo.

Examples
// 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 Functions
double cos( double x );

Parameters

Parâmetro

Tipo

Descrição

x

double

Um símbolo de número duplo que representa um ângulo em radianos.

Return Values

Devolve um valor double representando o coseno do ângulo.

Examples
// 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 Functions
double tan( double x );

Parameters

Parâmetro

Tipo

Descrição

x

double

Um símbolo de número duplo que representa um ângulo em radianos.

Return Values

Devolve um valor double representando a tangente do ângulo.

Examples
// 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 Functions
double atan( double x );

Parameters

Parâmetro

Tipo

Descrição

x

double

Um valor duplo.

Return Values

Devolve um valor do tipo double representando a tangente do arco em radianos.

Examples
// 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 Functions
double atan2( double y, double x );

Parameters

Parâmetro

Tipo

Descrição

y

double

Um número de ponto flutuante que representa a coordenada y.

x

double

Um valor do tipo double que representa a coordenada x.

Return Values

Devolve um valor double representando a arcotangente de y/x em radianos.

Examples
// 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 Functions
double asin( double x );

Parameters

Parâmetro

Tipo

Descrição

x

double

Um valor duplo entre -1 e 1.

Return Values

Devolve um valor double representando o seno do arco em radianos.

Examples
// 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 Functions
double acos( double x );

Parameters

Parâmetro

Tipo

Descrição

x

double

Um valor duplo entre -1 e 1.

Return Values

Devolve um valor double que representa o arco coseno em radianos.

Examples
// 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 Functions
double ceil( double x );

Parameters

Parâmetro

Tipo

Descrição

x

double

Um valor duplo a ser arredondado.

Return Values

Devolve um valor double que representa o menor número inteiro maior ou igual a x.

Examples
// 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 Functions
double floor( double x );

Parameters

Parâmetro

Tipo

Descrição

x

double

Um valor duplo deve ser arredondado para baixo.

Return Values

Devolve um valor double que representa o maior número inteiro menor ou igual a x.

Examples
// 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 Functions
double trunc( double x );

Parameters

Parâmetro

Tipo

Descrição

x

double

Um duplicado a ser truncado.

Return Values

Retorna um valor double sem a parte decimal.

Examples
// 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 Functions
double sqrt( double x );

Parameters

Parâmetro

Tipo

Descrição

x

double

Um número duplo não negativo.

Return Values

Devolve um valor double que representa a raiz quadrada de x.

Examples
// Display the square root of 121
Brain.Screen.print("%f", sqrt(121));

// Output: 11.000000

exp#

Calcula a exponencial de um número.

Available Functions
double exp( double x );

Parameters

Parâmetro

Tipo

Descrição

x

double

Uma função dupla para calcular a exponencial de.

Return Values

Devolve um valor double representando e elevado à potência de x.

Examples
// 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 Functions
double log( double x );

Parameters

Parâmetro

Tipo

Descrição

x

double

Um duplo positivo.

Return Values

Devolve um valor double que representa o logaritmo natural de x.

Examples
// 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 Functions
double log10( double x );

Parameters

Parâmetro

Tipo

Descrição

x

double

Um duplo positivo.

Return Values

Devolve um double que representa o logaritmo de x na base 10.

Examples
// 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 Functions
double fmod( double x, double y );

Parameters

Parâmetro

Tipo

Descrição

x

double

O dividendo.

y

double

O divisor.

Return Values

Devolve um valor double que representa o resto da divisão de x por y com o sinal de x.

Examples
// 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 Functions
double copysign( double x, double y );

Parameters

Parâmetro

Tipo

Descrição

x

double

O valor cuja magnitude será utilizada.

y

double

O valor cujo sinal será utilizado.

Return Values

Devolve um valor do tipo double com a magnitude de x e o sinal de y.

Examples
// Return -10 with the sign of -3 (negative)
double result = copysign(10, -3);

Brain.Screen.print("%f", result);  
  
// Output: -10.000000