VB .NET - Teorema de Pitágoras


Lembra do teorema de Pitágoras ?

Hoje vamos recordar esse teorema e mostrar um pequeno programa que faz o cálculo usando o VB .NET.

Vamos começar recordando o teorema de Pitágoras...

O Teorema de Pitágoras está relacionado com o comprimento dos lados do triângulo retângulo. Essa figura geométrica é formada por um ângulo interno de 90°, chamado de ângulo reto.

O enunciado desse teorema é: "a soma dos quadrados de seus catetos corresponde ao quadrado de sua hipotenusa."

Segundo o enunciado do Teorema de Pitágoras, a fórmula é representada da seguinte maneira:

a2 = b2 + c2

Sendo,   a=> hipotenusa,    b=> cateto  e     c => cateto

O que é um triângulo retângulo ?

É uma figura geométrica plana, composta por três lados e três ângulos internos sendo que um dos seus ângulos é igual a 90° (ângulo reto).

Os lados de um triângulo retângulo recebem nomes especiais:
  • O lado oposto ao ângulo reto é chamado de hipotenusa
     
  • Os outros dois lados são chamados de catetos

 


A seguir temos algumas das principais relações obtidas em um triângulo retângulo:

fonte: https://matematicabasica.net/triangulo-retangulo/ acessado em jan/2019

Vamos usar essas relações para calcular os lados e o ângulo de um triângulo retângulo usando a linguagem C#.

Criando o projeto no VS 2017

Abra o Visual Studio 2017 Community e crie um novo projeto do tipo Windows Forms App (.NET Framework) com o nome TeoremaPitagoras

A seguir vamos incluir no formulário Form1.vb os seguintes controles:

Disponha os controles conforme mostra a figura abaixo:

Vou usar um código bem simples (que pode ser melhorado) para realizar o cálculo usando o teorema de Pitágoras.

Vamos usar a fórmula do teorema de Pitágoras que pode ser expressa na linguagem VB .NET assim:

    h^2 = a^2 + b^2

Dessa forma podemos calcular a hipotenusa sabendo os valores dos catetos ou podemos calcular os valores dos catetos sabendo o valor da hipotenusa e de um dos catetos.

Dai podemos derivar as seguintes fórmulas expressas da seguinte forma:

    h = Math.Sqrt ( (a^2 + b^2) )  ou     h = (a ^ 2 + b ^ 2) ^ (1 / 2)

    b = Math.Sqrt ( (h^2 - a^2) )

    a = Math.Sqrt ( (h^2 - b^2) )
 

Para calcular o valor de a e b, como estamos trabalhando apenas com números reais, o valor de h tem que ser maior que o valor de e/ou o valor de b.

Vamos calcular a área do triângulo quando o valor do cateto e da altura for informado usando a fórmula:

    area = (b * h) / 2

Código do formulário

Vejamos agora o código usado no formulário do projeto Form1.

1- Código do evento Click do botão Calcular

Private Sub btnCalcular_Click(sender As Object, e As EventArgs) Handles btnCalcular.Click

        If String.IsNullOrEmpty(txtA.Text) And String.IsNullOrEmpty(txtB.Text) And String.IsNullOrEmpty(txtH.Text) Then
            MessageBox.Show("Informe pelo menos dois valores para calcular...")
        ElseIf Not String.IsNullOrEmpty(txtA.Text) And Not String.IsNullOrEmpty(txtB.Text) Then
            Dim a As Single = Convert.ToSingle(txtA.Text)
            Dim b As Single = Convert.ToSingle(txtB.Text)
            CalculaTeoremaPitagoras1(a, b)
            lblArea.Text = "Área ="
        ElseIf Not String.IsNullOrEmpty(txtA.Text) And Not String.IsNullOrEmpty(txtH.Text) Then
            Dim a As Single = Convert.ToSingle(txtA.Text)
            Dim h As Single = Convert.ToSingle(txtH.Text)
            If a > h Then
                MessageBox.Show("O valor da altura deve ser maior que o valor do cateto a")
            Else
                CalculaTeoremaPitagoras2(a, h)
                lblArea.Text = "Área ="
            End If
        ElseIf Not String.IsNullOrEmpty(txtB.Text) And Not String.IsNullOrEmpty(txtH.Text) Then
            Dim b As Single = Convert.ToSingle(txtB.Text)
            Dim h As Single = Convert.ToSingle(txtH.Text)
            If b > h Then
                MessageBox.Show("O valor da altura deve ser maior que o valor do cateto b")
                Return
            Else
                CalculaTeoremaPitagoras3(b, h)
                CalculaArea(b, h)

            End If
        End If
    End Sub

A seguir temos o código dos métodos :

a- CalculaTeoremaPitagoras()

    Private Sub CalculaTeoremaPitagoras1(ByVal a As Single, ByVal b As Single)
        Dim h As Single
        h = (a ^ 2 + b ^ 2) ^ (1 / 2)
        txtH.Text = h
    End Sub

    Private Sub CalculaTeoremaPitagoras2(ByVal a As Single, ByVal h As Single)
        Dim b As Single
        b = Math.Sqrt((h ^ 2) - (a ^ 2))
        txtB.Text = b
    End Sub

    Private Sub CalculaTeoremaPitagoras3(ByVal b As Single, ByVal h As Single)
        Dim a As Single
        Dim temp As Single = (h ^ 2) - (b ^ 2)
        a = Math.Sqrt(temp)
        txtA.Text = a
    End Sub

b- CalculaArea()

    Private Sub CalculaArea(b As Single, h As Single)
        Dim area As Single
        area = (b + h) / 2
        lblArea.Text = $"Área = {area}"
    End Sub

A simplicidade do código dispensa comentários, destaco apenas o fato de estarmos repetindo código e ferindo o princípio DRY (Don´t Repeat Yourself) que recomenda não repetir código.

Então que tal refatorar e melhorar o código usado.

Pegue o sistema completo aqui: TeoremaPitagoras.zip

"Meus filhinhos, estas coisas vos escrevo, para que não pequeis; e, se alguém pecar, temos um Advogado para com o Pai, Jesus Cristo, o justo."
1 João 2:1

Referências:


José Carlos Macoratti