Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.

Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

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

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

Escreva um método recursivo que conta quantas vezes um valor inteiro k ocorre em um vetor de 10 inteiros. Seu método deverá ter a seguinte assinatura:

public static int quantRepeticoes(int indice, int valor, int[] vetor){
  // sua implementação aqui
}
Sua aplicação 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 Java console:

package exercicio;

import java.util.Scanner;

public class Exercicio {
  public static void main(String[] args) {
    // cria um novo objeto da classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // vamos declarar um vetor de 10 inteiros
    int valores[] = new int[5];
    
    // vamos pedir ao usuário que informe os valores do vetor
    for(int i = 0; i < valores.length; i++){
      System.out.print("Informe o " + (i + 1) + " valor: ");
      // efetua a leitura do valor informado para a posição atual do vetor
      valores[i] = Integer.parseInt(entrada.nextLine());
    }
    
    // agora vamos pedir para informar o valor a ser pesquisado
    System.out.print("\nInforme o valor a ser pesquisado no vetor: ");
    int valor = Integer.parseInt(entrada.nextLine());
    
    // e vamos ver a quantidade de repetições
    int repeticoes = quantRepeticoes(0, valor, valores);
    System.out.print("O valor informado se repete " + repeticoes + " vezes.");
    
    System.out.println("\n");
  }
  
  // método recursivo que recebe um valor
  public static int quantRepeticoes(int indice, int valor, int[] vetor){
    if(indice == vetor.length - 1){ // caso base...hora de parar a recursividade
      if(vetor[indice] == valor){
        return 1; // mais um repetição foi encontrada
      }
    }
    else{ // dispara mais uma chamada recursiva
      if(vetor[indice] == valor){ // houve mais uma repetição
        return 1 + quantRepeticoes(indice + 1, valor, vetor);
      }
      else{
        return 0 + quantRepeticoes(indice + 1, valor, vetor); // não repetiu
      }
    }
    
    return 0; // só para deixar o compilador satisfeito...esta linha nunca é executada
  }
}



PHP ::: Dicas & Truques ::: Strings e Caracteres

PHP para iniciantes - Como substituir substrings sem considerar maiúsculas e minúsculas usando a função str_ireplace() do PHP

Quantidade de visualizações: 541 vezes
Nesta dica mostrarei como usar a função str_ireplace() da linguagem PHP para efetuar substituições de partes de palavras, frases e texto desconsiderando as letras maiúsculas e minúsculas. Os parâmetros fornecidos para esta função são os mesmos da função str_replace().

Veja o código completo para o exemplo:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
 
<?php
  $frase = "Jsp? Gosto de programar em JSP";
  echo "Original: " . $frase;
  $frase = str_ireplace("JSP", "PHP", $frase);
  echo "<br>Depois da substituição: " . $frase;
?>
 
</body>
</html>

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

Original: Jsp? Gosto de programar em JSP
Depois da substituição: PHP? Gosto de programar em PHP


Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Arrays e Matrix (Vetores e Matrizes)

Como gerar um vetor com valores igualmente espaçados usando a função linspace() da biblioteca NumPy do Python - Python NumPy para Engenharia

Quantidade de visualizações: 2683 vezes
Em algumas situações nós precisamos de vetores e matrizes com valores igualmente espaçados entre um determinado intervalo. Para isso nós podemos usar a função linspace() da biblioteca NumPy do Python.

Esta função exige, entre vários argumentos, o início e o fim do intervalo. Vamos ver um exemplo? Observe o trecho de código a seguir:

# vamos importar a biblioteca NumPy
import numpy as np

def main():
  valores = np.linspace(2, 5, num=10)
  print("O vetor gerado foi: ", valores)

if __name__== "__main__":
  main()

Este código Python vai gerar o seguinte resultado:

O vetor gerado foi: [2. 2.33333333 2.66666667 3. 3.33333333 3.66666667 4. 4.33333333 4.66666667 5. ]

Note que informamos o valor inicial como 2 e o valor final como 5, e definimos a quantidade de elementos gerados como 10 (se omitida, 50 valores serão gerados). Se não quisermos que o valor final do intervalo seja incluído na amostra, basta informamos endpoint=False como argumento para a função linspace().


Delphi ::: Dicas & Truques ::: Arquivos e Diretórios

Como retornar o diretório atual em Delphi usando a função GetDir()

Quantidade de visualizações: 12913 vezes
Em algumas situações precisamos obter o diretório atual, ou seja, aquele a partir do qual nosso programa está sendo executado. Em Delphi isso pode ser feito com o auxílio da procedure GetDir(). Esta procedure requer um valor inteiro na faixa de 0 a 3 e uma string passada por referência. Em geral usamos o valor 0 no primeiro argumento para representar o drive padrão. Veja o exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  diretorio_atual: string;
begin
  // vamos obter o diretório atual e atribuí-lo
  // na variável diretorio_atual
  GetDir(0, diretorio_atual);

  // vamos exibir o resultado
  ShowMessage('O drive e diretório atual são: ' +
    diretorio_atual);
