Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Ler um número inteiro na faixa 0-999 e mostrar a soma de seus dígitos

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

Escreva um programa Java que leia um inteiro na faixa 0-999 e mostre a soma de seus dígitos. Por exemplo, se o valor for 523, a soma de seus dígitos será 5 + 2 + 3 = 10. Seu programa deverá exibir a seguinte saída:

Informe um valor inteiro (0-999): 523
A soma dos dígitos é: 10
Resposta/Solução:

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

public static void main(String[] args){
  // não se esqueça de adicionar um import para a classe Scanner
  // import java.util.Scanner;

  // vamos criar um objeto da classe Scanner
  Scanner entrada = new Scanner(System.in);

  // vamos solicitar ao usuário que informe um valor inteiro
  // na faixa 0 a 999 (incluindo)
  System.out.print("Informe um valor inteiro (0-999): ");

  // vamos ler o valor informado
  int valor = Integer.parseInt(entrada.next());

  // vamos verificar se o valor está na faixa permitida
  if(valor < 0 || valor > 999){
    System.out.println("Valor fora da faixa permitida");
    System.exit(0);
  }

  // vamos obter o terceiro dígito
  int terceiro = valor % 10;
  // obtém os digitos restantes
  valor = valor / 10;

  // vamos obter o segundo dígito
  int segundo = valor % 10;
  // obtém os digitos restantes
  valor = valor / 10;

  // vamos obter o primeiro dígito
  int primeiro = valor % 10;
  // obtém os digitos restantes
  valor = valor / 10;

  // vamos obter a soma dos dígitos
  int soma = terceiro + segundo + primeiro;

  // vamos mostrar o resultado
  System.out.println("A soma dos dígitos é: " + soma);
}



PHP ::: Dicas & Truques ::: Variáveis e Constantes

Como verificar se uma variável PHP é do tipo object usando a função is_object()

Quantidade de visualizações: 9299 vezes
Em algumas situações podemos querer saber se o tipo de uma determinada variável é object. Este teste pode ser feito com o auxílio da função is_object() da linguagem PHP. Esta função retorna um valor true se a variável for do tipo object e false em caso contrário.

Veja o código completo para o exemplo:

<html>
<head>
  <title>Estudos PHP</title>
</head>
 
<body>

<?php
  class Pessoa{
    public $nome = '';
 
    function nome($novo_nome = NULL){
      if(!is_null($novo_nome)){
        $this->nome = $novo_nome;
      }
     
      return $this->nome;
    }
  }
   
  $pessoa = new Pessoa;
 
  if(is_object($pessoa)){
    echo 'A variável $pessoa é do tipo object.';
  }
?>
 
</body>
</html>

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

A variável $pessoa é do tipo object.


Python ::: Dicas & Truques ::: Strings e Caracteres

Como contar as ocorrências de uma substring em uma string Python usando a função count()

Quantidade de visualizações: 10099 vezes
Em várias ocasiões nós precisamos obter a quantidade de vezes que parte de uma palavra é encontrada em outra palavra, frase ou texto, ou seja, uma substring dentro de uma string. Para isso nós podemos usar o método count() da linguagem Python. Veja sua assinatura:

count(substring[, início[, fim]])
Se o início for definindo, a busca inicia a partir do índice informado (começando em 0). Se o argumento fim for informado, então a busca começa em ínicio e termina no índice fim.

Veja um código Python completo para este exemplo:

# função principal do programa
def main():
  frase = "Gosto de Python porque Python é muito bom"
 
  # conta as ocorrências de "Python"
  print("\"Python\" ocorreu", frase.count("Python"), "vezes.")
  
if __name__== "__main__":
  main()

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

"Python" ocorreu 2 vezes.


Ruby ::: Dicas & Truques ::: Programação Orientada a Objetos

Como usar construtores em Ruby - Programação Orientada a Objetos em Ruby

Quantidade de visualizações: 10392 vezes
Os métodos construtores são recursos muito importantes na construção de objetos de um classe, uma vez que estes permitem inicializar as variáveis de instância do objeto sendo construído.

Dessa forma, na programação orientada a objetos, o método construtor tem por finalidade instanciar um novo objeto e já fornecer (ou não) os valores iniciais para as suas variáveis de instância.

Em Ruby, o construtor de uma classe é definido com o uso da palavra-chave initialize. Veja um exemplo:

# Definição da classe Cliente
class Cliente
  # construtor da classe
  def initialize(nome, idade)
    @nome = nome
    @idade = idade
  end
    
  # método que permite retornar o nome do cliente
  def obter_nome
    @nome
  end
    
  # método que permite retornar a idade do cliente	
  def obter_idade
    @idade
  end
