Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.
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
C# ::: Windows Forms ::: ListBox

Como retornar a quantidade de itens em uma ListBox do C# Windows Forms usando a propriedade Count

Quantidade de visualizações: 10721 vezes
Em algumas situações nós precisamos obter a quantidade de itens presentes em um controle ListBox do C# Windows Forms. Para isso nós podemos usar a propriedade Count da coleção Items da ListBox.

Veja um exemplo de seu uso:

private void button1_Click(object sender, EventArgs e) {
  MessageBox.Show("A ListBox contém " +
    listBox1.Items.Count + " itens");
}

Ao executar este código C# nós teremos uma mensagem com o texto:

A ListBox contém 3 itens.


Java ::: Projetos Java Completos - Códigos Fonte Completos Java ::: Projetos Java Programação Orientada a Objetos - Exemplos Java

Simulação de Sistema Bancário usando Programação Orientada a Objetos em Java - Projeto completo com código fonte - Versão console

Quantidade de visualizações: 17821 vezes
Sobre este projeto Java

Durante estes anos que tenho trabalhado como freelancer, mais da metade das requisições dos meus clientes foram ajuda para desenvolver idéias de programação orientada a objetos em Java para projeto de faculdades e universidades.

Com isso percebi que boa parte dos alunos e iniciantes em programação orientada a objetos já entendem toda a teoria. O que lhes falta é prática, ou seja, aplicar estes conhecimentos em aplicações do mundo real.

Pensando nisso, apresento a você um projeto muito interessante e que, se bem entendido e praticado, o ajudará a desenvolver qualquer tipo de aplicação, seja comercial ou para solucionar problemas cotidianos.

O projeto Java apresentado nesta dica é uma simulação completa de um Sistema Bancário, tudo com código fonte em Java, comentado, com variáveis em português, em um nível médio de programação, para facilitar o entendimento de todos.

Nesta simulação nós temos a criação de classes Java, construtores, encapsulamento de dados, agregação e composição, métodos com retorno e sem retorno, variáveis estáticas, variáveis públicas e privadas, e relacionamento entre objetos (um para um, um para muitos, muitos para um) usando ArrayList. Sim, o projeto faz uso extensivo de ArrayList, o que o torna muito rico para o aprendizado e fixação dos conhecimentos da linguagem Java e suas classes principais.

O Diagrama de Classes Java

Antes de falarmos mais sobre o projeto, dê uma boa olhada no seu diagrama de classes:



Como a aplicação está estruturada?

Como podemos ver no diagrama de classes, nós temos uma classe Sistema que contém zero ou vários objetos da classe Banco (relacionamento um para muitos). A classe Banco, por sua vez, possui uma ArrayList de objetos da classe Agência, ou seja, mais um relacionamento um para muitos, já que cada agência pertence a um único banco.

Cada agência pode possuir zero ou mais contas, e cada conta possui um ArrayList de objetos da classe Transação, o que nos permite registrar todas as operações nas contas e emitir o extrato bancário, com os débitos, créditos e transferências entre contas.

Tudo isso é feito por meio de vários menus de opções, como podemos ver na imagem a seguir:



Devo usar ArrayList do Java para desenvolver o sistema?

Sim, objetos da classe ArrayList são perfeitos quando precisamos representar relacionamentos um para muitos e muitos para um. É claro que poderíamos usar vetores de objetos (usando array), mas ficaríamos restritos a tamanhos fixos, enquanto o ArrayList nos permite cadastrar quantos bancos, pessoas, agências e contas quisermos.

Dessa forma, veja, por exemplo, o trecho de código que cria um novo banco:

