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 Apenas R$ 19,90
Java ::: Classes e Componentes ::: JTable

Java Swing - Como colorir o fundo das células de uma JTable baseado em seus valores

Quantidade de visualizações: 196 vezes
Nesta dica veremos como é possível criar uma classe personalizada que extende a classe JLabel e implementa a interface TableCellRenderer e usá-la como renderizador das células de uma JTable. Dessa forma conseguiremos aplicar uma cor diferente a cada célula dependendo do seu valor. Veja o resultado na figura abaixo:



Veja agora o código Java Swing completo para o exemplo:

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import javax.swing.table.*;
 
public class Estudos extends JFrame{
  public Estudos(){
    super("Exemplo de uma tabela simples");
         
    // colunas da tabela
    String[] colunas = {"Nome", "Idade", "Sexo"};
         
    // conteúdo da tabela   
    Object[][] conteudo = {
        {"Osmar J. Silva", "32", "Masculino"},
        {"Maria Clara Gomes", "19", "Feminino"},
        {"Fernando Gomes", "15", "Masculino"},
        {"Carlos Vieira", "40", "Masculino"}
    };
         
    // constrói a tabela
    JTable tabela = new JTable(conteudo, colunas);
     
    // quero colorir o fundo das células da segunda coluna
    // se o valor encontrado for menor que 20
    TableCellRenderer tcr = new Colorir();
    TableColumn column = 
        tabela.getColumnModel().getColumn(1);
    column.setCellRenderer(tcr);
  
    tabela.setPreferredScrollableViewportSize(new 
          Dimension(350, 50));
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
             
    JScrollPane scrollPane = new JScrollPane(tabela);
    c.add(scrollPane);
         
    setSize(400, 300);
    setVisible(true);
  }
     
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}
 
class Colorir extends JLabel implements TableCellRenderer{
  public Colorir(){
    setOpaque(true);
  }
   
  @Override
  public Component getTableCellRendererComponent(
     JTable table, 
     Object value, boolean isSelected, boolean hasFocus,
        int row, int column){
     
     if(Integer.parseInt(value.toString()) < 20){
       setBackground(Color.YELLOW); 
     }
     else{
       setBackground(table.getBackground());        
     }
      
     setText(value.toString());
         
     return this;       
  }
   
  @Override
  public void validate() {}
  
  @Override
  public void revalidate() {}
  
  @Override
  protected void firePropertyChange(String propertyName,
     Object oldValue, Object newValue) {}
  
  @Override
  public void firePropertyChange(String propertyName,
     boolean oldValue, boolean newValue) {}  
}



C# ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres

Exercícios Resolvidos de C# - Como retornar o código ASCII associado a um caractere em C# - Ler um caractere e retornar o código ASCII correspondente

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

Escreva um programa C# 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
Resposta/Solução:

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

using System;