end;

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

O drive e diretório atual são: C:\Users\Osmar\Documents\RAD Studio\Projects

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


C ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca)

C para iniciantes - Como ordenar os elementos de um vetor de inteiros usando a ordenação da bolha (Bubble Sort) na linguagem C

Quantidade de visualizações: 9911 vezes
O método ou algorítmo de ordenação da bolha é uma das técnicas mais simples de ordenação. No entanto, este método não é eficiente, visto que o tempo despendido para sua execução é muito elevado se comparado à outros métodos existentes. Geralmente usamos este método quando queremos ordenar 50 elementos ou menos.

O entendimento deste método é fácil. Se estivermos ordenandos os valores do menor para o maior, o método da bolha percorre os elementos do vetor (array), comparando e movendo o menor valor para a primeira posição do vetor, tal qual bolhas indo para a superfície. Veja um exemplo completo:

#include <stdio.h>
#include <stdlib.h>

void bubble_sort(int matriz[], int tam){
  int temp, i, j;

  for(i = 0; i < tam; i++){
    for(j = 0; j < tam; j++){
      if(matriz[i] < matriz[j]){
        temp = matriz[i];
        matriz[i] = matriz[j];
        matriz[j] = temp;
      }
    }
  }
}

int main(int argc, char *argv[])
{
  int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11};
  int i, tamanho = 9;

  // imprime a matriz sem a ordenação
  for(i = 0; i < 9; i++){
    printf("%d ", valores[i]);
  }

  // vamos ordenar a matriz
  bubble_sort(valores, tamanho);

  // imprime a matriz ordenada
  puts("\n");
  for(i = 0; i < 9; i++){
    printf("%d ", valores[i]);
  }

  puts("\n");
  system("pause");
  return 0;
}

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

Sem ordenação:
4, 6, 2, 8, 1, 9, 3, 0, 11

Ordenados:
0, 1, 2, 3, 4, 6, 8, 9, 11


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

Exercícios Resolvidos de Portugol - Faça um algoritmo em Portugol que leia 9 números inteiros, guarde-os em uma matriz 3x3 e mostre os números pares

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

Faça um algoritmo em Portugol que leia 9 números inteiros e guarde-os em uma matriz 3x3. Imprima a matriz no formato tabular, usando a melhor formatação que você conseguir. Em seguida, percorra a matriz novamente e imprima somente os números que são pares, todos na mesma linha e separados por espaço.

Sua saída deverá ser parecida com:

Linha 1 e coluna 1: 8
Linha 1 e coluna 2: 1
Linha 1 e coluna 3: 5
Linha 2 e coluna 1: 3
Linha 2 e coluna 2: 9
Linha 2 e coluna 3: 30
Linha 3 e coluna 1: 7
Linha 3 e coluna 2: 23
Linha 3 e coluna 3: 10

Valores na matriz

    8     1     5 
    3     9    30 
    7    23    10 

Os valores pares são: 8 30 10
Resposta/Solução:

Veja a resolução completa para o exercício em Portugol, comentada linha a linha (fiz a resolução no Portugol Webstudio):

// Um algoritmo que lê uma matriz 3x3
programa {
  funcao inicio() {
    // variáveis usadas na resolução do problema
    inteiro matriz[3][3]
    inteiro i, j

    // vamos pedir para o usuário informar os valores
    // dos elementos da matriz, uma linha de cada vez
    para (inteiro i = 0; i < 3; i++) { 
      para (inteiro j = 0; j < 3; j++) {
        escreva("Linha ", (i + 1), " e coluna ", (j + 1), ": ")
        leia(matriz[i][j])
      }
    }

    // vamos mostrar a matriz da forma que ela foi informada
    escreva("\nValores na matriz:\n\n")
    para (inteiro i = 0; i < 3; i++) {
      para (inteiro j = 0; j < 3; j++) {
        escreva(matriz[i][j], "   ")
      }
      // passa para a próxima linha da matriz
      escreva("\n")
    }

    // agora vamos percorrer a matriz novamente e mostrar
    // apenas os valores pares
    escreva("\nOs valores pares são: ")

    para (inteiro i = 0; i < 3; i++) {
      para (inteiro j = 0; j < 3; j++) {
        // é um número par?
        se (matriz[i][j] % 2 == 0) {
          escreva(matriz[i][j], "  ")
        }
      }
    }
  }
}



Python ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade)

Exercícios Resolvidos de Python - Um método recursivo que recebe um valor inteiro e o exibe na ordem inversa

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

Escreva um método recursivo que recebe um valor inteiro (com qualquer quantidade de dígitos) e o exibe na ordem inversa. Se o método receber o valor 467, o valor inverso será 764. Seu método deverá possuir a seguinte assinatura:

def exibirInverso(valor):
  # sua implementação aqui
