Você está aqui: VB.NET ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Uma função recursiva que conta quantas vezes um valor inteiro k ocorre em um vetor de inteiros - Desafio de Programação Resolvido em VB.NET

Quantidade de visualizações: 388 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


Link para compartilhar na Internet ou com seus amigos:

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

Como usar o condicional If...Then e If...Then...Else em VB.NET

Quantidade de visualizações: 18002 vezes
Uma das estruturas condicionais mais usadas em VB.NET é o If...Then. Esta estrutura avalia uma condição e executa um bloco de códigos baseado no resultado. Veja um exemplo:

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

Dim valor As Integer = 10

If valor > 9 Then
  Console.WriteLine("Valor é maior que 10")
End If

Há casos em que queremos que um bloco de códigos seja também executado caso a condição avaliada retorne um valor falso. Para isso podemos usar a estrutura If...Then...Else. Veja:

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

Dim valor As Integer = 10

If valor > 10 Then
  Console.WriteLine("Valor é maior que 10")
Else
  Console.WriteLine("Valor é menor ou igual a 10")
End If

Veja agora como é possível testarmos três condições:

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

Dim valor As Integer = 10

If valor > 10 Then
  Console.WriteLine("Valor é maior que 10")
ElseIf valor < 10 Then
  Console.WriteLine("Valor é menor que 10")
Else
  Console.WriteLine("Valor é igual a 10")
End If

Todos os testes efetuados em uma estrutura If precisam retornar um valor True ou False. Veja como isso é verdade no trecho de código a seguir:

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

Dim valor As Integer = 15

If (valor > 10) = True Then
  Console.WriteLine("Valor é maior que 10")
End If

Veja que usamos parênteses ao redor da condição para deixar claro a quem ler nosso código, que a condição é testada e só então seu resultado é comparado com a palavra-chave True. Podemos usar mais parênteses. Veja:

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

Dim valor As Integer = 15

If ((valor > 10) = True) Then
  Console.WriteLine("Valor é maior que 10")
End If

O compilador nunca reclama dos parênteses. Podemos usá-los à vontade para tornar o código mais légivel.


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

Como calcular a equação reduzida da reta em VB.NET dados dois pontos pertencentes à reta

Quantidade de visualizações: 297 vezes
Nesta dica de VB.NET veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito.

Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem.

Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta:



Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código VB.NET completo para esta tarefa:

----------------------------------------------------------------------
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 ler as coordenadas do primeiro ponto
    Console.Write("Coordenada x do primeiro ponto: ")
    Dim x1 As Double = Double.Parse(Console.ReadLine())
    Console.Write("Coordenada y do primeiro ponto: ")
    Dim y1 As Double = Double.Parse(Console.ReadLine())

    ' vamos ler as coordenadas do segundo ponto
    Console.Write("Coordenada x do segundo ponto: ")
    Dim x2 As Double = Double.Parse(Console.ReadLine())
    Console.Write("Coordenada y do segundo ponto: ")
    Dim y2 As Double = Double.Parse(Console.ReadLine())

    Dim sinal As String = "+"
    ' vamos calcular o coeficiente angular da reta
    Dim m As Double = (y2 - y1) / (x2 - x1)
    ' vamos calcular o coeficiente linear
    Dim n As Double = y1 - (m * x1)

    ' coeficiente linear menor que zero? O sinal será negativo
    If n < 0 Then
      sinal = "-"
      n = n * -1
    End If

    ' mostra a equação reduzida da reta
    Console.WriteLine("Equação reduzida: y = " & m & "x" _
      & " " & sinal & " " & n)

    Console.WriteLine(vbCrLf & 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:

Coordenada x do primeiro ponto: 5
Coordenada y do primeiro ponto: 5
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 2
Equação reduzida: y = -0,75x + 8,75

Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo:

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

>> y = (-0.75 * 3) + 8.75
y = 6.5000

temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem.


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: 984 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.


Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Viscosidade dinâmica

A viscosidade cinemática de um óleo lubrificante é de 0,028m2/s, e seu peso específico relativo é de 0,85. Qual a sua viscosidade dinâmica, em Pa.s? Sabe-se que a aceleração gravitacional local é de 10m/s2.

A) 233Pa.s.

B) 85Pa.s.

C) 85000Pa.s.

D) 23,8Pa.s.

E) 2,38Pa.s.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Raio Hidráulico

Qual é o raio hidráulico em um canal de seção retangular com 2,00 m de largura por 1,20 m de altura? Considere que este canal está preenchido com 1/3 de água da sua capacidade.



A) 0,10 m

B) 0,29 m

C) 0,19 m

D) 2,29 m

E) 0,39 m
Verificar Resposta Estudar Cards Todas as Questões

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

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

A rede de esgoto se divide em primário e secundário. A rede primária é aquela que fica em contato com os gases que vêm da rede externa. Durante a execução das instalações externas e enterradas de esgoto sanitário primário de uma residência, você deverá especificar a tubulação que deverá ser instalada do vaso sanitário até o sistema de coleta público de esgotos. Sobre essa tubulação, assinale a alternativa correta:

A) Deverá ser adotada uma tubulação de PVC rígido da série reforçada com DN mínimo de 100mm.

B) Deverá ser adotada uma tubulação de cerâmica rígida da série normal com DN máximo de 75mm.

C) Deverá ser adotada uma tubulação de PVC rígido da série reforçada com DN máximo de 40mm.

D) Deverá ser adotada uma tubulação de PVC rígido da série normal com DN máximo de 40mm.

E) Deverá ser adotada uma tubulação de PVC rígido da série normal com DN máximo de 220mm.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Hidrologia

(Udesc 2016) "Por meio da interligação dos reservatórios por um canal, o chamado modelo de usina a fio d'água permitiu que Belo Monte ocupasse uma área 60% menor do que a prevista no projeto original. A mudança garantiu que nenhuma aldeia indígena próxima ao empreendimento fosse inundada e a hidrologia do rio ________________, preservada. A piracema também não foi comprometida, graças à colocação de escadas de peixes que preservam o equilíbrio da fauna aquática do rio."

Disponível em http://www.brasil.gov.br/governo/2016/05/dilma-inaugura-usina-hidreletrica-de-belo-monte, acessado em agosto de 2016.

O nome do rio que completa corretamente a lacuna do texto acima é:

A) Xingu.

B) Madeira.

C) Teles Pires.

D) Juruá.

E) Guaporé.
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?

for i in range(0, 10, 3):
  print(i, end="  ")

A) 0 3 6 9

B) 0 1 2 3

C) 3 6 9 12

D) 10 20 30 40

E) 0 0 0 0
Verificar Resposta Estudar Cards Todas as Questões

Desafios, 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á 19 usuários muito felizes estudando em nosso site.