Você está aqui: VB.NET ::: Dicas & Truques ::: Matemática e Estatística

Como resolver uma equação do segundo grau em VB.NET - Como calcular Bhaskara em VB.NET

Quantidade de visualizações: 454 vezes
Como resolver uma equação do 2º grau usando VB.NET

Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando a linguagem VB.NET.

Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a ≠ 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita.

Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0.

Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente.

Como resolver uma equação do 2º grau

Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns:

a) Fórmula de Bhaskara;
b) Soma e produto.

O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa.

Como resolver uma equação do 2º grau usando Bhaskara

Como nosso código VB.NET vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja:

\[\Delta =b^2-4ac\]

Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades:

a) Se determinante > 0, então a equação possui duas soluções reais.
b) Se determinante = 0, então a equação possui uma única solução real.
c) Se determinante < 0, então a equação não possui solução real.

Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara:

\[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\]

Vamos agora ao código VB.NET. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Imports System

Module Program
  Sub Main(args As String())
    ' os coeficientes
    Dim a, b, c As Double
    ' as duas raizes, a imaginaria e o discriminante
    Dim raiz1, raiz2, imaginaria, discriminante As Double

    ' vamos pedir para o usuário informar os valores dos coeficientes
    Console.Write("Valor do coeficiente a: ")
    a = Double.Parse(Console.ReadLine())
    Console.Write("Valor do coeficiente b: ")
    b = Double.Parse(Console.ReadLine())
    Console.Write("Valor do coeficiente c: ")
    c = Double.Parse(Console.ReadLine())

    ' vamos calcular o discriminante
    discriminante = (b * b) - (4 * a * c)

    ' a equação possui duas soluções reais?
    If discriminante > 0 Then
      raiz1 = (-b + Math.Sqrt(discriminante)) / (2 * a)
      raiz2 = (-b - Math.Sqrt(discriminante)) / (2 * a)
      Console.Write("Existem duas raizes: x1 = " & raiz1 _
        & " e x2 = " & raiz2)
    ElseIf discriminante = 0 Then
      ' a equação possui uma única solução real?
      raiz1 = raiz2 = -b / (2 * a)
      Console.Write("Existem duas raizes iguais: x1 = " _
        & raiz1 & " e x2 = " & raiz2)
    ElseIf discriminante < 0 Then
      ' a equação não possui solução real?
      raiz1 = raiz2 = -b / (2 * a)
      imaginaria = Math.Sqrt(-discriminante) / (2 * a)
      Console.Write("Existem duas raízes complexas: x1 = " &
        raiz1 & " + " & imaginaria & " e x2 = " & raiz2 _
        & " - " & imaginaria)
    End If

    Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub
End Module

Ao executar este código VB.NET nós teremos o seguinte resultado:

Valor do coeficiente a: 1
Valor do coeficiente b: 2
Valor do coeficiente c: -3
Existem duas raizes: x1 = 1 e x2 = -3

Link para compartilhar na Internet ou com seus amigos:

VB.NET ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em VB.NET dados dois pontos no plano cartesiano

Quantidade de visualizações: 979 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem VB.NET que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Imports System

