Introdução
Em nosso dia a dia, dependendo dos tipos de sistemas que desenvolvemos, podemos efetuar operações matemáticas um pouco mais complexas que as comuns somas e multiplicações. Nessas situações, geralmente precisamos de funções já existentes como senos e cossenos, dificilmente precisamos de cálculos mais complexos em sistemas comerciais como derivadas e integrais.
Considerando essas necessidades, grande parte das linguagens de programação de alto nível possuem namespaces, classes e outras estruturas que permitem executar o cálculo de funções matemáticas comuns. Nesse artigo conheceremos um pouco da classe Math do .NET Framework, que possui vários métodos importantes como a tangente e potências, e propriedades como as constantes de Euler e o PI.
Essa classe está contida no namespace System e por isso pode ser utilizada nos vários tipos de projeto .NET.
Principais propriedades
- E: a chamada “Constante de Euler” (pronuncia-se óiler), usada, por exemplo, na função exponencial e no logaritmo natural. Vale aproximadamente 2,718.
- PI: essa é a tão conhecida constante PI, que representa a razão entre o perímetro e o diâmetro de um círculo. O valor dessa constante é composto por várias casas decimais, mas arredondando ela vale aproximadamente 3,14. A partir dessa constante é possível calcular valores importantes como a circunferência e a área de círculos, o volume de esferas, entre outros.
Principais métodos
Aqui veremos os principais métodos dessa classe, por ordem alfabética.
- Abs: abreviação de “Absolute”, retorna o valor absoluto ou módulo de um número. Resumidamente, o valor absoluto de um número é a representação positiva do seu valor. Ou seja, se um número é negativo, seu valor absoluto é a mesma quantia, só que positiva, se for positivo, o valor absoluto é ele próprio.
- Acos e Asin: essas funções representam, respectivamente, as funções matemáticas “arco-coseno” e “arco-seno”. Essas funções retornam, nessa ordem, o ângulo cujo valor do coseno ou do seno é passado como parâmetro.
- Atan e Atan2: essas duas funções têm o mesmo objetivo, que é retornar o valor do “arco-tangente”. O arco-tangente segue o mesmo raciocínio das funções acima, representando o valor do arco/ângulo cuja tangente é informada como parâmetro. Na primeira função (Atan), o único parâmetro é exatamente a tangente, na segunda (Atan2), os parâmetro são o seno e o coseno do ângulo.
- Ceiling: retorna o menor valor inteiro que seja maior ou igual ao valor decimal informado como parâmetro. Por exemplo, o retorno dessa função para o parâmetro 2,3 seria 3, pois é o menor valor inteiro superior a 2,3.
- Cos e Cosh: representam o coseno e o coseno hiperbólico de um ângulo (passado como parâmetro) em radianos.
- Exp: retorna o Exponencial de um número. Esse é um exemplo de função que usa a constante de Euler, retornando esta elevada ao número informado como parâmetro.
- Floor: retorna o maior número inteiro que seja menor ou igual ao número decimal passado como parâmetro. Por exemplo, para o parâmetro 2,3 o retorno seria 2, por ser o maior valor inteiro abaixo de 2,3.
- Log e Log10: a primeira recebe dois valores como parâmetro, o logaritmando e a base e retorna o valor do logaritmo do primeiro (parâmetro) na base informada. A segunda retorna diretamente o logaritmo do valor passado como parâmetro, mas na base 10.
- Max e Min: o retorno dessas funções é, respectivamente, o maior e o menor valor entre dois números.
- Pow: retorna o valor do primeiro parâmetro elevado ao segundo (potência).
- Round: essa função tem o objetivo de arredondar um valor numérico, retornando o resultado com um número definido de casas decimais. Esse tipo de função é largamente utilizado em situações onde se tem valores com várias casas decimais que não devem ser consideradas em certos cálculos.
- Sign: retorna um valor indicando o sinal do valor passado como parâmetro. Se o parâmetro for um valor positivo, o retorno é 1, caso contrário, o retorno é -1.
- Sin e Sinh: semelhantes à Cos e Acos, o objetivo dessas funções é obter o seno e seno hiperbólico do ângulo informado como parâmetro, dado em radianos.
- Sqrt: abreviação de “Square Root”, é a tão conhecida Raíz Quadrada de um valor, recebido como parâmetro.
- Tan e Tanh: essas funções recebem como parâmetro um valor decimal, representando um ângulo em radianos, e retorna a tangente e a tangente hiperbólica desse ângulo.
- Truncate: semelhante à Round, mas nesse caso não é feito o arredondamento e sim o truncamento, onde algumas casas decimais são totalmente desconsideradas.
Exemplos práticos
Nas listagens a seguir temos o código da classe Program de aplicações console em C# e VB.NET, exemplificando o uso de algumas das funções e propriedades da classe Math.
Listagem 1: Exemplo de arredondamento e truncamento em C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.Write("Valor arredondado de 3.125 com duas casas decimais: ");
Console.Write(Math.Round(3.125));
Console.Write("\n");
Console.Write("Valor truncado de 3.125: ");
Console.Write(Math.Truncate(3.125));
Console.Read();
}
}
}
Listagem 2: Exemplo de arredondamento e truncamento em VB.NET
Module Module1
Sub Main()
Console.Write("Valor arredondado de 3.125 com duas casas decimais: ")
Console.Write(Math.Round(3.125))
Console.Write("\n")
Console.Write("Valor truncado de 3.125: ")
Console.Write(Math.Truncate(3.125))
Console.Read()
End Sub
End Module
Abaixo temos o resultado desses códigos, apresentados no console.
Figura 1: Exemplos de arredondamento e truncamento
Listagem 3: Cálculo da área de uma circunferência em C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.Write("Informe o valor do raio do círculo: ");
double raio = Convert.ToDouble(Console.Read());
Console.Write("\n");
Console.Write("A área do círculo é: ");
Console.Write(Math.PI * Math.Pow(raio, 2));
Console.ReadLine();
}
}
}
Listagem 4: Cálculo da área de uma circunferência em VB.NET
Module Module1
Sub Main()
Console.Write("Informe o valor do raio do círculo: ")
Dim raio As Double = Convert.ToDouble(Console.Read())
Console.Write("\n")
Console.Write("A área do círculo é: ")
Console.Write(Math.PI * Math.Pow(raio, 2))
Console.ReadLine()
End Sub
End Module
Figura 2: Cálculo da área do círculo
Conclusão
Como foi possível ver ao longo desse artigo, o .NET Framework nos fornece uma classe bastante poderosa para calcular certas funções matemáticas. Isso pode ser de grande ajuda em diversas situações cotidianas.
Até a próxima.