switch(opcao){
  case 1: // vamos cadastrar um novo banco
    System.out.print("\nNúmero do Banco: ");
    String numeroBanco = entrada.nextLine();
    System.out.print("Nome do Banco: ");
    String nomeBanco = entrada.nextLine();
        
    // vamos incrementar o contador de bancos
    Banco.contadorBancos++;
        
    // agora vamos criar um novo objeto da classe Banco
    Banco b = new Banco(Banco.contadorBancos, nomeBanco,
      numeroBanco);
    // e o adicionamos no ArrayList de bancos
    bancos.add(b);
        
    // e finalmente mostramos uma mensagem de sucesso.
    System.out.println("\nO banco criado com sucesso");
        
    break;


Note que este trecho de código é parte do case da opção Novo Banco do menu Gerenciar Bancos. Veja como usamos uma variável estática contadorBancos da classe Banco para criarmos um valor inteiro auto-incremento que nos permite identificadores únicos para cada banco.

Veja agora mais um trecho de código muito interessante. Trata-se

case 3: // vamos pesquisar uma conta
  System.out.print("\nId, número ou nome cliente da conta: ");
  pesquisaConta = entrada.nextLine();
  // chamamos o método que pesquisa a conta
  temp = pesquisarConta(agenciaAtual, pesquisaConta);
  if(temp == null){ // conta não encotrada
    System.out.println("\nConta não encontrada na agência.");  
  }
  else{
    // mostra a conta encontrada
    System.out.println("\nId da conta bancária: " +
      temp.getId());
    System.out.println("Número da conta: " +
      temp.getNumero());
    System.out.println("Cliente: " + 
      temp.getCliente().getNome());
    System.out.println("Agência: " + agenciaAtual.getNumero() +
      " - " + agenciaAtual.getCidade());
    System.out.println("Banco: " + 
      bancoAtual.getNumero() + " - " + bancoAtual.getNome());
    System.out.println("Saldo atual: " + temp.getSaldo());
    System.out.println("Limite atual: " + temp.getLimite());
  }
        
  break;


Viu que código mais lindo? Note como a Programação Orientada a Objetos em Java nos permite desenvolver idéias de forma bem parecida mesmo ao mundo real.

O fechamento com chave de ouro

O produto final da aplicação Java deverá ser um extrato bancário mostrando os dados da conta escolhida, o histórico de transações com data, tipo da transação e valor, e o saldo atual da conta, com ou sem limite. Veja na imagem abaixo a formatação apresentada (mesmo em modo texto):



Como posso obter este código fonte?

Os links para você baixar todas as versões deste projeto estão abaixo:

1) SBJCNB-A - Sistema Bancário em Java com Código Fonte Versão Console - NetBeans IDE - Faça o Download.

2) SBJCNB-B - Sistema Bancário em Java com Código Fonte Versão Console - Lê e salva os dados em arquivo usando serialização (Serializable), ou seja, os métodos readObject() e writeObject() - NetBeans IDE - Faça o Download.

Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto Java do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes.


Delphi ::: Dicas & Truques ::: Matemática e Estatística

Como gerar um número aleatório de 0 a 10 em Delphi usando a função Random()

Quantidade de visualizações: 29307 vezes
Em algumas situações precisamos gerar números randômicos. Em Delphi isso pode ser feito com o auxílio da função Random(). Esta função aceita um valor inteiro e retorna um número aleatório maior ou igual a 0 e menor que o valor fornecido. Assim, se quisermos obter um número randômico na faixa de 0 a 10, só precisamos fornecer o valor 11 para a função Random(). Note ainda a chamada à função Randomize(), usada para iniciar o gerador de números randômicos.

Veja um exemplo no qual geramos um número aleatório na faixa de 0 a 10:

procedure TForm1.Button1Click(Sender: TObject);
var
  numero: integer;
begin
  // vamos iniciar o gerador de números randômicos
  Randomize;

  // vamos gerar um número aleatório entre 0 e 10
  numero := Random(11);

  // exibe o resultado
  ShowMessage('Número gerado: ' + IntToStr(numero));
end;

Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009.


Java ::: Classes e Componentes ::: JTable

Apostila Java Swing - Como alterar o valor de uma célula da JTable em tempo de execução

Quantidade de visualizações: 460 vezes
Em algumas situações nós precisamos alterar ou definir o valor de uma determinada célula de uma tabela JTable em tempo de execução, ou seja, enquanto o programa Java Swing estiver sendo executado.

