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.

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

Exercício Resolvido de C++ - Ler três números inteiros e indicar se eles estão em ordem crescente ou decrescente

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

Escreva um programa C++ que pede para o usuário informar três números inteiros e informa se eles estão em ordem crescente ou decrescente. Se os números estiverem em ordem crescente, escreva "Ordem Crescente". Se estiverem em ordem decrescente, escreva "Ordem Decrescente". Do contrário escreva "Sem ordem definida".

Sua saída deverá ser parecida com:

Primeiro número: 4
Segundo número: 8
Terceiro número: 11
Ordem Crescente
Resposta/Solução:

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

#include <string>
#include <iostream>

using namespace std;

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do exercício
  int a, b, c;

  // vamos pedir para o usuário informar três números
  cout << "Primeiro número: ";
  cin >> a;
  cout << "Segundo número: ";
  cin >> b;
  cout << "Terceiro número: ";
  cin >> c;
    
  // os números estão em ordem crescente?
  if (a < b && b < c){
    cout << "Ordem Crescente" << endl;
  }
  // os números estão em ordem decrescente?
  else if (a > b && b > c){
    cout << "Ordem Decrescente" << endl;
  }
  // sem ordem definida
  else{
    cout << "Sem ordem definida" << endl;
  } 
	
  cout << "\n\n";
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS; 
}



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: 17946 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 ::: VCL - Visual Component Library ::: TComboBox

Como detectar o evento OnSelect da classe TComboBox do Delphi

Quantidade de visualizações: 13639 vezes
O evento OnSelect da classe TComboBox é disparado quando o usuário seleciona um item (uma string) na lista drop-down do componente. Este evento possui a seguinte assinatura:

property OnSelect: TNotifyEvent;

Um evento do tipo TNotifyEvent não possui parâmetros específicos ao evento ocorrido. Assim, no evento OnSelect temos acesso somente ao parâmetro Sender, do tipo TObject, que nos informa em qual componente o evento ocorreu.

Vamos ver um exemplo? Veja o código para o tratamento do evento OnSelect de um ComboBox. Aqui, todas as vezes que o evento disparar, nós vamos exibir o valor do novo item:

procedure TForm3.ComboBox1Select(Sender: TObject);
begin
  // vamos mostrar o novo item selecionado
  ShowMessage('O novo item selecionado é: ' +
    ComboBox1.Items[ComboBox1.ItemIndex]);
end;

Note que o evento OnSelect é disparado somente após a mudança de seleção e, consequentemente, a atualização da propriedade Text, que deverá refletir o novo item.


Java ::: Fundamentos da Linguagem ::: Variáveis e Constantes

Java para iniciantes - Como usar os diferentes tipos de variáveis em Java

Quantidade de visualizações: 17498 vezes
Na linguagem de programação Java podemos encontrar diferentes tipos de variáveis. Veja a lista e uma descrição detalhada de cada um destes tipos:

Variáveis de instância (Instance Variables) - Estas variáveis são não-estáticas, ou seja, declaradas sem o modificador static. Variáveis de instância são assim chamadas porque seus valores são únicos para cada instância da classe. Assim, a variável nomeCliente pode armazenar valores diferentes para cada cópia da classe Cliente.

Variáveis de classes - Estas variáveis são declaradas com o modificador static. Isso informa ao compilador que há exatamente uma única cópia desta variável, independente do número de instâncias da classe. Um bom exemplo de tal variável é quantCliente, que pode ser incrementada cada vez que uma nova cópia da classe é criada.

Variáveis locais - São usadas para armazenar o estado temporário de um método. Variáveis locais são acessíveis somente dentro do método em que são declaradas, e automaticamente abandonadas na saída deste.

Parâmetros - São os parâmetros de métodos. Tais variáveis são acessíveis somente ao código no corpo do método.

Geralmente quando falamos de "campos em geral" (excluindo variáveis locais e parâmetros), podemos simplesmente dizer "campos". Se a discussão se aplica a todas as variáveis acima, usamos "variáveis". Se o contexto pede uma distinção, usamos termos específicos (campo estático, variável local, etc) como apropriado. Podemos ainda usar o termo "membro". Os campos, métodos e tipos aninhados de um tipo podem ser chamados de seus membros.