Module Program
  Sub Main(args As String())
    ' x e y do primeiro ponto
    Console.Write("Informe a coordenada x do primeiro ponto: ")
    Dim x1 As Double = Double.Parse(Console.ReadLine())
    Console.Write("Informe a coordenada y do primeiro ponto: ")
    Dim y1 As Double = Double.Parse(Console.ReadLine())

    ' x e y do segundo ponto
    Console.Write("Informe a coordenada x do segundo ponto: ")
    Dim x2 As Double = Double.Parse(Console.ReadLine())
    Console.Write("Informe a coordenada y do segundo ponto: ")
    Dim y2 As Double = Double.Parse(Console.ReadLine())

    ' agora vamos calcular o coeficiente angular
    Dim m As Double = (y2 - y1) / (x2 - x1)

    ' e mostramos o resultado
    Console.WriteLine("O coeficiente angular é: " & m)

    Console.WriteLine("\nPressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub
End Module

Ao executar este código em linguagem VB.NET nós teremos o seguinte resultado:

O coeficiente angular é: 0,6666666666666666

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Imports System

Module Program
  Sub Main(args As String())
    ' x e y do primeiro ponto
    Console.Write("Informe a coordenada x do primeiro ponto: ")
    Dim x1 As Double = Double.Parse(Console.ReadLine())
    Console.Write("Informe a coordenada y do primeiro ponto: ")
    Dim y1 As Double = Double.Parse(Console.ReadLine())

    ' x e y do segundo ponto
    Console.Write("Informe a coordenada x do segundo ponto: ")
    Dim x2 As Double = Double.Parse(Console.ReadLine())
    Console.Write("Informe a coordenada y do segundo ponto: ")
    Dim y2 As Double = Double.Parse(Console.ReadLine())

    ' vamos obter o comprimento do cateto oposto
    Dim cateto_oposto As Double = y2 - y1
    ' e agora o cateto adjascente
    Dim cateto_adjascente As Double = x2 - x1
    ' vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
    ' (em radianos, não se esqueça)
    Dim tetha As Double = Math.Atan2(cateto_oposto, cateto_adjascente)
    ' e finalmente usamos a tangente desse ângulo para calcular
    ' o coeficiente angular
    Dim tangente As Double = Math.Tan(tetha)

    ' e mostramos o resultado
    Console.WriteLine("O coeficiente angular é: " & tangente)

    Console.WriteLine("\nPressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub
End Module

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.


VB.NET ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar a instrução Exit para abandonar a execução de um laço em VB.NET

Quantidade de visualizações: 9932 vezes
A instrução Exit pode ser usada para alterar o fluxo de controle de um programa. Há várias formas de instrução Exit, cada uma apropriada para sair (abandonar) a execução de diferentes tipos de blocos de códigos.

Esta dica mostra como usar a instrução Exit para abandonar a execução dos laços Do While...Loop, Do...Loop While, Do Until...Loop, Do...Loop Until, For...Next e While. Em cada um destes laços, a instrução Exit deve vir acompanhada do nome do laço. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Dim numero As Integer = 1

While numero <= 100
  Console.WriteLine(numero)
  numero += 1

  If numero > 20 Then
    Exit While
  End If
End While

Execute este código e veja que a contagem pára no 20. Vejamos agora um exemplo do uso da instrução Exit com um laço For...Next:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

For valor As Integer = 3 To 100 Step 3
  Console.WriteLine(valor)

  If valor > 20 Then
    Exit For
  End If
Next

Execute e veja como o laço é interrompido quando o valor da variável valor se torna maior que 20. Para finalizar, lembre-se de que a instrução Exit abandona a execução do laço no local exata em que esta é inserida. Tenha isso em mente para evitar efeitos indesejados em seus códigos.


VB.NET ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Exercícios Resolvidos de VB.NET - Uma função recursiva que conta quantas vezes um valor inteiro k ocorre em um vetor de inteiros

Quantidade de visualizações: 380 vezes
Pergunta/Tarefa:

Escreva uma função recursiva em VB.NET que conta quantas vezes um valor inteiro k ocorre em um vetor de 10 inteiros. Sua função deverá ter a seguinte assinatura:

// função recursiva que recebe um valor e um vetor e retorna quantas
// vezes o valor é encontrado no vetor
public static int QuantRepeticoes(int indice, int valor, int[] vetor) {
  // sua implementação aqui 
}
Seu programa deverá solicitar ao usuário os valores do vetor e o valor a ser pesquisado. Sua saída deverá ser parecida com:

Informe o 1 valor: 2
Informe o 2 valor: 7
Informe o 3 valor: 4
Informe o 4 valor: 7
Informe o 5 valor: 1

Informe o valor a ser pesquisado no vetor: 7
O valor informado se repete 2 vezes.
Resposta/Solução:

Veja a resolução comentada deste exercício usando VB.NET:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

Imports System

Module Program
  ' função principal do programa VB.NET
  Sub Main(args As String())
    ' vamos declarar um vetor de 10 inteiros
    Dim valores(4) As Integer

    ' vamos pedir ao usuário que informe os valores do vetor
    For i As Integer = 0 To valores.Length - 1
      Console.Write("Informe o " & (i + 1) & " valor: ")
      ' efetua a leitura do valor informado para a posição atual do vetor
      valores(i) = Int32.Parse(Console.ReadLine())
    Next

    ' agora vamos pedir para informar o valor a ser pesquisado
    Console.Write(vbCrLf & "Informe o valor a ser pesquisado no vetor: ")
    Dim valor As Integer = Int32.Parse(Console.ReadLine())

    ' e vamos ver a quantidade de repetições
    Dim repeticoes As Integer = QuantRepeticoes(0, valor, valores)
    Console.WriteLine("O valor informado se repete " & repeticoes & " vezes.")

    Console.WriteLine(vbCrLf & vbCrLf & "Pressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub

  ' função recursiva que recebe um valor e um vetor e retorna quantas
  ' vezes o valor é encontrado no vetor
  Function QuantRepeticoes(indice As Integer, valor As Integer, 
    vetor() As Integer) As Integer
    If indice = vetor.Length - 1 Then ' caso base...hora de parar a recursividade
      If vetor(indice) = valor Then
        Return 1 ' mais um repetição foi encontrada
      End If
    Else ' dispara mais uma chamada recursiva
      If vetor(indice) = valor Then ' houve mais uma repetição
        Return 1 + QuantRepeticoes(indice + 1, valor, vetor)
      Else
        Return 0 + QuantRepeticoes(indice + 1, valor, vetor) ' não repetiu
      End If
    End If

    Return 0 ' só para deixar o compilador satisfeito...esta linha nunca é
    ' executada
  End Function

End Module



Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Materiais empregados para instalação de água fria e esgoto

Em terminais de pias e acessórios embutidos na parede, onde são rosqueadas mangueiras e conexões, é indicada a aplicação de joelhos reforçados, em que a rosca é metálica, embutida sob pressão no PVC. A identificação dessa conexão é por um anel azul em sua face. Em relação ao joelho convencional, que é todo em PVC, a vantagem é:

A) estética, uma vez que a face do joelho proporciona um acabamento rente ao azulejo superior à comum.

B) econômica pois elimina uma série de outros componentes e conexões.

C) o sistema de engate rapido por meio de utilização de anel de vedação junto à rosca.