Para isso nós podemos usar o método setValueAt() da classe JTable. Tudo que precisamos fazer é fornecer o novo valor para a célula, assim como os índice da linha e da coluna na qual ela está localizada.

Veja o código Java completo:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
public class Estudos extends JFrame{
  public Estudos(){
    super("Exemplo de uma tabela simples");
         
    // colunas da tabela
    String[] colunas = {"Cidade", 
           "Estado", "Habitantes"};
         
    // conteúdo da tabela
         
    Object[][] conteudo = {
        {"Goiânia", "GO", "43.023.432"},
        {"São Paulo", "SP", "5.343.234"},
        {"Rio de Janeiro", "RJ", "6.434.212"},
        {"Jussara", "GO", "87.454"},
        {"Barra do Garças", "MT", "64.344"}
    };
         
    // constrói a tabela
    final JTable tabela = new JTable(conteudo, colunas);
    tabela.setPreferredScrollableViewportSize(new 
        Dimension(350, 50));
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout());
         
    JButton btn = new JButton("Alterar valor 
            da 2ª célula - 1ª linha");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          tabela.setValueAt("Teste", 0, 1);
        }
      }
    );
         
    JScrollPane scrollPane = new JScrollPane(tabela);
        c.add(scrollPane);
    c.add(btn);
         
    setSize(400, 300);
    setVisible(true);
  }
     
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



Python ::: Dicas & Truques ::: Aplicativos e Outros

Como calcular a distância entre dois pontos na terra em Python

Quantidade de visualizações: 1409 vezes
Nesta dica mostrarei como calcular a distância em quilômetros entre dois pontos na terra dadas suas latitudes e longitudes. Neste exemplo eu coloquei o valor de 6378.137 para o raio da terra, mas você pode definir para o valor que achar mais adequado.

O cálculo usado neste código se baseia na Fórmula de Haversine, que determina a distância do grande círculo entre dois pontos em uma esfera, dadas suas longitudes e latitudes.

Veja o código Python completo:

# vamos importar o módulo Math
import math

# função que recebe dois pontos na terra e retorna a distância
# entre eles em quilômetros
def calcularDistancia(lat1, lat2, lon1, lon2):
  raio_terra = 6378.137 # raio da terra em quilômetros
    
  # o primeiro passo é converter as latitudes e longitudes
  # para radianos
  lon1 = math.radians(lon1)
  lon2 = math.radians(lon2)
  lat1 = math.radians(lat1)
  lat2 = math.radians(lat2)
 
  # agora aplicamos a Fórmula de Haversine
  dlon = lon2 - lon1
  dlat = lat2 - lat1
  a = math.pow(math.sin(dlat / 2), 2) + math.cos(lat1) * math.cos(lat2) \
    * math.pow(math.sin(dlon / 2),2)
             
  c = 2 * math.asin(math.sqrt(a))
 
  # e retornamos a distância    
  return(c * raio_terra)

# método principal
def main():
  # vamos solicitar a latitude e longitude das duas localizações
  lat1 = float(input("Informe a primeira latitude: "))
  lon1 = float(input("Informe a primeira longitude: "))
  lat2 = float(input("Informe a segunda latitude: "))
  lon2 = float(input("Informe a segunda longitude: "))

  # vamos calcular a distância entre os dois pontos em Kms
  distancia = calcularDistancia(lat1, lat2, lon1, lon2)
    
  # mostramos o resultado
  print("A distância entre os dois pontos é: {0} kms".format(distancia))

if __name__== "__main__":
  main()

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

Informe a primeira latitude: -16.674551
Informe a primeira longitude: -49.303598
Informe a segunda latitude: -15.579321
Informe a segunda longitude: -56.10009
A distância entre os dois pontos é: 736.9183827638687kms

Neste exemplo eu calculei a distância entre as cidades de Goiânia-GO e Cuibá-MT.

A latitude é a distância ao Equador medida ao longo do meridiano de Greenwich. Esta distância mede-se em graus, podendo variar entre 0o e 90o para Norte(N) ou para Sul(S). A longitude é a distância ao meridiano de Greenwich medida ao longo do Equador.