end

# Cria uma instância da classe Cliente e inicializa as
# variáveis de instância @nome e @idade
cliente = Cliente.new("Osmar J. Silva", 35)

# Efetua uma chamada ao método obter_nome
puts "O nome do cliente é: " + cliente.obter_nome

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

O nome do cliente é: Osmar J. Silva


PHP ::: Fundamentos da Linguagem ::: Estruturas de Controle

Apostila PHP para iniciantes - Como testar múltiplas condições usando a construção if...elseif...else da linguagem PHP

Quantidade de visualizações: 9617 vezes
A construção if...else (se...do contrário) pode ser extendida com o uso de elseif para testar múltiplas condições. Desta forma, você pode ter quantos blocos elseif (ou então se) você desejar. Veja o trecho de código a seguir:

<?php
  $valor = 20;
  
  if($valor == 15){
    echo "O valor é igual à 15";
  }
  elseif($valor > 15){
    echo "O valor é maior que 15";
  }
  else{
    echo "O valor é menor que 15";
  }
?>

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

O valor é maior que 15


Python ::: wxPython ::: Eventos e Tratadores de Eventos

Como tratar o evento wx.EVT_MOVE em suas aplicações wxPython - Interfaces gráficas no Python

Quantidade de visualizações: 106 vezes
Em algumas situações nós precisamos reagir ao evento wx.EVT_MOVE em nossas aplicações wxPython. Este evento é gerado todas as vezes que movemos uma janela para uma nova posição.

Veja o código completo para uma aplicação wxPython na qual interceptamos e tratamos o evento wx.EVT_MOVE na janela principal do programa. Note o uso da função e.GetPosition() para recuperarmos as coordenadas x e y do evento e mostrarmos o resultado em controles wx.StaticText.

# vamos importar o framework wxPython 
import wx

# classe que representará a janela principal da
# aplicação wxPython
class JanelaPrincipal(wx.Frame):
  # o método construtor
  def __init__(self, *args, **kw):
    # chama o construtor da classe wx.Frame
    super(JanelaPrincipal, self).__init__(*args, **kw)

    # chama a função que inicializa a GUI
    self.InicializarGUI()

  # método usado para gerenciar o evento Move
  def OnMove(self, e):
    # obtemos a posição do evento e guardamos nas variáveis x e y
    x, y = e.GetPosition()
    # mostramos os valores nas labels
    self.st1.SetLabel(str(x))
    self.st2.SetLabel(str(y))

  # função que inicializa a GUI do programa
  def InicializarGUI(self):
    # criamos dois controles StaticText com os labels já definindos 
    wx.StaticText(self, label='x:', pos=(10,10))
    wx.StaticText(self, label='y:', pos=(10,30))

    # criamos mais dois controles StaticText para escrevermos neles
    self.st1 = wx.StaticText(self, label='', pos=(30, 10))
    self.st2 = wx.StaticText(self, label='', pos=(30, 30))

    # fazemos um binding o evento wx.EVT_MOVE para a
    # função OnMove que criamos
    self.Bind(wx.EVT_MOVE, self.OnMove)

    # definimos o tamanho da janela
    self.SetSize((450, 350))
    # define a cor de fundo da janela (Windows 10)
    self.SetBackgroundColour((150, 250, 100, 255))
    # definimos o título da janela
    self.SetTitle('O evento Move')
    # e centralizamos a janela
    self.Centre()

# função principal do programa Python
def main():
  # vamos criar a aplicação wxPython
  app = wx.App()
  janela_principal = JanelaPrincipal(None)
  janela_principal.Show()
  app.MainLoop()

if __name__ == "__main__":
  main()



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: 5415 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):

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

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

