Lista de Exercícios Resolvidos: Java | Python | VisuAlg | Portugol | C | C# | VB.NET | C++
Você está aqui: C# ::: Dicas & Truques ::: Recursão (Recursividade)

Como somar os elementos de um vetor em C# usando uma função recursiva - Linguagem C# para iniciantes

Quantidade de visualizações: 235 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 C# 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 com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Principal {
    // função principal do programa C#
    static void Main(string[] args) {
      // vamos declarar um array de 10 elementos
      int[] valores = new int[10];
      int soma;

      // vamos pedir ao usuário para informar os valores para o vetor
      for (int i = 0; i < 10; i++) {
        Console.Write("Informe o valor do elemento " + i + ": ");
        valores[i] = Int32.Parse(Console.ReadLine());
      }

      // 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("\nA soma dos elementos é: " + soma);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }

    // função recursiva para somar todos os elementos de um array
    public static int Somar(int indice, int[] vetor) {
      // o caso base...hora de encerrar a recursividade
      if (indice == (vetor.Length - 1)) {
        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);
      }
    }
  }
}

Ao executarmos este código C# 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

Link para compartilhar na Internet ou com seus amigos:

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

Equação da Continuidade

Uma tubulação vertical de 200mm de diâmetro apresenta, em um pequeno trecho, uma seção contraída de 100mm, onde a pressão é de 1 atm. A 4 metros acima desse ponto, a pressão eleva-se para 18mca. Calcular a velocidade e a vazão no trecho de diâmetro 200mm. Considerar escoamento permanente e sem perda de energia.



A) V = 3,91m/s e Q = 0,12m3/s.

B) V = 15,64m/s e Q =0,12m3/s.

C) V = 3,91m/s e Q = 0,03m3/s.

D) V = 15,64m/s e Q = 0,49m3/s.

E) V = 2,29m/s e Q = 0,07m3/s.
Verificar Resposta Estudar Cards Todas as Questões

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

Equação da continuidade

Um cano de 2,00 cm de diâmetro se estreita para 8,00 mm. No primeiro segmento, um líquido flui com velocidade de 4,00 m/s. A velocidade do líquido no segundo segmento e a vazão de volume no cano valem, respectivamente:

A) 16,0 m/s e 1,26 x 10-3 m3/s.

B) 100 m/s e 5,03 x 10-4 m3/s.

C) 25,0 m/s e 4,00 x 10-4 m3/s.

D) 25,0 m/s e 1,26 x 10-3 m3/s.

E) 1,00 m/s e 1,26 m3/s.
Verificar Resposta Estudar Cards Todas as Questões

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

Equação de Manning

A equação de Manning é uma expressão empírica que se aplica ao fluxo uniforme em canais abertos, relacionando a velocidade do fluido, a área da seção e a inclinação do canal.

Sobre a fórmula de Manning, selecione a alternativa correta.

A) O valor do coeficiente de rugosidade n representa a perda de carga localizada, uma vez que se refere à interferência do atrito nas paredes das tubulações e canais de condução de fluidos.

B) A fórmula de Manning só apresenta resultados precisos para canais naturais, sendo os artificiais complexos, pois o coeficiente de rugosidade n varia na produção do material.

C) O valor do coeficiente de rugosidade n representa a perda de carga distribuída atribuída ao atrito e é sempre calculado em campo para que erros associados a ele sejam minimizados.

D) Em canais artificiais, o valor do coeficiente de Manning n representa a perda de carga causada apenas pelas paredes, se fazendo necessário aplicar uma correção para o fundo do canal.

E) A fórmula de Manning fornece resultados confiáveis para os canais naturais ou artificiais e o coeficiente de rugosidade n representa a perda de carga distribuída relacionada ao atrito.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em AutoCAD Civil 3D

Superfícies no AutoCAD Civil 3D

Qual dos objetos abaixo não é um tipo de dados que pode ser incluído em uma superfície do AutoCAD Civil 3D?

A) Lines (Linhas)

B) Points (Pontos)

C) Parcels (Parcelas, Lotes)

