Hoje veremos as novidades da API Math disponíveis com o .NET 6. |
Para surpresa, o
C# 10 trouxe novos recursos para a API Math, que
geralmente não sofre alterações.
As novidades referem-se aos seguintes recursos:
Cálculo do seno e cosseno
Vamos criar um projeto Console (.NET Core) no VS 2022 e definir o código abaixo na classe Program:
Para calcular o seno e o cosseno a API Math dispõe dos métodos Math.Sin e Math.Cos. Agora temos também o método Math.SinCos e realiza o cálculo do seno e do cosseno :
Console.WriteLine("Cálculo do Seno e Cosseno\n");
Console.WriteLine("Informe o ângulo para calcular : "); var resultado = Math.SinCos(angulo); Console.WriteLine($"Valor do Seno : {resultado.Sin}"); Console.WriteLine($"Valor do Cosseno : {resultado.Cos}\n"); |
Resultado:
Parece que o novo método é um pouco mais lento do que usar cada método separadamente.
Cálculo da estimativa do recíproco de um número
O inverso multiplicativo ou recíproco de um número n, escrito como 1/n ou n-1 (n elevado a menos 1), é um número tal que multiplicado por n, têm-se como resultado a unidade (1). Em outras palavras, o recíproco de um número é igual a 1 dividido pelo número em questão.
O recíproco de uma fração simples x/y é y/x. Por exemplo, o recíproco de 2 é 1/2, porque 2 X 1/2 = 1. O recíproco de 10 é 1/10 ou 0,1.
A API Math apresenta dois novos métodos :
1- ReciprocalEstimate - Calcula a estimativa do recíproco de um número;
Console.WriteLine("Cálculo da estimativa do recíproco de um número\n"); Console.WriteLine("Informe o número a calcular : "); var numero = Convert.ToDouble(Console.ReadLine()); var resultado = Math.ReciprocalEstimate(numero); Console.WriteLine($"O valor obtido é igual a : {resultado}");
|
Resultado:
2- ReciprocalSqrtEstimate - Calcula a estimativa da raiz quadrada recíproca de um número;
Console.WriteLine("Cálculo da estimativa da raiz quadrada recíproca de um número\n"); Console.WriteLine("Informe o número a calcular : "); var numero = Convert.ToDouble(Console.ReadLine()); var resultado = Math.ReciprocalSqrtEstimate(numero); Console.WriteLine($"O valor obtido é igual a : {resultado}"); |
Resultado:
Além destes novos métodos temos uma outra novidade relacionada com o método Math.DivRem que já existia e que calcula o quociente de dois números e também retorna o resto em um parâmetro de saída.
Ele foi aprimorado ainda mais no .NET 6 - em vez de retornar o restante como um parâmetro de saída, o método retorna uma tupla do quociente e o restante.
int resto; var quociente = Math.DivRem(10, 3, out resto); Console.WriteLine($"O quociente é : {quociente} e o resto é : {resto}"); Console.ReadKey(); |
Agora em vez de retornar o resto como parâmetro de saída, o método retorna uma tupla do quociente e do restante.
Console.WriteLine("Informe um numero: "); var numero1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("\nInforme outro numero: "); var resultado =
Math.DivRem(numero1, numero2); |
Resultado:
E estamos conversados.
"Deus "retribuirá
a cada um conforme o seu procedimento".
Ele dará vida eterna aos que, persistindo em fazer o bem, buscam glória, honra e
imortalidade."
Romanos 2:6,7
Referências:
C# - Lendo e escrevendo em arquivos textos e binários
C# - Entendo o I/O na plataforma .NET
C# - Fluxo assíncrono ou async streams
C#- Apresentando Streams assíncronos