// função principal do programa
int main(int argc, char *argv[]){
  // vamos declarar um array de 10 elementos
  int valores[10];
  int i, soma;

  // vamos pedir ao usuário para informar os valores para o vetor
  for(i = 0; i < 10; i++){
    printf("Informe o valor do elemento %d: ", i);
    scanf("%d", &valores[i]); 
  }

  // 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, 10, valores);
  printf("\nA soma dos elementos è: %d", soma);
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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


PHP ::: Dicas & Truques ::: Formulários

Como obter o valor do radio button selecionado no formulário HTML usando PHP

Quantidade de visualizações: 50767 vezes
Controles do tipo radio button são úteis quando o usuário deverá marcar apenas UMA entre as várias opções fornecidas. Veja um exemplo abaixo:

<form name="cadastro" method="post" action="testes.php">
  <b></b>Qual sua linguagem favorita?</b><br>
  <input name="linguagem" type="radio" 
    value="Java" checked>Java<br>
  <input type="radio" name="linguagem" 
    value="Delphi">Delphi<br>
  <input type="radio" name="linguagem" 
    value="C++">C++<br>
  <input type="radio" name="linguagem" 
    value="Python">Python<br>
  <input type="submit" value="Enviar!">
</form>

Lembre-se de que um grupo de radio button relacionados deverá ter o mesmo valor para a propriedade name.

Para obter o valor do radio button selecionado, podemos usar o seguinte código PHP:

<?php
  // Obtém o radio button selecionado
  $opcao = $_POST["linguagem"];
  
  // Exibe o resultado
  echo "Sua linguagem favorita é: " . $opcao;
?>



C# ::: Threads ::: Thread

Como usar a classe Thread para criar threads em seus programas C#

Quantidade de visualizações: 11884 vezes
A classe Thread permite criar e controlar uma thread, além de definir sua prioridade e obter seu status. Veja a posição desta classe na hierarquia de classes da plataforma .NET:

System.Object
  System.Runtime.ConstrainedExecution.CriticalFinalizerObject
    System.Threading.Thread


Um processo pode criar uma ou mais threads para executar parte do código do programa associado a tal processo. Usamos um delegate ThreadStart ou um delegate ParameterizedThreadStart para especificar o código do programa que será executado pela thread. O delegate ParameterizedThreadStart nos permite passar dados para as funções a serem executadas pela thread.

Durante seu ciclo de vida, uma thread está sempre em um ou mais dos estados definidos pela enumeração ThreadState. Um nível de prioridade de agendamento, como definido na enumeração ThreadPriority, pode ser requisitado para a thread, mas, este comportamento nem sempre é garantido pelo sistema operacional.

O método GetHashCode() fornece identificação para threads gerenciadas. Durante o ciclo de vida de uma thread, seu código de identificação não colidirá com os códigos das demais threads, independente do domínio da aplicação a partir do qual obtemos tal valor.

Veja um trecho de código no qual criamos uma thread e a agendamos para execução paralela com a thread principal da aplicação. Note como os valores dos dois laços são exibidos de forma compartilhada pelas duas threads, ou seja, um thread exibe alguns valores e pára, para permitir que a outra faça parte do seu trabalho:

class Program{
  static void Main(string[] args){
    // using using System.Threading;

    // vamos criar uma nova instância da clase Thread
    // e fornecer o método que será executado
    Thread thread = new Thread(contar);
     
    // vamos agendar a thread para futura execução
    thread.Start();

    // agora vamos contar na thread principal
    for (int i = 0; i <= 20; i++){
      Console.Write("#" + Thread.CurrentThread.GetHashCode() 
        + ": " + i + ", ");
    }

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

  // método que será chamado pela thread
  static void contar(){
    for (int i = 0; i <= 20; i++){
      Console.Write("#" + Thread.CurrentThread.GetHashCode() 
        + ": " + i + ", ");
    }
  }
}

Aqui eu usei a sintáxe de criação de objetos da classe Thread que cria uma instância de ThreadStart nos bastidores, ou seja, forneci apenas o método a ser executado pela nova thread. Note também que uma chamada ao método Start() da thread não faz com que a thread seja executada imediatamente. Este método apenas torna a thread elegível para execução, ou seja, no estado "pronta" (Running). É o sistema operacional que determina quando a mesma será executada.


Java ::: Dicas & Truques ::: Strings e Caracteres

Como quebrar (separar) uma string em palavras usando um objeto da classe StringTokenizer do Java

Quantidade de visualizações: 58 vezes
Nesta dica mostrarei como é possível usar um objeto da classe StringTokenizer da linguagem Java para quebrar uma frase em palavras, ou seja, separar as palavras de uma frase e acessá-las individualmente.

Note como usei o método hasMoreTokens() dentro de um laço while para verificar se ainda há partes da string a ser acessada. Caso o retorno seja verdadeiro, uma chamada à nextToken() nos retorna a palavra atual, a qual exibimos na tela.

Veja o código completo para o exemplo:

package arquivodecodigos;

import java.util.*;
 
public class Estudos{
  public static void main(String args[]){
    String frase = "Gosto de programar em Java";
    System.out.println("A frase é: " + frase);
    StringTokenizer parser = new StringTokenizer(frase);
    
    System.out.println("\nSuas partes individuais:");
    while(parser.hasMoreTokens()){
      System.out.println(parser.nextToken());
    }    
  }
}

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

A frase é: Gosto de programar em Java

Suas partes individuais:
Gosto
de
programar
em
Java

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



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