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: 297 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:

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...")
......


Link para compartilhar na Internet ou com seus amigos:

C ::: Estruturas de Dados ::: Lista Ligada Simples

Estruturas de Dados em C - Como remover um nó no final de uma lista ligada simples em C - Listas encadeadas em C

Quantidade de visualizações: 1732 vezes
Nesta dica mostraremos como é possível excluir o nó no fim (o último nó) de uma lista encadeada simples (singly linked list) em C. Veja a função:

// função que permite remover um nó no fim
// da lista, ou seja, o último nó da lista.
// A função retorna um ponteiro para o início da lista
struct No *remover_final(struct No *inicio){
  struct No *n; // nó que será removido
  
  // nó que antecede o nó a ser removido. Isso
  // faz sentido, já que ele será o último nó
  // agora
  struct No *anterior;
  n = inicio; // aponta para o início da lista
  
  // varremos os nós da lista e paramos um nó antes do
......


Note que a função recebe um ponteiro para o início da lista e retorna também um ponteiro para o início da lista. Tenha o cuidado de verificar se a lista não está vazia antes de tentar fazer a exclusão. No exemplo eu fiz isso na função main(). Veja a listagem completa abaixo:

#include <stdio.h>
#include <stdlib.h>
 
// estrutura Nó
struct No{
  int valor;
  struct No *proximo;
};
// fim da estrutura Nó
 
// função que permite exibir os valores de
// todos os nós da lista
void exibir(struct No *n){
  if(n != NULL){
    do{
      printf("%d\n", n->valor);
      n = n->proximo;
    }while(n != NULL);
  }
  else
    printf("A lista esta vazia\n\n");
}
 
// função que permite remover um nó no fim
// da lista, ou seja, o último nó da lista.
// A função retorna um ponteiro para o início da lista
struct No *remover_final(struct No *inicio){
  struct No *n; // nó que será removido
  
  // nó que antecede o nó a ser removido. Isso
  // faz sentido, já que ele será o último nó
  // agora
  struct No *anterior;
  n = inicio; // aponta para o início da lista
  
  // varremos os nós da lista e paramos um nó antes do
  // nó a ser excluído
  while(n->proximo != NULL){
    anterior = n; // anterior assume o lugar de n
    n = n->proximo; // e n assume o seu próximo  
  }
  
  // anterior passa a ser o último nó agora
  anterior->proximo = NULL;
  
  // mostra o nó removido
  printf("\nNo removido: %d\n", n->valor);
  
  free(n); // libera o nó que antes era o último
  