D) o fato de que, com o joelho reforçado, o risco de acontecer trinca resultante de aperto é menor.

E) que fica exposta, eliminando o encaixe na alvenaria, diferentemente das comuns.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Responsabilidade civil no código de defesa do consumidor

Um consumidor compra um ferro de passar roupa e quando está manejando o ferro pela primeira vez ele explode e o atinge, causando-lhe danos morais e estéticos. O consumidor é levado ao hospital para tratar alguns ferimentos. Nesse caso, a ação indenizatória deverá ser proposta em face do fabricante no prazo de:

A) prazo decadencial de 5 anos.

B) prazo prescricional de 30 dias.

C) prazo decadencial de 90 dias.

D) prazo prescricional de 5 anos.

E) prazo prescricional de 90 dias.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual função é usada para remover espaços no início e no fim de uma string em Python?

A) length()

B) strip()

C) chop()

D) trim()

E) escape()
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Qual o resultado da execução do seguinte código Python?

valor = 5
for i in range(0, 4):
  valor++
  
print("O valor final é: {0}  ".format(valor))

A) O valor final é: 8

B) O valor final é: 9

C) Erro de SyntaxError: invalid syntax na linha 3

D) O valor final é: 7

E) Erro de SyntaxError: invalid syntax na linha 2
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Vigas a flexão simples: seções retangulares

O dimensionamento de vigas retangulares armadas à flexão leva em consideração a resistência do concreto à compressão e a resistência do aço à tração. Nesse caso, a viga está simplesmente armada e é composta por armadura principal e armadura construtiva. Dependendo do domínio em que a seção da viga se encontra, pode ser necessário também considerar a resistência do aço à compressão, quando a viga é composta por armadura dupla.

Considere uma viga retangular de concreto com largura de 14cm, concreto C30, e que a agressividade ambiental do local é classe III. Considere também que essa viga deve resistir a uma solicitação por um momento fletor de 95,50kN.m.

Nesse caso, qual é a altura mínima da viga para que não seja necessária armadura dupla?

A) 35cm.

B) 40cm.

C) 45cm.

D) 50cm.

E) 55cm.
Verificar Resposta Estudar Cards Todas as Questões

Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de VB.NET

Veja mais Dicas e truques de VB.NET

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 17 usuários muito felizes estudando em nosso site.