VisuAlg ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres

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

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

Escreva um programa VisuAlg 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 VisuAlg:

algoritmo "Como retornar código ASCII em VisuAlg"
var
  // variáveis usadas na resolução do problema
  ch: caractere
  codigo: inteiro

inicio
  // vamos pedir para o usuário informar uma letra, símbolo ou pontuação
  escreva("Informe um caractere: ")
  leia(ch)

  // agora vamos obter o código ASCII correspondente
  codigo <- Asc(ch)

  // e mostramos o resultado
  escreval("Você informou o caractere: ", ch)
  escreval("O código ASCII correspondente é: ", codigo)

fimalgoritmo

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.


JavaScript ::: Dicas & Truques ::: Formatação de datas, strings e números

Como exibir apenas dois dígitos após o ponto decimal em JavaScript usando a função toFixed() do objeto Number

Quantidade de visualizações: 12768 vezes
Nesta dica mostrarei como podemos usar a função toFixed() do objeto Number da linguagem JavaScript para convertermos um valor de ponto flutuante em uma string (em texto). Durante a conversão nós vamos especificar que queremos apenas dois dígitos depois do ponto decimal.

Veja o código JavaScript completo para o exemplo:

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; 
  charset=iso-8859-1" />
<title>Estudos JavaScript</title>
</head>
<body>
  
<script type="text/javascript">
  // vamos obter o valor de 
  // PI 3.141592653589793
  var valor = Math.PI;
  document.write("PI: " + valor);
  
  // agora vamos converter o valor de PI para
  // string e arredondar para o número de
  // decimais desejados
  var res = valor.toFixed(2);
  document.write("<br>Resultado: " + res);
</script>
   
</body>
</html>

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

PI: 3.141592653589793
Resultado: 3.14


C# ::: Coleções (Collections) ::: List<T>

Como pesquisar um elemento em uma lista do C# usando a função Find() e um Predicate

Quantidade de visualizações: 15141 vezes
Em algumas situações gostaríamos de pesquisar e retornar o primeiro elemento de uma List<T> que obedece a algum critério de busca. Assim, poderíamos, por exemplo, pesquisar um nome que começa com uma determinada palavra ou um preço de produto maior ou igual a um determinado valor.

Para tais situações podemos usar o método Find(). Este método possui a seguinte assinatura:

public T Find(
  Predicate<T> match
)

Veja que o método pede um delegate do tipo Predicate<T> que define as condições para a pesquisa do elemento. Se o elemento for encontrado, este é retornado. Caso contrário, o valor padrão para T é retornado (null para referências).

Veja um trecho de código no qual eu mostro como usar o método Find() em combinação com um método personalizado que permite usar um delegate anônimo. Desta forma conseguimos fornecer, em tempo de execução, o argumento para o parâmetro match do Predicate:

static void Main(string[] args){
  // vamos criar um objeto da classe List<T>
  List<string> nomes = new List<string>();

  // vamos inserir quatro valores na lista
  nomes.Add("Osmar J. Silva");
  nomes.Add("Salvador Miranda de Andrade");
  nomes.Add("Dyego Fernandes de Souza");
  nomes.Add("Marcos de Paula Rocha");
  
  // vamos pesquisar um valor na lista usando um método personalizado
  // Neste exemplo vamos retornar o primeiro nome que contenha a palavra
  // "Dyego"
  string nome = encontrar(nomes, "Dyego");

  // vamos verificar se o nome foi encontrado
  if(nome != null){
    // foi encontrado....vamos retornar o resultado
    Console.WriteLine(nome);
  }
  else{
    Console.WriteLine("Nenhum nome encontrado.");
  }

  // vamos pausar a execução
  Console.Write("\n\nPressione qualquer tecla para continuar...");
  Console.ReadKey();
}