Observe que você poderá usar, na resolução, somente os operadores aritméticos. Não é permitido o uso de métodos adicionais ou presentes em classes da linguagem Python.

Sua saída deverá ser parecida com:

Informe um valor inteiro: 932
O valor invertido é: 239
Resposta/Solução:

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

# método recursivo que recebe um valor inteiro e o exibe na ordem
# inversa
def exibirInverso(valor):
  # a parada da recursividade é o valor igual a 0
  if valor != 0:
    print(valor % 10, end ="")
    valor = valor // 10
    exibirInverso(valor) # efetua uma nova chamada recursiva

# método principal
def main():
  # solicita um valor inteiro ao usuário
  numero = int(input("Informe um valor inteiro: "))
  # exibe o valor na ordem invertida
  print("O valor invertido é: ", end =" ")
  exibirInverso(numero)
  
if __name__== "__main__":
  main()



Rust ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como somar os elementos de um array em Rust

Quantidade de visualizações: 623 vezes
Nesta dica mostrarei como podemos somar os valores de um vetor na linguagem Rust. Para isso nós vamos usar um laço for e percorrer os itens do array um de cada vez. Note também o uso da função len() para retornar o tamanho do array.

Veja o código Rust completo para o exemplo:

// esta é a função principal do programa Rust
fn main() {
  // vamos criar um array com 6 elementos
  let valores:[i32;6] = [5, 2, 3, 7, 4, 1];
  // para guardar a soma
  let mut soma:i32 = 0;
  
  // vamos mostrar o conteúdo do array
  println!("Os elementos do array são: {:?}", valores);
 
  // agora vamos somar os elementos do array
  for i in 0..valores.len() {
    soma = soma + valores[i];
  }  
  
  // e mostramos o resultado
  println!("A soma dos elementos é: {}", soma);
}

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

Os elementos do array são: [5, 2, 3, 7, 4, 1]
A soma dos elementos é: 22


C# ::: Windows Forms ::: TextBox

C# Windows Forms - Como criar uma caixa de texto TextBox do tipo senha (password)

Quantidade de visualizações: 14529 vezes
Algumas vezes precisamos fazer com que um TextBox se comporte como uma caixa de texto do tipo senha. Para isso só precisamos manipular sua propriedade PasswordChar. Esta propriedade pode ser definida em tempo de design (usando a janela de propriedades Properties) ou em tempo de execução. Veja:

private void button2_Click(object sender, EventArgs e){
  // vamos definir o caractere a ser usado como máscara para a
  // digitação dos caracteres de senha
  textBox1.PasswordChar = '*';
}

Em tempo de execução o valor da propriedade PasswordChar pode ser obtido da seguinte forma:

private void button2_Click(object sender, EventArgs e){
  // vamos definir o caractere a ser usado como máscara para a
  // digitação dos caracteres de senha
  textBox1.PasswordChar = '*';

  // vamos obter o caractere usado como máscara para a digitação
  // dos caracteres de senha
  char letra = textBox1.PasswordChar;
  MessageBox.Show("O caractere usado para a propriedade PasswordChar é: " +
    letra);
}

É possível também forçar o TextBox a usar o caractere de senha usado pelo Windows. Para isso só precisamos fornecer o valor true para a propriedade UseSystemPasswordChar. Veja:

private void button2_Click(object sender, EventArgs e){
  // queremos que o caractere usado como máscara para a digitação
  // de senhas seja o mesmo do sistema
  textBox1.UseSystemPasswordChar = true;
}



Python ::: wxPython ::: Controles Visuais Básicos do wxPython

Como definir o texto de um wx.Button do wxPython em tempo de execução usando a função SetLabel()

Quantidade de visualizações: 6719 vezes
O texto (rótulo) de um wx.Button do wxPython pode ser definido em tempo de execução com uma chamada ao método SetLabel(). Este método recebe uma string contendo o novo texto do botão.

Veja um exemplo wxPython completo:

# vamos importar a biblioteca wxPython
import wx

# a classe que representa a aplicação wxPython
class Janela(wx.Frame):
  def __init__(self):
    wx.Frame.__init__(self, None, -1, 
      "Usando wx.Button", size=(350, 200))
    
    # Cria um painel
    panel = wx.Panel(self)

    # Cria um botão e o adiciona no painel
    self.btn = wx.Button(panel, label="Clique Aqui", 
      pos=(10, 10), size=(100, 25))

    # Anexa um evento ao botão
    self.Bind(wx.EVT_BUTTON, self.OnBtnClick, self.btn)

  # Método que será chamado ao clicar o botão
  def OnBtnClick(self, event):
    # novo texto do botão
    novo_texto = "Fui clicado!"
    
    # altera o texto do botão
    self.btn.SetLabel(novo_texto)

if __name__ == "__main__":
  app = wx.App()
  janela = Janela()
  janela.Show(True)
  app.MainLoop()


Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

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


E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90


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