D) Blocks (Blocos)
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

Analise o seguinte código Python

letras = ['ab', 'cd']

for i in range(len(letras)):
  letras[i].upper()

print(letras) 

Qual é o resultado de sua execução?

A) ['AB', 'CD']

B) ['ab', 'cd']

C) ['Ab', 'Cd']

D) ['aB', 'cD']
Verificar Resposta Estudar Cards Todas as Questões

C# ::: Dicas & Truques ::: Strings e Caracteres

Como retornar uma substring de uma string C# usando o método Substring() da classe String - C# para iniciantes

Quantidade de visualizações: 32427 vezes
Esta dica mostra como obter parte de uma palavra, frase ou texto, ou seja, extrair uma substring a partir de uma string. Isso pode ser feito por meio da função Substring() da classe String da linguagem C#. Veja que temos que fornecer o índice do primeiro caractere (começando em 0) e a quantidade de caracteres que serão obtidos.

Veja o código completo para o exemplo:

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

using System;

namespace Estudos{
  class Program{
    static void Main(string[] args) {
      string frase = "Gosto muito de C#";
      Console.WriteLine("A frase é: " + frase);

      // obtém a substring "muito"
      string substring = frase.Substring(6, 5);

      Console.WriteLine("Substring obtida: " + substring);

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

A frase é: Gosto muito de C#
Substring obtida: muito


C# ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar a instrução continue da linguagem C#

Quantidade de visualizações: 9110 vezes
A instrução continue é usada quando queremos abandonar completamente a iteração atual de um laço e saltar imediatamente para a próxima iteração. Veja um exemplo:

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

static void Main(string[] args){
  for(int i = 0; i <= 10; i++){
    // se o valor de i não for par, vamos passar
    // para a próxima iteração
    if(i % 2 != 0)
      continue;
    
    Console.WriteLine("{0}", i);
  }

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}

Aqui nós estamos exibindo somente os números pares de 0 a 10. Note que, cada vez que o valor de i for ímpar, nós usamos a instrução continue para interromper a instrução atual e saltar para a próxima. Veja mais um exemplo, desta vez usando um laço while:

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

static void Main(string[] args){
  int valor = 0;

  while(valor <= 10){
    if((valor >= 5) && (valor <= 7)){
      valor++;
      continue;
    }
    
    Console.WriteLine("{0}", valor);
    valor++;
  }

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}

Este laço conta de 0 a 10 mas não exibe os valores 5, 6 e 7.


C# ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de C# - Peça para o usuário informar o valor do primeiro elemento e gere os valores dos demais elementos com o dobro do

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

Escreva um programa C# que cria um vetor de 5 posições de inteiros. Peça para o usuário informar o valor do primeiro elemento e gere os valores dos demais elementos com o dobro do elemento anterior.

Assim, se o usuário informar o valor 3 para o primeiro elemento, o valor do segundo elemento será 6, o valor do terceiro elemento será 12, e assim por diante.

Sua saída deverá ser parecida com:

Informe o valor do primeiro elemento: 5

Os elementos do vetor são:

5  10  20  40  80
Resposta/Solução:

Veja a resolução comentada deste exercício em C#:

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

using System;

namespace Estudos {
  class Principal {
    // função principal do programa C#
    static void Main(string[] args) {
      // vamos declarar e construir um vetor de inteiros
      // de 5 elementos
      int[] valores = new int[5];

      // agora vamos pedir para o usuário informar o
      // valor do primeiro elemento
      Console.Write("Informe o valor do primeiro elemento: ");
      valores[0] = Int32.Parse(Console.ReadLine());

      // agora vamos gerar os valores dos próximos elementos
      for (int i = 1; i < valores.Length; i++) {
        // recebe o elemento anterior multiplicado por 2
        valores[i] = valores[i - 1] * 2;
      }

      // e agora mostramos o vetor gerado
      Console.WriteLine("\nOs elementos do vetor são:\n");
      for (int i = 0; i < valores.Length; i++) {
        Console.Write(valores[i] + "  ");
      }

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}



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

Veja mais Dicas e truques de C#

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