Você está aqui: Java ::: Boletos Bancários, Arquivos de Remessa e Retornos do Banco ::: Caixa Econômica Federal - Banco 104

Boleto Bancário Java - Como calcular o Dígito Verificador do Código do Cedente (Módulo 11) - Boleto Caixa Econômica

Quantidade de visualizações: 2310 vezes
Nesta dica mostrarei, passo-a-passo, como calcular o Dígito Verificador do Código do Cedente para o boleto e arquivos de remessa da Caixa Econômica Federal (Banco 104). No momento que escrevo essa dica, o Código do Cedente é um número composto por seis dígitos, que identifica a empresa no banco. Em geral esse número é fornecido pelo gerente da conta mediante a assinatura de um contrato ou convênio.

Recentemente a Caixa introduziu o código de cedente com 7 dígitos. No entanto, não tive a oportunidade de encontrar um cliente com tal código. Se for o seu caso, verifique com a equipe de suporte da sua agência sobre o procedimento adotado. As informações que obtive são de que o cálculo continua sendo apenas com os seis dígitos, mas não descobri se são as seis primeiras posições ou as últimas. Se algum leitor do site souber mais a respeito, pode me enviar mensagens que atualizo essa dica.

O cálculo que mostrarei é baseado no Módulo 11 e está de acordo com as instruções do Manual de Leiaute de Arquivo Eletrônico Padrão CNAB 240 - Cobrança Bancária Caixa - SIGCB - Versão 67.118 v024 micro e Especificação do Código de Barras para Bloquetos de Cobrança Sem Registro e Registrada no SIGCB (67.119 v005 micro). Tenha certeza de verificar sua versão do manual antes de usar o código abaixo.

O Dígito Verificador do Código do Cedente não é usado nos cálculos da linha digitável nem do código de barras. Ele é usado somente no campo "Agência/Código cedente" do boleto bancário. Porém, é importante saber efetuar o seu cálculo corretamente, pois a homologação dos boletos e arquivos de remessa dependem dessa verificação.

Dito isso, veja o código Java completo para uma função que recebe o código do cedente e retorna o seu dígito verificador:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    // vamos calcular o dígito verificador do código do
    // cedente
    String codigoCedente = "005507";
    int digito = dvCodigoCedente(codigoCedente);
    System.out.println("O dígito verificador para o código do cedente " + 
      codigoCedente + " é: " + digito);
  }

  // função que recebe o código do cedente
  // e retorna o seu dígito verificador
  public static int dvCodigoCedente(String cedente){
    int digito = -1;
    
    // o código do cedente possui mais que 6 dígitos?
    if(cedente.length() > 6){
      System.out.println("O código do cedente não pode ter " +
        " mais que 6 dígitos.");
      System.exit(1);
    }
	
    // primeiro vamos remover os espaços do número do cedente
    cedente = cedente.trim();
    // agora precisamos adicionar os zeros necessários
    // para completar 6 posições
    cedente = String.format("%1$6s", cedente).replace(' ', '0');
    // agora vamos definir os índices de múltiplicação
    String indices = "765432";
    // e aqui a soma da multiplicação coluna por coluna
    int soma = 0;
     
    // fazemos a multiplicação coluna por coluna agora
    // fazemos a multiplicação coluna por coluna agora
    for (int i = 0; i < cedente.length(); i++){
      soma = soma + Integer.parseInt(String.valueOf(cedente.charAt(i))) *
        Integer.parseInt(String.valueOf(indices.charAt(i)));
    }
    
    // Obs.: Quando o Total da Soma for MENOR que o quociente (no
    // caso 11), pular o 3º PASSO, ou seja, o Total da Soma deverá ser
    // diminuído diretamente do quociente, obtendo-se o DV como
    // resultado. 
    if(soma < 11){
      digito = 11 - soma;	
    }
    else{
      // obtemos o resto da divisão da soma por onze
      int resto = soma % 11;
     
      // subtraímos onze pelo resto da divisão
      digito = 11 - resto;  	
    }
     
    // atenção: Se o resultado da subtração for
    // maior que 9 (nove), o dígito será 0 (zero)
    if(digito > 9){
      digito = 0;    
    }
     
    return digito;
  }
}

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

O dígito verificador para o código do cedente 005507 é: 7

Link para compartilhar na Internet ou com seus amigos:

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: 50139 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:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

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 ::: Dicas & Truques ::: Programação Orientada a Objetos

Como usar o modificador final em classes, variáveis e métodos Java - Programação Orientada a Objetos em Java

Quantidade de visualizações: 13428 vezes
O modificador final pode ser usado com classes, variáveis e métodos. É claro que o significado varia dependendo do uso. Por exemplo, ao marcarmos uma variável com o modificador final, estamos na verdade criando uma constante, ou seja, uma variável cujo conteúdo não pode ser alterado durante a execução do programa. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Estudos{ 
  static final int VALOR = 45;  

  public static void main(String args[]){ 
    // vamos tentar alterar o valor da
    // constante
    VALOR = 10;
  } 
}