  return inicio;
} 
 
// função que permite inserir nós no
// final da lista.
// veja que a função recebe o valor a ser
// armazenado em cada nó e um ponteiro para o
// início da lista. A função retorna um
// ponteiro para o início da lista
struct No *inserir_final(struct No *n, int v){
  // reserva memória para o novo nó
  struct No *novo = (struct No*)malloc(sizeof(struct No));
......


Ao executar esse código você terá o seguinte resultado:

Valores presentes na lista ligada antes da remocao:
45
3
98
47

No removido: 47

Valores presentes na lista ligada apos a remocao:
......



Delphi ::: Dicas & Truques ::: Rotinas de Conversão

Como converter uma string em um valor numérico inteiro em Delphi usando as funções StrToInt(), TryStrToInt() e StrToIntDef()

Quantidade de visualizações: 32926 vezes
Em algumas situações precisamos converter strings em valores numéricos do tipo inteiro. Isso acontece quando recebemos valores de caixas de texto e precisamos usuá-los em cálculos.

Vamos começar com a função StrToInt() da unit SysUtils. Esta função recebe uma string representando um valor inteiro válido e retorna um valor inteiro. Veja o exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  valor1, valor2, soma: Integer;
begin
  // vamos receber as strings dos TEdits e converter
  // seus valores para inteiros
  valor1 := StrToInt(Edit1.Text);
  valor2 := StrToInt(Edit2.Text);
......


Note que, se a string sendo convertida possuir um valor inteiro inválido, uma exceção do tipo EConvertError será lançada. Podemos evitar isso usando a função TryStrToInt(). Esta função recebe dois argumentos: a string a ser convertida e a variável do tipo Integer que receberá o valor. O resultado será true se a conversão for feita com sucesso e false em caso contrário. Veja:

procedure TForm1.Button1Click(Sender: TObject);
var
  valor: Integer;
begin
  // vamos tentar converter o valor da caixa de texto
  // em um inteiro
......


Há ainda uma terceira possibilidade: usar a função StrToIntDef(). Esta função funciona exatamente da mesma forma que StrToInt(), exceto que agora, se houver um erro de conversão, um valor inteiro padrão será retornado. Veja:

procedure TForm1.Button1Click(Sender: TObject);
var
  valor: Integer;
begin
  // vamos converter o valor da caixa de texto
  // em um inteiro. Se a conversão não puder ser feita
......


Caso você precise trabalhar com inteiros de 64 bits, poderá usar as funções StrToInt64(), StrToInt64Def() e TryStrToInt64().

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Java ::: Dicas & Truques ::: Entrada e Saída em Arquivos (File Input/Output - IO)

Como ler o conteúdo de um arquivo uma linha de cada vez usando o método readLine() da classe RandomAccessFile da linguagem Java

Quantidade de visualizações: 13032 vezes
Uma das operações mais frequentes em um programa é a leitura do conteúdo de arquivos. A classe RandomAccessFile nos fornece o método readLine() que é muito útil quando precisamos ler as linhas de conteúdo em um arquivo.

O método readLine() lê bytes consecutivos do arquivo, começando na posição atual do ponteiro de arquivos até alcançar um caractere marcador de final de linha ou o fim do arquivo. Cada byte é convertido em um caractere tomando-se o valor do byte para os oito bits de menor ordem do caractere e definindo os oito bits de ordem alta do caractere como zero. Desta forma, este método não suporta Unicode completamente. Uma linha de texto é finalizada por um caractere de retorno de carro ("\r"), um caractere de nova linha ("\n"), um caractere de retorno de carro seguido por um caractere de nova linha, ou o final do arquivo. Caracteres de final de linha não são incluídos na string retornada pelo método.

É importante observar que, a cada chamada ao método readLine(), o ponteiro de arquivo é avançado e posicionado para a leitura subsequente. Veja o exemplo:

import java.io.*;

public class Estudos{
  public static void main(String[] args){
    // uma instância de RandomAccessFile para leitura e escrita
    try{
      RandomAccessFile arquivo = 
        new RandomAccessFile("C:\\java\\conteudo.txt", "rw");

      // vamos ler o conteúdo do arquivo uma linha de cada vez
      String linha;
      
      while((linha = arquivo.readLine()) != null){
......


Ao executar este exemplo nós teremos o seguinte resultado:

Posição do ponteiro: 27
Primeira linha do arquivo
Posição do ponteiro: 53
Segunda linha do arquivo
Posição do ponteiro: 78
Terceira linha do arquivo


Java ::: Coleções (Collections) ::: Vector

Java Collections - Como remover um determinado elemento de um Vector baseado em seu valor

Quantidade de visualizações: 11544 vezes
Muitas vezes precisamos excluir um determinado elemento de um Vector baseado em seu valor. Isso pode ser feito com o método remove(). Veja sua assinatura:

public boolean remove(Object o)
Veja que só precisamos fornecer o valor do elemento a ser removido. O retorno será um valor boolean mostrando o resultado da operação. Eis um trecho de código exemplificando isso:

import java.util.*;

public class Estudos{ 
  public static void main(String args[]){ 
    // Cria o Vector
    Vector<String> nomes = new Vector<String>();

    // adiciona itens ao Vector
    nomes.addElement("Osmar");
    nomes.addElement("Marcos");
    nomes.addElement("Ingrid");

    // vamos exibir os elementos
    for(String nome : nomes)
      System.out.println(nome);

    // vamos excluir o elemento "Ingrid"
......


Ao executar este exemplo nós teremos o seguinte resultado:

Osmar
Marcos
Ingrid

O elemento foi removido com sucesso.

Osmar
Marcos


VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercícios Resolvidos de VisuAlg - Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equilátero

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

Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra:

A < (B + C), B < (A + C) e C < (A + B).

Escreva um programa VisuAlg que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais).

Sua saída deverá ser parecida com:

Informe o primeiro lado do triângulo: 30
Informe o segundo lado do triângulo: 40
Informe o terceiro lado do triângulo: 60
O triângulo é escaleno
Resposta/Solução:

Veja a resolução comentada deste exercício usando VisuAlg:

algoritmo "Testar o tipo de um triângulo em VisuAlg"

var
  // variáveis usadas na resolução do problema
  lado_a, lado_b, lado_c: inteiro

inicio
  // vamos ler o primeiro lado do triângulo
  escreva("Informe o primeiro lado do triângulo: ")
  leia(lado_a)

  // vamos ler o segundo lado do triângulo
  escreva("Informe o segundo lado do triângulo: ")
  leia(lado_b)

  // vamos ler o terceiro lado do triângulo
  escreva("Informe o terceiro lado do triângulo: ")
  leia(lado_c)

  // os lados informados formam um triângulo?
  se ((lado_a < (lado_b + lado_c)) e (lado_b < (lado_a + lado_c)) e 
......



Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de VisuAlg

Veja mais Dicas e truques de VisuAlg

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.