C# ::: Fundamentos da Linguagem ::: Variáveis e Constantes

C# para iniciantes: Como declarar e usar variáveis em C#

Quantidade de visualizações: 48515 vezes
Variáveis são apelidos que damos aos blocos de memória que podem ser usados para armazenar dados durante a execução de um programa. Podemos guardar informações dos mais variados tipos em variáveis, a saber: valores inteiros, valores de número flutuante (com casas decimais), palavras, frases, textos e até mesmo referências a objetos de classes (fornecidas pela linguagem C# ou nossas próprias).

Uma variável é declarada, em sua forma mais simples, informando o tipo de dados (int, float, double, string, etc) e então o nome da variável. Veja:

// uma variável usado para armazenar um valor inteiro
int valor;

Uma vez declarada a variável, podemos definir o valor que será armazenado inicialmente. Isso é chamado de "atribuir um valor inicial à variável". Veja:

static void Main(string[] args){
  // declara e inicializa uma variável do tipo double
  double salario = 2345.32;

  // exibe o valor da variável
  Console.WriteLine("Salário: {0}", salario);

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

É possível declarar mais de uma variável do mesmo tipo. Basta separá-las por vírgulas. Veja:

// declara três variáveis do tipo char
char a, b, c;

Variáveis são realmente úteis quando as estamos usando em cálculos ou outras operações importantes para o correto funcionamento do programa. Veja:

static void Main(string[] args){
  // declara três variáveis do tipo int
  int a, b, soma;

  // inicializa as duas primeiras variáveis
  a = 20;
  b = 10;

  // inicializa a terceira variável usando os valores
  // das duas anteriores
  soma = a + b;

  // exibe o resultado
  Console.WriteLine("Resultado: {0}", soma);

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

Para finalizar, lembre-se de uma variável C# possui atributos importantes e que devem ser lembrados com frequência durante o planejamento de suas aplicações. Alguns destes atributos são: tipo, nome, valor, posição na memória, escopo (global ou local) e visibilidade (pública ou privada).


JavaScript ::: Dicas & Truques ::: Data e Hora

Como retornar o ano com quatro dígitos em JavaScript usando a função getFullYear() do objeto Date - Datas e horas em JavaScript

Quantidade de visualizações: 9364 vezes
Em algumas situações nós precisamos obter o ano de uma determinada data como um inteiro de quatro dígitos. Para isso nós podemos usar a função getFullYear() do objeto Date da linguagem JavaScript.

Veja o código a seguir:

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

<script type="text/javascript">
  var data = new Date();
  var ano = data.getFullYear();
  document.write("Estamos no ano: " + ano);
</script>
 
</body>
</html>

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

Estamos no ano: 2021


JavaScript ::: Dicas & Truques ::: Recursão (Recursividade)

JavaScript Avançado - Como remover todas as ocorrências de uma substring em uma string usando uma função recursiva

Quantidade de visualizações: 388 vezes
Esta dica contém um ótimo exercício de recursão. Trata-se de uma função JavaScript recursiva para remover todas as ocorrências de uma substring em uma string. Analise o código cuidadosamente e você conseguirá desenvolver várias funções de recursividade a partir dele.

Veja o código JavaScript completo:

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

<script type="text/javascript">
  // função recursiva que remove todas as ocorrências
  // de uma substring em uma string
  function remover(string, substring){
    // primeiro obtemos o índice da substring
    // dentro da string
    var indice = string.indexOf(substring);
    var resultado = "";
  
    // interromper a recursividade? 
    if(indice == -1){
      return string;
    }
    else{
      resultado += string.substring(0, indice) + 
        remover(string.substring(indice + substring.length),
        substring);
    }    

    return resultado;
  }

  // hora de testar a função recursiva
  var frase = "Ontem comprei duas camisas e uma calça";
  document.writeln("Original: " + frase);
  frase = remover(frase, "duas");
  document.writeln("<br>Nova frase: " + frase);  
</script>
 
</body>
</html>

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

Original: Ontem comprei duas camisas e uma calça
Nova frase: Ontem comprei camisas e uma calça


Java ::: Fundamentos da Linguagem ::: Passos Iniciais

Aprenda a ler entrada do usuário usando a classe Scanner do Java - Como ler a entrada do usuário em Java usando um objeto da classe Scanner

Quantidade de visualizações: 50454 vezes
Podemos ler entrada do usuário em aplicações Java console usando a classe Scanner do JDK 5.0 e recentes. Esta classe está no pacote java.util. Para ler strings use o método nextLine(), para ler inteiros use nextInt() e assim por diante. Não é um boa idéia misturar nextLine() com nextInt(), nextFloat(), etc. Em caso de comportamento estranho, é melhor ler tudo usando nextLine() e fazer conversões usando Integer.parseInt(), por exemplo.

Veja um código completo demonstrando o uso dessa classe:

package arquivodecodigos;

import java.util.*;
 
public class Estudos{
  public static void main(String[] args){
    Scanner in = new Scanner(System.in);
     
    System.out.print("Qual é o seu nome? ");
    String nome = in.nextLine();
 
    System.out.print("Qual sua idade? ");
    int idade = in.nextInt();
 
    System.out.println("Olá, " + nome +
       ". Você tem " + idade + " anos.");
  }
}

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

Qual é o seu nome? Osmar J. Silva
Qual sua idade? 39
Olá, Osmar J. Silva. Você tem 39 anos.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Um laço for que solicita ao usuário 10 números inteiros e mostra o menor e o maior valor informado

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

Escreva um programa Java console que usa o laço for para solicitar ao usuário que informe 10 números inteiros. Em seguida mostre o maior e o menor valor lido. Não é permitido usar matrizes:

Dica: Use um objeto da classe Scanner para obter a entrada do usuário.

Resposta/Solução:

Como a solução deste exercício depende de valores informados pelo usuário, a classe Scanner deverá ser usada. Desta forma, você deverá importá-la, usando a linha:

import java.util.Scanner;
Lembre-se de que os imports devem estar entre a declaração de pacote (package) e a declaração da classe. Veja a solução comentada no código abaixo:

public static void main(String[] args){
  // para este exercício você deverá importar a classe
  // Scanner. Ela está no pacote java.util.*;
    
  // vamos construir um objeto da classe Scanner para ler a
  // entrada do usuário
  Scanner entrada = new Scanner(System.in);

  int valor; // guarda o valor lido
  int maior = 0, menor = 0; // variáveis que guardarão o maior e o menor valor lido

  // vamos pedir ao usuário que informe 10 valores inteiros
  for(int i = 0; i < 10; i++){
    System.out.print("Informe o " + (i + 1) + "º valor: ");
    valor = Integer.parseInt(entrada.nextLine());

    // esta é a primeira iteração do laço? se for vamos assumir que o
    // maior e menor valor lido são o primeiro valor informado
    if(i == 0){
      maior = valor;
      menor = valor;
      // poderia ser escrito assim:
      //maior = menor = valor;
    }
    else{ // não é a primeira iteração
      // vamos verificar se é maior que o valor atual da variável maior
      if(valor > maior){
        maior = valor;
      }
      // vamos verificar se é menor que o valor atual da variável menor
      if(valor < menor){
        menor = valor;
      }
    }
  }

  // vamos exibir o maior e o menor valor lido
  System.out.println("\nO maior valor lido foi: " + maior);
  System.out.println("O menor valor lido foi: " + menor);
}



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

Java para iniciantes - Como formatar moeda usando a classe NumberFormat da linguagem Java

Quantidade de visualizações: 19752 vezes
Este exemplo mostra como formatar moeda usando o método getCurrencyInstance() da classe NumberFormat. Note que, nesse exemplo, nós formatamos um valor double para a moeda brasileira em 2021, a saber, o real.

Veja o código completo para a dica:

package arquivodecodigos;

import java.text.*;
 
public class Estudos{
  public static void main(String[] args){
    double valor = 1234567.89;
    System.out.println("Sem formatação: " + valor);
    NumberFormat nf = NumberFormat.getCurrencyInstance();
    String valorFormatado = nf.format(valor);
    System.out.println("Formatado: " + valorFormatado);   
  }
}

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

Sem formatação: 1234567.89
Formatado: R$ 1.234.567,89

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