Ao tentarmos compilar este programa teremos a seguinte mensagem de erro:

Estudos.java:7: cannot assign a value to 
final variable VALOR
    VALOR = 10;
    ^
1 error


Tenha em mente, porém, que quando uma variável marcada como final é uma referência a um objeto, é a referência que não poderá ser alterada. As propriedades do objeto para a qual ela aponta poderão sofrer alterações, exceto se estes também estiverem marcados como final.

Quando aplicado a classes, o modificador final garante que a classe não poderá ser extendida, ou seja, não é possível criar uma classe derivada a partir de uma classe marcada como final. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// superclasse
final class Pessoa{
  public String nome;
}

// subclasse
class Aluno extends Pessoa{
  public String matricula;
}

public class Estudos{ 
  public static void main(String args[]){ 
    // Cria um objeto da classe Aluno
    Aluno a = new Aluno();
  } 
}

Ao tentarmos compilar este código teremos a seguinte mensagem de erro:

Estudos.java:7: cannot inherit from 
final Pessoa
class Aluno extends Pessoa{
                    ^
1 error


Um método marcado como final não pode ser sobrescrito. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// superclasse
class Pessoa{
  protected String nome;

  public final String getNome(){
    return this.nome;
  }
}

// subclasse
class Aluno extends Pessoa{
  // estamos sobrescrevendo o método
  // herdado da superclasse
  public final String getNome(){
    return "Aluno: " + this.nome;
  }
}

public class Estudos{ 
  public static void main(String args[]){ 
    // Cria um objeto da classe Aluno
    Aluno a = new Aluno();
  } 
}

Ao tentarmos compilar este código teremos a seguinte mensagem de erro:

Estudos.java:14: getNome() in Aluno cannot 
override getNome() in Pessoa; overriden method is final
  public final String getNome(){
                      ^
1 error


Resumindo: variáveis marcadas com final não poder sofrer alterações. Classes marcadas como final não podem ter classes derivadas. Métodos marcados como final não podem ser sobrescritos.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Geometria Analítica e Álgebra Linear

Exercício Resolvido de Java - Como calcular o quadrante de uma coordenada cartesiana em Java

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

O Plano Cartesiano, ou Sistema de Coordenadas Cartesianas, é formado por duas retas reais perpendiculares, ou seja, o ângulo entre elas é de 90 graus. Essas retas determinam um único plano, que é denominado como sistema ortogonal de coordenadas cartesianas ou somente plano cartesiano.

No ano de 1637, René Descartes teve a brilhante ideia de relacionar álgebra e geometria, dando início à conhecida geometria analítica, método que possibilita descrever a geometria utilizando uma menor quantidade de diagramas e desenhos. Apesar de os créditos dessa descoberta serem dados a Descartes, Pierre de Fermat já conhecia e utilizava alguns conceitos de geometria analítica, logo o plano cartesiano.

Há quatro quadrantes no Sistema de Coordenadas Cartesianas, conforme a figura a seguir:



Como podemos ver, no primeiro quadrante, tanto o x quanto o y são positivos. No segundo quadrante o x é negativo e o y é positivo. No terceiro quadrante, tanto o x quanto o y são negativos. Por fim, no quarto quadrante, o x é positivo e o y é negativo.

Escreva um programa Java que pede para o usuário informar os valores x e y de uma coordenada cartesiana e informe em qual quadrante essa coordenada se situa. Se os valores de x e y forem zero, informe que o ponto se situa na origem do plano cartesiano.

Sua saída deverá ser parecida com:

Informe o valor x da coordenada: 12
Informe o valor y da coordenada: -7
A coordenada (12,-7) está no Quarto Quadrante (+,-)
Resposta/Solução:

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

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // variáveis usadas na resolução do problema
    int x, y;
  
    // vamos pedir para o usuário informar as coordenadas
    System.out.print("Informe o valor x da coordenada: ");
    x = Integer.parseInt(entrada.nextLine());
    System.out.print("Informe o valor y da coordenada: ");
    y = Integer.parseInt(entrada.nextLine());
  
    // a coordenada está no primeiro quadrante? 
    if (x > 0 && y > 0){
      System.out.println("A coordenada (" + x + "," + 
        y + ") está no Primeiro Quadrante (+,+)");
    }
    // a coordenada está no segundo quadrante?
    else if (x < 0 && y > 0){
      System.out.println("A coordenada (" + x + "," + 
        y + ") está no Segundo Quadrante (-,+)");
    }
    // a coordenada está no terceiro quadrante?
    else if (x < 0 && y < 0){
      System.out.println("A coordenada (" + x + "," + 
        y + ") está no Terceiro Quadrante (-,-)");
    }
    // a coordenada está no quarto quadrante?
    else if (x > 0 && y < 0){
      System.out.println("A coordenada (" + x + "," + 
        y + ") está no Quarto Quadrante (+,-)");
    }
    // a coordenada está na origem
    else{
      System.out.println("A coordenada (" + x + "," + 
        y + ") está na origem");
    }
  }
}



Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
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á 75 usuários muito felizes estudando em nosso site.