namespace Estudos {
  class Principal {
    // função principal do programa C#
    static void Main(string[] args) {
      // vamos pedir para o usuário informar uma letra, símbolo ou pontuação
      Console.Write("Informe um caractere: ");

      // vamos ler o caractere informado
      char caractere = Console.ReadLine()[0];

      // agora vamos obter o código ASCII correspondente
      int codigo = (int)caractere;

      // e mostramos o resultado
      Console.WriteLine("Você informou o caractere: " + caractere);
      Console.WriteLine("O código ASCII correspondente é: " + codigo);
      
      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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.


Python ::: Dicas & Truques ::: Lista (List)

Como percorrer os elementos de uma lista Python usando o laço for e índices

Quantidade de visualizações: 13913 vezes
Nesta dica eu mostro como é possível usar o laço for da linguagem Python para percorrer individual os elementos de uma list. Veja o código completo para o exemplo:

# função principal do programa
def main():
  # cria uma lista de nomes
  nomes = ['Carlos', 'Ricardo', 'Osmar']
 
  # percorre a lista usando o laço for
  for i in range(len(nomes)):
    print("%d - %s" % ((i + 1), nomes[i]))
  
if __name__== "__main__":
  main()

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

1 - Carlos
2 - Ricardo
3 - Osmar


Delphi ::: Data Access Controls (Controles de Acesso a Dados) ::: TClientDataSet

Como obter a quantidade de registros em um TClientDataSet do Delphi usando a propriedade RecordCount

Quantidade de visualizações: 11460 vezes
Em algumas situações precisamos saber a quantidade de registros atualmente armazenados em um componente TClientDataSet. Para isso podemos usar a propriedade RecordCount, implementada originalmente na classe TDataSet e reimplementada na classe TClientDataSet.

Veja um trecho de código no qual usamos o evento OnClick de um botão para exibir a quantidade de registros atualmento no TClientDataSet:

procedure TForm3.Button3Click(Sender: TObject);
var
  qRegistros: Integer;
begin
  // obtém a quantidade de registros no TClientDataSet
  qRegistros := ClientDataSet1.RecordCount;

  // mostra o resultado
  ShowMessage('O ClientDataSet possui ' + IntToStr(qRegistros)
    + ' registros.');
end;

Ao executar o código e clicar no botão você verá uma mensagem parecida com:

"O ClientDataSet possui 20 registros.".

Esta dica foi escrita e testada no Delphi 2009.


C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como ordenar um array de strings em ordem alfabética em C# usando a classe StringComparer

Quantidade de visualizações: 17657 vezes
Nesta dica mostrarei como classificar um vetor de strings C# em ordem alfabética. Para isso nós vamos usar um objeto da classe StringComparer.

Veja o código completo para o exemplo:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // cria e inicializa um array de strings
      string[] cidades = {"Goiânia", "São Paulo",
        "Rio de Janeiro", "Curitiba"};

      Console.WriteLine("Ordem original:");
      for (int i = 0; i < cidades.Length; i++) {
        Console.WriteLine(cidades[i]);
      }

      // vamos criar um objeto da classe StringComparer
      StringComparer ordenar = StringComparer.CurrentCultureIgnoreCase;

      // agora classificamos o vetor em ordem alfabética
      Array.Sort(cidades, ordenar);

      Console.WriteLine();
      Console.WriteLine("Ordem alfabética:");
      for (int i = 0; i < cidades.Length; i++) {
        Console.WriteLine(cidades[i]);
      }

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

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

Ordem original:
Goiânia
São Paulo
Rio de Janeiro
Curitiba

Ordem alfabética:
Curitiba
Goiânia
Rio de Janeiro
São Paulo


HTML5 ::: HTML5 + JavaScript ::: Canvas

Como carregar uma imagem (ou foto) no objeto Canvas do HTML5

Quantidade de visualizações: 2469 vezes
O objeto Canvas do HTML5 nos permite carregar uma imagem ou foto em tempo de execução e desenhá-la em sua superfície. Para isso, comece criando um objeto Image para guardar a imagem temporariamente na memória:

var imagem = new Image();
// vamos carregar a logo do nosso site
imagem.src = "https://www.arquivodecodigos.com.br/logo.jpg";

O passo seguinte é adicionar um "ouvidor" de evento neste objeto Image para que ele nos avise quando a imagem estiver 100% carregada. Veja:

// vamos adicionar um "ouvidor" de evento no objeto Image
imagem.addEventListener('load', desenharImagem);

Pronto! Veja que agora, quando o evento load do objeto Image disparar, a função desenharImagem será chamada e a imagem será então desenhada no Canvas. Veja:

function desenharImagem(){
  // obtemos uma referência ao elemento Canvas  
  var canvas = document.getElementById("canvas1");
  // obtemos o contexto de desenho
  var contexto = canvas.getContext("2d");
  // e finalmente desenhamos a imagem
  contexto.drawImage(imagem, 0, 0);
}

E aqui está o código completo para o exemplo:

<html>
<head>
  <title>O objeto Canvas do HTML5</title>
</head>

<body>

<Canvas id="canvas1" width="500" height="350"></Canvas>

<script type="text/javascript">
  var imagem = new Image();
  // vamos carregar a logo do nosso site
  imagem.src = "https://www.arquivodecodigos.com.br/logo.jpg";

  // vamos adicionar um "ouvidor" de evento no objeto Image
  imagem.addEventListener('load', desenharImagem);

  function desenharImagem(){
    // obtemos uma referência ao elemento Canvas  
    var canvas = document.getElementById("canvas1");
    // obtemos o contexto de desenho
    var contexto = canvas.getContext("2d");
    // e finalmente desenhamos a imagem
    contexto.drawImage(imagem, 0, 0);
  }
</script>

</body>
</html>

Ao executar a página nós teremos o seguinte resultado:




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

Programação orientada a objetos em Python: Classes, objetos, métodos e variáveis de instância - Atualizado

Quantidade de visualizações: 14119 vezes
A melhor forma de entender a programação orientada a objetos (OOP) é começar com uma analogia simples. Suponha que você queira dirigir um carro e fazê-lo ir mais rápido pressionado o acelerador. O que deve acontecer antes que você seja capaz de fazer isso? Bem, antes que você possa dirigir um carro, alguém tem que projetá-lo. Um carro geralmente começa com desenhos feitos pelos engenheiros responsáveis por tal tarefa, tal qual a planta de uma casa. Tais desenhos incluem o projeto de um acelerador que possibilita ao carro ir mais rápido. O pedal do acelerador "oculta" os mecanismos complexos responsáveis por fazer o carro ir mais rápido, da mesma forma que o pedal de freio "oculta" os mecanismos que fazem o carro ir mais devagar e o volante "oculta" os mecanismos que fazem com que o carro possa virar para a direita ou esquerda. Isso permite que pessoas com pequeno ou nenhum conhecimento de motores possam facilmente dirigir um carro.

Infelizmente, não é possível dirigir o projeto de um carro. Antes que possamos dirigí-lo, o carro deve ser construído a partir do projeto que o descreve. Um carro já finalizado tem um pedal de aceleração de verdade, que faz com que o carro vá mais rápido. Ainda assim, é preciso que o motorista pressione o pedal. O carro não acelerará por conta própria.

Agora vamos usar nosso exemplo do carro para introduzir alguns conceitos de programação importantes à programação orientada a objetos. A execução de uma determinada tarefa em um programa exige um método. O método descreve os mecanismos que, na verdade, executam a tarefa. O método oculta tais mecanismos do usuário, da mesma forma que o pedal de aceleração de um carro oculta do motorista os mecanismos complexos que fazem com que um carro vá mais rápido. Em Python, começamos criando uma unidade de programa chamada classe para abrigar um método, da mesma forma que o projeto de um carro abriga o design do pedal de acelerador. Em uma classe fornecemos um ou mais métodos que são projetados para executar as tarefas da classe. Por exemplo, a classe que representa uma conta bancária poderia conter muitos métodos, incluindo um método para depositar dinheiro na conta, outro para retirar dinheiro, um terceiro para verificar o saldo, e assim por diante.

Da mesma forma que não podemos dirigir o projeto de um carro, nós não podemos "dirigir" uma classe. Da mesma forma que alguém teve que construir um carro a partir de seu projeto antes que pudessémos dirigí-lo, devemos construir um objeto de uma classe antes de conseguirmos executar as tarefas descritas nela.

Quando dirigimos um carro, o pressionamento do acelerador envia uma mensagem ao carro informando-o da tarefa a ser executada (neste caso informando-o de que queremos ir mais rápido). Da mesma forma, enviamos mensagens aos objetos de uma classe. Cada mensagem é uma chamada de método e informa ao objeto qual ou quais tarefas devem ser executadas.

Até aqui nós usamos a analogia do carro para introduzir classes, objetos e métodos. Já é hora de saber que um carro possui atributos (propriedades) tais como cor, o número de portas, a quantidade de gasolina em seu tanque, a velocidade atual, etc. Tais atributos são representados como parte do projeto do carro. Quando o estamos dirigindo, estes atributos estão sempre associados ao carro que estamos usando, e cada carro construído a partir do projeto sofrerá variações nos valores destes atributos em um determinado momento. Da mesma forma, um objeto tem atributos associados a ele quando o usamos em um programa. Estes atributos são definidos na classe a partir da qual o objeto é instanciado (criado) e são chamados de variáveis de instância da classe.

Veremos agora como definir uma classe em Python e usar um objeto desta classe em um programa. Veja o trecho de código abaixo:

# Definição da classe Cliente 
class Cliente:
  "Minha primeira classe Python"
  # define a propriedade nome
  _nome = None
 
  # um método que permite definir o nome do cliente
  def definir_nome(self, nome):
    self._nome = nome
 
  # um método que permite obter o nome do cliente
  def obter_nome(self):
    return self._nome
# Fim da definição da classe Cliente
 
def main():
  # Cria uma instância da classe Cliente
  cliente = Cliente()
 
  # Define o nome do cliente
  cliente.definir_nome("Osmar J. Silva")
 
  # Obtém o nome do cliente
  print(cliente.obter_nome())

if __name__== "__main__":
  main()

Em mais dicas dessa seção você aprenderá mais sobre a programação orientada a objeto em Python.


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

Como testar múltiplas condições usando a construção if...else if...else da linguagem C

Quantidade de visualizações: 12130 vezes
Em algumas situações precisamos usar a estrutura condicional if...else (se...senão) da linguagem C para testarmos múltiplas condições. Para estes casos, o C nos permite combinar if...else if...else várias vezes.

Veja o trecho de código a seguir:

#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[]){
  int valor = 20;
 
  if(valor == 15){
    printf("O valor a igual a 15");
  }
  else if(valor > 15){
    printf("O valor e maior que 15");
  }
  else{
    printf("O valor e menor que 15");
  }
 
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

O valor é maior que 15


Delphi ::: Dicas & Truques ::: Data e Hora

Como obter a diferença de dias entre duas datas em Delphi usando a função DaysBetween()

Quantidade de visualizações: 24200 vezes
Em algumas situações nós precisamos saber a diferença de dias entre duas datas. Para isso podemos usar a função DaysBetween(), presente na unit DateUtil. Esta função recebe dois objetos TDateTime e retorna um inteiro contendo a quantidade de dias entre as duas datas. Observe, no entanto, que a função DaysBetween() retorna apenas a quantidade de dias completos, ou seja, as horas, minutos, segundos e milisegundos são incluídos no cálculo dos dias. Se faltar apenas um segundo para completar um dia, tal dia não será incluído na contagem. Veja um exemplo de seu uso:

procedure TForm1.Button1Click(Sender: TObject);
var
  data1, data2: TDateTime;
  quant_dias: Integer;
begin
  // vamos criar as duas datas, observe que as horas
  // também foram definidas

  // primeira data: 12/01/2010 às 09:10:15
  data1 := EncodeDateTime(2010, 1, 12, 9, 10, 15, 0);

  // segunda data: 15/01/2010 às 19:10:15
  data2 := EncodeDateTime(2010, 1, 15, 19, 10, 15, 0);

  // vamos obter a quantidade de dias entre as duas datas
  quant_dias := DaysBetween(data1, data2);

  // mostra o resultado
  ShowMessage('A diferença de dias é: ' + IntToStr(quant_dias));
end;

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


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

Como adicionar novos mapeamentos chave-valor a um HashMap do Java usando o método put()

Quantidade de visualizações: 9643 vezes
Novos mapeamentos chave-valor são adicionados a um HashMap da linguagem Java usando-se o método put(). Veja sua assinatura:

public V put(K key, V value)


Note que este método recebe a chave e o valor a ser inserido e retorna um objeto do mesmo tipo daquele fornecido no segundo argumento. Este retorno é muito útil para sabermos se o novo valor não sobrepôs um valor já existente. Se o retorno for null, o novo valor foi inserido. Caso contrário o retorno será o valor existente antes da sobreposição. Apenas tenha cuidado com valores null existentes como chaves ou valores. Nestes casos o retorno do método put não ajudará em nada.

Veja um exemplo do uso do método put():

package estudos;

import java.util.*;

public class Estudos{
  public static void main(String[] args){
    
    // vamos criar uma instância de HashMap
    HashMap<Integer, String> clientes = new HashMap<Integer, String>();

    // vamos adicionar três chaves e seus valores
    clientes.put(new Integer(1), "Osmar J. Silva");
    clientes.put(new Integer(2), "Salvador Miranda de Andrade");
    clientes.put(new Integer(3), "Marcos da Costa Santos");

    // é possível também referenciar o valor adicionado
    // ao HashMap, uma vez que este é o retorno do métoto put()
    String nome = clientes.put(new Integer(2), "Carlos"); 

    if(nome == null){
      System.out.println("Novo valor inserido com sucesso");
    }
    else{
      System.out.println("Valor já existia. Houve sopreposição"); 
    }

    System.exit(0);
  }
}

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

Valor já existia. Houve sopreposição

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