// método auxiliar que permite encontrar um valor na lista usando
// o método Find() da classe List<T> e um Predicate
static string encontrar(List<string> lista, string texto){
  string encontrado = null;

  // vamos pesquisar o valor na lista usando seu método Find()
  // Aqui o primeiro nome que passar no critério de busca será retornado
  encontrado = lista.Find(delegate(string valor){
      return valor.Contains(texto);
  });

  return encontrado;
}

O método Find() executa uma busca linear. Assim, este método é uma operação O(n), onde n é a quantidade de elementos na lista.


JavaScript ::: Fundamentos da Linguagem ::: Estruturas de Controle

JavaScript para iniciantes - Como testar condições em JavaScript usando if e if..else

Quantidade de visualizações: 10390 vezes
As estruturas if (se) e if..else (se..senão) da linguagem JavaScript são muito usadas quando queremos testar condições em nossos códigos e, dependendo do resultado do teste, efetuar desvios na execução das instruções. Veja a sintáxe do if:

if(condição){
  // instrução ou conjunto de instruções
}

A condição é qualquer teste que resulte em um valor boolean (true ou false). Veja, por exemplo, como podemos verificar se um valor é maior que 10:

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

<script type="text/javascript">
  var valor = 15;

  // vamos testar se o valor é maior que 10
  if(valor > 10){
    document.write("O valor é maior que 10.");
  }  
</script>

</body>
</html>

Ao executarmos este código, o texto "O valor é maior que 10." será exibido na tela. Porém, também gostaríamos de exibir uma mensagem caso o valor não for maior que 10. Para isso podemos usar a cláusula else. Veja:

<script type="text/javascript">
  var valor = 5;

  // vamos testar se o valor é maior que 10
  if(valor > 10){
    document.write("O valor é maior que 10.");
  }
  else{
    document.write("O valor NÃO é maior que 10.");
  }  
</script>

Ao executarmos o exemplo novamente, o texto "O valor NÃO é maior que 10." será exibido. Isso aconteceu porque, ao não satisfazer a condição do if, o fluxo de código caiu na cláusula else.

Há algumas situações nas quais precisamos testar muitas condições ao mesmo tempo. Assim, além do if e else podemos empregar também a cláusula else if (senão se). Veja um exemplo no qual expandimos o exemplo anterior para testar se o valor é maior, menor ou igual a 10:

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

<script type="text/javascript">
  var valor = 5;

  // vamos testar se o valor é maior, menor ou igual a 10
  if(valor > 10){
    document.write("O valor é maior que 10.");
  }
  else if(valor < 10){
    document.write("O valor é menor que 10.");
  }
  else{
    document.write("O valor é igual a 10.");
  }  
</script>

</body>
</html>

Esta dica foi escrita e testada no Internet Explorer 8 e Firefox 3.6.


Java ::: Fundamentos da Linguagem ::: Tipos de Dados

Apostila Java para iniciantes - Como usar o tipo de dados referência em seus códigos Java

Quantidade de visualizações: 11607 vezes
O Java contém 8 tipos de dados primitivos e um tipo referência. No entanto, poucos livros dedicam exemplos a este último tipo. Vamos começar analisando o trecho de código abaixo:

public class Estudos{
  public static void main(String args[]){
    String nome = "Osmar J. Silva";  

    System.out.println(nome);    

    System.exit(0);
  }
}

Se observarmos este código, veremos que a variável nome não é um tipo primitivo e sim uma referência. Desta forma, qualquer variável ou constante que não seja do tipo primitivo é uma referência a um objeto de uma classe, interface, etc. Arrays não são tipos primitivos também. Assim, variáveis ou constantes que apontam para arrays (vetores e matrizes) também são referências.

É importante entender bem a noção de referências, visto que é por meio delas que acessamos um determinado objeto na memória. Além disso, como objetos e arrays são sempre passados por referência aos métodos Java, fica fácil entender como várias referências podem apontar para o mesmo objeto ao mesmo tempo. E, caso você tenha esquecido, os tipos primitivos nunca são passados por referêcia aos métodos. Em vez disso, eles são passados por valor (o que quer dizer que uma alteração nos argumentos fornecidos ao métodos não altera a cópia original da variável).

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