Escolar Documentos
Profissional Documentos
Cultura Documentos
A classe System.Math oferece muitos campos constantes e métodos estáticos que você pode usar para fazer cálculos trigonométricos,
logarítmicos, e outros cálculos matemáticos. Por exemplo, o método Pow da classe System.Math pode ser usado para elevar um número a uma
potência de x.
Abs(4.5) = 4.5;
Abs(x) Fornece Valor absoluto de x
Abs(-4.5) = 4.5;
Ceiling(4.1) = 5;
Ceiling(x) Arredonda x para cima
Ceiling(-4.1) = -4;
Floor(2.9) = 2;
Floor(x) Arredonda o valor de x para baixo
Floor(-2.9)) = -3;
Max(2.46,2.56) = 2.56;
Max(x,y) Obtém o maior valor entre dois números
Max(-2.46,-2.56) = 2.46;
Min(1.92,1.89) = 1.89;
Min(x,y) Obtém o menor valor entre dois números
Min(-1.92,-1.89) = 1.92;
Vamos usar o método Pow e o campo Math.PI (devolve o valor de PI, a razão entre a circunferência de um círculo com o seu diâmetro), para
calcular a área de um círculo . Onde RaioDoCirculo é o raio de um círculo, e PI é o número 3.14159265358979323846.
Crie um novo projeto usando o Visual Studio Express 2012 for Desktop. Escolha a sua linguagem de preferência VB .NET ou C#. Informe o nome do
projeto como AreaDoCirculo;
A seguir defina o seguinte código em arquivo Program.cs para projeto C# ou no modulo padrão em Sub Main() para um projeto VB .NET:
using System;
Module Module1
namespace CalcularAreaCirculo
{ Sub Main()
class Program
{ Dim areaCirculo As Double
static void Main(string[] args) Dim RaioDoCirculo As Double
{
Console.WriteLine(" Informe o raio do Círculo : ")
double areaCirculo = 0; RaioDoCirculo = Convert.ToDouble(Console.ReadLine)
double RaioDoCirculo = 0; areaCirculo = Math.PI * Math.Pow(RaioDoCirculo, 2)
Console.WriteLine(" Informe o raio do Círculo : "); Console.WriteLine(" A área do círculo de raio " &
RaioDoCirculo = Convert.ToDouble(Console.ReadLine()); RaioDoCirculo.ToString & " é : " & areaCirculo.ToString)
areaCirculo = Math.PI * Math.Pow(RaioDoCirculo, 2);
Console.WriteLine(" A área do círculo de raio " + Console.ReadKey()
RaioDoCirculo.ToString() + " é : " + areaCirculo.ToString());
End Sub
Console.ReadKey();
End Module
}
}
}
C# VB .NET
www.macoratti.net/13/03/c_mat1.htm 1/7
22/06/2019 C# - A classe Math
Outra constante, diferente de PI, é a base logarítmica natural ou constante de Euler, especificada pela constante Math.E (
2,7182818284590452354). O método Log() calcula o logaritmo de um número especificado em uma base especificada.
Assim o método Log(double a,double novaBase) tem dois parâmetros. O primeiro é o número cujo logaritmo é para ser encontrado, e o segundo é
a base do logaritmo.
Console.WriteLine(System.Math.Log(Math.E, 10))
Console.ReadKey()
A função Math.Round tem outra sobrecarga com o qual você pode especificar o número de dígitos além do ponto decimal no valor retornado.
Em outras palavras, ele retorna o valor mais próximo do número com precisão igual ao segundo parâmetro passado.
Se o valor para arredondar esta exatamente a meio caminho entre um par e um número ímpar (por exemplo, 0,45, com precisão de 1),
então o número ainda é retornado.
Se o número de dígitos após o decimal no primeiro parâmetro é menor do que o número de precisão no segundo parâmetro, então o método
Round retorna ao valor passado. Veja alguns exemplos abaixo:
Você pode usar o método Floor para truncar um número real. O método retorna o maior número inteiro menor que o número original. Por
exemplo, use o seguinte para obter o Floor de 4.8.
A resposta seria 4. Observe que o método Floor pode se comportar diferentemente do que você poderia esperar para valores negativos. Por
exemplo, Math.floor (-4.8) retorna -5.
O método de Celing faz o contrário, retornando o menor número inteiro maior do que o original.
Criando uma classe para cálculo de área de volume com base na classe Math
Vamos agora criar uma classe para realizar alguns cálculos de área e volume com base na classe Math.
Esta classe será uma classe estática com métodos estáticos de forma que não precisaremos instanciar a classe para acessar os seus métodos.
Regra#1. Uma classe estática deve conter a palavra chave static na declaração da classe;
Regar#2. Para definir um método estático devemos usar a palavra chave static na definição método;
Regra#3. Em uma classe estática o construtor deve ser estático pois a classe não pode ser instanciada;
Regra#4. O construtor não deve conter um modificador de acesso;
Regar#5. Uma classe estática não pode implementar uma interface;
Iremos criar um projeto do tipo Class Library de forma que o afinal teremos uma DLL que poderemos referenciar em qualquer tipo de projeto.
Abra o Visual Studio Express 2012 for desktop e clique no menu File-> New Project;
A seguir selecione o template : Visual C# -> Class Library, informando o nome MacMath;
www.macoratti.net/13/03/c_mat1.htm 2/7
22/06/2019 C# - A classe Math
using System;
namespace Macoratti
{
public static class MacMath
{
/// <summary>
/// Area do Quadrado em função do lado
/// </summary>
/// <param name="lado"></param>
/// <returns></returns>
public static double AreaQuadrado(double lado)
{
return lado * lado;
}
/// <summary>
/// Area do quadrado com base na diagonal
/// </summary>
/// <param name="diagonal"></param>
/// <returns></returns>
public static double AreaQuadradoDiagonal(double diagonal)
{
return (diagonal * diagonal) / 2;
}
/// <summary>
/// Area do tringulo em função da base e altura
/// </summary>
/// <param name="altura"></param>
/// <param name="valorBase"></param>
/// <returns></returns>
public static double AreaTriangulo(double altura, double valorBase)
{
return (valorBase * altura)/2;
}
/// <summary>
/// Area do retangulo em função da base e altura
/// </summary>
/// <param name="valorBase"></param>
/// <param name="altura"></param>
/// <returns></returns>
public static double AreaRetangulo(double valorBase, double altura)
{
return (valorBase * altura);
}
/// <summary>
/// Area do circulo em função do raio
/// Usa a constante PI
/// </summary>
/// <param name="raio"></param>
/// <returns></returns>
public static double AreaCirculo(double raio)
{
return (raio * Math.PI);
}
/// <summary>
/// Area do trapezio em função da altura e base menor e maior
/// </summary>
/// <param name="altura"></param>
/// <param name="baseMenor"></param>
/// <param name="baseMaior"></param>
/// <returns></returns>
public static double AreaTrapezio(double altura, double baseMenor, double baseMaior)
{
return (altura * (baseMaior - baseMenor)) / 2;
}
/// <summary>
/// Area d Anel(setor circular em função dos raios interno e externo
/// </summary>
/// <param name="raioInterno"></param>
/// <param name="raioExterno"></param>
/// <returns></returns>
public static double AreaSetorCircular(double raioInterno,double raioExterno)
{
return (AreaCirculo(raioInterno) - AreaCirculo(raioExterno));
www.macoratti.net/13/03/c_mat1.htm 3/7
22/06/2019 C# - A classe Math
}
/// <summary>
/// Volume do cilindro com base na altura e raio
/// </summary>
/// <param name="altura"></param>
/// <param name="raio"></param>
/// <returns></returns>
public static double VolumeCilindro(double altura, double raio)
{
return Math.PI * Math.Pow(raio,2) * altura;
}
/// <summary>
/// Volume de um tubo (cilindro vasado)
/// </summary>
/// <param name="altura"></param>
/// <param name="raioExterno"></param>
/// <param name="raioInterno"></param>
/// <returns></returns>
public static double VolumeCilindroOco(double altura, double raioExterno, double raioInterno)
{
return VolumeCilindro(altura, raioExterno) - VolumeCilindro(altura, raioInterno);
}
/// <summary>
/// Volume da Esfora com base no raio
/// </summary>
/// <param name="raio"></param>
/// <returns></returns>
public static double VolumeEsfera(double raio)
{
return 4 / 3 * Math.PI * Math.Pow(raio, 3);
}
/// <summary>
/// Area da esfera com base no raio
/// </summary>
/// <param name="raio"></param>
/// <returns></returns>
public static double AreaEsfera(double raio)
{
return 4 * Math.PI * Math.Pow(raio, 2);
}
/// <summary>
/// Volume da Piramide em função da altura e area da base
/// </summary>
/// <param name="altura"></param>
/// <param name="areaBase"></param>
/// <returns></returns>
public static double VolumePiramide(double altura, double areaBase)
{
return (altura * areaBase) / 3;
}
}
}
Cada método possui uma documentação básica e usa as fórmulas matemáticas para calcular a respectiva área e/ou volume.
Após criar a classe compile o projeto de forma gerar o arquivo dll - MacMath.dll - que iremos referenciar em um projeto Windows Forms de forma
a usar os métodos para calcular algumas áreas e volumes.
Abra o Visual Studio Express 2012 for desktop e clique no menu File-> New Project;
www.macoratti.net/13/03/c_mat1.htm 4/7
22/06/2019 C# - A classe Math
Vamos agora incluir a referência a nossa dll criada no projeto Class Library.
No menu PROJECT clique em Add Reference e a seguir na guia Browse e localize onde você criou o arquivo dll do projeto Class Library:
Agora vamos definir uma interface bem simples no formulário form1.cs usando os seguintes controles:
TabControl
Panel
Picture
TextBox
Button
Abaixo temos o código do formulário iniciando com a declaração dos namespaces. Note que estamos declarando o namespace Macoratti de forma
a simplificar a chamada dos métodos da Library.
www.macoratti.net/13/03/c_mat1.htm 5/7
22/06/2019 C# - A classe Math
O código do formulário abaixo mostra que no evento Click de cada botão de comando estamos chamando diretamente o método da classe
MacMath sem a necessidade de criar uma instância da classe pois ela é uma classe estática.
namespace Calculando
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
www.macoratti.net/13/03/c_mat1.htm 6/7
22/06/2019 C# - A classe Math
return;
}
if (String.IsNullOrEmpty(txtRaioCilindro.Text))
{
MessageBox.Show("Informe o valor do raio do Cilindro.", "Raio do Cilindro", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
//
try
{
double altura = Convert.ToDouble(txtRaioCilindro.Text);
double raio = Convert.ToDouble(txtAlturaCilindro.Text);
txtVolumeCilindro.Text = MacMath.VolumeCilindro(raio,altura).ToString();
}
catch
{
MessageBox.Show("Ocorreu um erro no cálculo da área.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
lblaltura.Focus();
}
}
Estamos usando o evento KeyPress para permitir somente valores numéricos nas caixas de texto e estamos verificando se foram informando
valores nas caixas de texto.
1Pe 2:6 Por isso, na Escritura se diz: Eis que ponho em Sião uma principal pedra angular, eleita e preciosa; e quem nela crer não será
confundido.
1Pe 2:7 E assim para vós, os que credes, é a preciosidade; mas para os descrentes, a pedra que os edificadores rejeitaram, esta foi
posta como a principal da esquina,
1Pe 2:8 e: Como uma pedra de tropeço e rocha de escândalo; porque tropeçam na palavra, sendo desobedientes; para o que também
foram destinados.
Referências:
www.macoratti.net/13/03/c_mat1.htm 7/7