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.

Exemplos de arredondamento e truncamento

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
Cálculo da área do círculo

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.