Você está aqui: VB.NET ::: Dicas & Truques ::: Recursão (Recursividade) |
Como somar os elementos de um vetor em VB.NET usando uma função recursiva - Linguagem VB.NET para iniciantesQuantidade de visualizações: 261 vezes |
Em algumas ocasiões ficamos imaginando o que pode ser feito com os métodos e funções recursivas. A resposta é: praticamente tudo. Veja abaixo um programa VB.NET completo no qual eu mostro como escrever uma função recursiva que recebe um array e mostra a soma de seus elementos (lembre-se de que um array é o mesmo que vetor, ou seja, uma matriz de uma linha e várias colunas): ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- Imports System Module Program ' função principal do programa VB.NET Sub Main(args As String()) ' vamos declarar um array de 10 elementos Dim valores(9) As Integer Dim soma As Integer ' vamos pedir ao usuário para informar os valores para o vetor For i As Integer = 0 To valores.GetUpperBound(0) Console.Write("Informe o valor do elemento " & i & ": ") valores(i) = Int32.Parse(Console.ReadLine()) Next ' vamos efetuar uma chamada à função recursiva somar(); ' nota que estamos passando o índice inicial, o tamanho do ' array e o array em si soma = Somar(0, valores) Console.WriteLine(vbCrLf & "A soma dos elementos é: " & soma) Console.WriteLine(vbCrLf & vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub ' função recursiva para somar todos os elementos de um array Function Somar(indice As Integer, vetor As Integer()) As Integer ' o caso base...hora de encerrar a recursividade If indice = (vetor.Length - 1) Then Return vetor(indice) Else ' ainda não é o caso base? vamos fazer uma nova chamada à função somar() Return vetor(indice) + Somar(indice + 1, vetor) End If End Function End Module Ao executarmos este código VB.NET nós teremos o seguinte resultado: Informe o valor do elemento 0: 7 Informe o valor do elemento 1: 3 Informe o valor do elemento 2: 1 Informe o valor do elemento 3: 3 Informe o valor do elemento 4: 8 Informe o valor do elemento 5: 9 Informe o valor do elemento 6: 4 Informe o valor do elemento 7: 3 Informe o valor do elemento 8: 2 Informe o valor do elemento 9: 6 A soma dos elementos é: 46 |
![]() |
VB.NET ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de VB.NET - Como verificar quantas vezes um valor é encontrado em um vetor - Como usar vetores e matrizes em VB.NETQuantidade de visualizações: 400 vezes |
Pergunta/Tarefa: Escreva um programa VB.NET que declara, constrói e inicializa um vetor de 10 inteiros. Em seguida peça para que o usuário informe um valor a ser pesquisado. Faça uma varredura no vetor e informe quantas vezes o valor pesquisado é encontrado: ' declara, constrói e inicializa um vetor de 10 inteiros Dim valores As Integer() = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10} Informe um valor: 4 O valor foi encontrado: 3 vezes Informe um valor: 8 O valor foi encontrado: 1 vezes Informe um valor: 3 O valor foi encontrado: 0 vezes Veja a resolução comentada deste exercício usando VB.NET: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- Imports System Module Program ' função principal do programa VB.NET Sub Main(args As String()) ' declara, constrói e inicializa um vetor de 10 inteiros Dim valores As Integer() = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10} ' vamos ler um valor inteiro Console.Write("Informe um valor: ") Dim pesquisa As Integer = Int32.Parse(Console.ReadLine()) ' vamos verificar quantas vezes o valor informado está ' contido no vetor Dim repeticoes As Integer = 0 For i As Integer = 0 To valores.Length - 1 If valores(i) = pesquisa Then ' encontrou? vamos contar esta ocorrência repeticoes = repeticoes + 1 End If Next ' vamos mostrar o resultado Console.WriteLine("O valor foi encontrado: " & repeticoes & " vezes") Console.WriteLine(vbCrLf & vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module |
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 cartesianoQuantidade de visualizações: 1073 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 para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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 para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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 ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres |
Exercícios Resolvidos de VB.NET - Como retornar o código ASCII associado a um caractere em VB.NET - Ler um caractere e retornar o código ASCII correspondenteQuantidade de visualizações: 509 vezes |
Pergunta/Tarefa: Escreva um programa VB.NET que pede para o usuário informar um caractere (letra ou número) e mostre o código ASCII correspondente. Sua saída deverá ser parecida com: Informe um caractere: A Você informou o caractere: A O código ASCII correspondente é: 65 Veja a resolução comentada deste exercício em VB.NET: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- Imports System Module Program ' função principal do programa VB.NET Sub Main(args As String()) ' vamos pedir para o usuário informar uma letra, símbolo ou pontuação Console.Write("Informe um caractere: ") ' vamos ler o caractere informado Dim caractere As Char = Console.ReadLine()(0) ' agora vamos obter o código ASCII correspondente Dim codigo As Integer = Asc(caractere) ' e mostramos o resultado Console.WriteLine("Você informou o caractere: " & caractere) Console.WriteLine("O código ASCII correspondente é: " & codigo) Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module O Código Padrão Americano para o Intercâmbio de Informação (do inglês American Standard Code for Information Interchange - ASCII, pronunciado [áski]) é um sistema de representação de letras, algarismos e sinais de pontuação e de controle, através de um sinal codificado em forma de código binário (cadeias de bits formada por vários 0 e 1), desenvolvido a partir de 1960, que representa um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, algarismos arábicos, sinais de pontuação e sinais matemáticos) e 33 sinais de controle, utilizando 7 bits para representar todos os seus símbolos. |
VB.NET ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como copiar todos os elementos de um vetor para outro em VB.NET usando o método CopyTo() da classe ArrayQuantidade de visualizações: 7248 vezes |
Nesta dica eu mostro como podemos usar o método CopyTo() da classe Array do VB.NET para copiar todos os elementos de um array para um outro array. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- Imports System Module Program Sub Main(args As String()) ' cria um array de inteiros Dim valores() As Integer = {1, 2, 3, 4, 5} ' exibe os valores do primeiro array For Each valor As Integer In valores Console.WriteLine(valor) Next ' cria um segundo array e copia os elementos ' do primeiro para o segundo Dim valores2() As Integer = {6, 7, 8, 9, 10, 15, 20} valores.CopyTo(valores2, 0) Console.WriteLine() ' exibe os valores do segundo array For Each valor As Integer In valores2 Console.WriteLine(valor) Next Console.WriteLine("\nPressione 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: 1 2 3 4 5 1 2 3 4 5 15 20 |
VB.NET ::: Dicas & Truques ::: Strings e Caracteres |
Como obter uma substring em uma string VB.NET usando o método Substring() da classe StringQuantidade de visualizações: 11858 vezes |
Nesta dica mostrarei como podemos usar o método Substring() da classe String do VB.NET para retornar parte de uma palavra, frase ou texto, ou seja, uma substring em uma string. Este método recebe o índice do caractere inícial da substring a ser obtida e a quantidade total de caracteres. O retorno é uma nova string. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- Imports System Module Program Sub Main(args As String()) Dim frase As String = "Gosto muito de VB.NET" ' vamos mostrar a frase original Console.WriteLine("Frase original: " & frase) ' vamos obter a substring "VB.NET" Dim substring As String = frase.Substring(15, 6) ' exibe o resultado Console.WriteLine("A substring é: " & substring) 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: Frase original: Gosto muito de VB.NET A substring é: VB.NET |
VB.NET ::: Dicas & Truques ::: Strings e Caracteres |
Como comparar strings em VB.NET usando o método Equals() da classe String do .NET FrameworkQuantidade de visualizações: 8877 vezes |
Nesta dica mostrarei como podemos comparar palavras, frases ou textos em VB.NET usando o método Equals() da classe String do .NET Framework. Este método retorna um valor True se as duas strings forem iguais e False em caso contrário. Lembre-se de que o método Equals() diferencia maiúsculas de minúsculas. Veja um exemplo completo de seu uso: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- Imports System Module Program Sub Main(args As String()) Dim palavra1, palavra2 As String palavra1 = "Visual Basic" palavra2 = "Visual Basic" If palavra1.Equals(palavra2) Then Console.WriteLine("As duas strings são iguais") Else Console.WriteLine("As duas strings são diferentes") 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: As duas strings são iguais |
VB.NET ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar a instrução Select...Case do VB.NETQuantidade de visualizações: 20785 vezes |
As instruções If...Then e If...Then...Else são muito úteis para testarmos condições em nossos códigos. Porém, há situações em que os caminhos a serem testados são tantos que se torna um pouco tedioso escrever tantos ElseIfs. Para estas situações nós temos a instrução Select...Case. Veja seu uso no trecho de código abaixo:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- Dim valor As Integer = 7 Select Case valor Case 1 To 5 Console.WriteLine("Entre 1 e 5 (inclusive)") Case 6, 7, 8 Console.WriteLine("Entre 6 e 8 (inclusive)") Case 9 To 10 Console.WriteLine("Igual a 9 ou 10") Case Else Console.WriteLine("Não encontrado no teste") End Select Os valores a serem testados em cada passo da instrução podem ser separados por vírgulas ou por faixa, usando a palavra-chave To. Neste último caso, o valor limite também é incluído no teste. O tipo de dados da variável de teste deve se enquadrar nos tipos: Boolean, Byte, Char, Date, Double, Decimal, Integer, Long, Object, SByte, Short, Single, String, UInteger, ULong e UShort. |
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.NETQuantidade de visualizações: 9986 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 para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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 para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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. |
Vamos testar seus conhecimentos em Hidrologia |
(Udesc 2011) Segundo a Agência Nacional de Energia Elétrica (ANEEL), existem no Brasil oito bacias hidrográficas. Assinale a alternativa correta em relação a essas bacias. A) As bacias do Paraná e do Uruguai formam a Bacia Platina. Essa última drena somente 5% do território nacional e seu potencial hidrelétrico instalado é pequeno e inexpressivo. B) A Bacia do Rio São Francisco é a segunda maior bacia brasileira e seu rio principal é totalmente navegável. C) A maior bacia é a do Rio Amazonas, que recebe afluentes dos dois lados e possui o maior volume de água do planeta. D) A Bacia do Rio Tocantins recebe seus dois principais afluentes: o Araguaia e o Tietê. Possui a segunda maior usina do país, mas seu potencial hidrelétrico é o menor de todas as bacias hidrográficas brasileiras. E) A Bacia do Atlântico Norte/Nordeste é a terceira maior bacia hidrográfica do Brasil. Seus rios principais são o Madeira e o Juruá. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em AutoCAD Civil 3D |
Levantamento topográfico no Civil 3D É uma ferramenta fundamental para gerenciar e organizar dados de levantamento topográfico. Ela permite que você armazene, edite e utilize informações de levantamentos topográficos e de campo de maneira eficiente. Estamos falando da ferramenta: A) Point Groups B) Aba Survey do Prospector C) Survey Point D) Survey Database Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Ética, Legislação e Entidades que regulamentam a profissão Você estudou sobre a aplicação do método de solução de problemas de engenharia para fins de análise e solução de dilemas éticos na profissão. Com base nessa ferramenta, as alternativas abaixo apresentam etapas de análise e solução de problemas éticos, exceto: A) Definição do problema e determinação dos objetivos. B) Identificação de soluções alternativas e de restrições. C) Escolha de uma solução e testes de potenciais impactos da solução. D) Negociação e aprovação da solução pelo ente envolvido, a fim de evitar atritos. E) Documentação e comunicação da solução. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Qual é a forma correta de se escrever o condicional if em JavaScript? A) if a == 10 then B) if (a == 10): C) if (a == 10) {} D) if a = 10: 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 |
Desafios, Exercícios e Algoritmos Resolvidos de VB.NET |
Veja mais Dicas e truques de VB.NET |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |