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 Nosso Número (Módulo 11) - Boleto Caixa EconômicaQuantidade de visualizações: 1552 vezes |
Nesta dica mostrarei, passo-a-passo, como calcular o Dígito Verificador do Nosso Número para o boleto e arquivos de remessa da Caixa Econômica Federal (Banco 104). O Nosso Número é o número de identificação do título no Banco. Este número deve ser único nos seus sistemas, pois, sua combinação com o código do cedente o torno único também no sistema bancário. Além disso, é o Nosso Número que permite ao Banco e a empresa identificar os dados da cobrança que deram origem ao bloqueto. Na Especificação do Código de Barras para Bloquetos de Cobrança Sem Registro e Registrada no SIGCB (67.119 v005 micro), o Nosso Número é composto de 17 posições, sendo as 02 posições iniciais para identificar a Carteira e as 15 posições restantes são para livre utilização pelo Cedente. Seu formato é XYNNNNNNNNNNNNNNN-D, onde: a) X = Modalidade/Carteira de Cobrança (1-Registrada/2-Sem Registro); b) Y = Emissão do bloqueto (4-Cedente); c) NNNNNNNNNNNNNNN = Nosso Número (15 posições livres do Cedente); d) D = Dígito Verificador do Nosso Número calculado através do Modulo 11, conforme código que mostrarei a seguir. Nos boletos e arquivos de remessa da Caixa, o Dígito Verificador do Nosso Número admite 0 (zero), diferentemente do DV Geral do Código de Barras (que também mostro como calcular em dicas dessa seção). O cálculo que mostrarei a seguir é 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 apresentado. Dito isso, veja o código Java completo para uma função que recebe o Nosso Número e retorna 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 // Nosso Número String carteira = "1"; // String emissao = "4"; // cedente String nossoNumero = "28288"; // preenche com zeros até completar 15 posições nossoNumero = String.format("%1$15s", nossoNumero).replace(' ', '0'); String nossoNumeroCompleto = carteira + emissao + nossoNumero; int digito = dvNossoNumero(nossoNumeroCompleto); System.out.println("O dígito verificador para o nosso número " + nossoNumeroCompleto + " é: " + digito); } // função que recebe o nosso número // e retorna o seu dígito verificador public static int dvNossoNumero(String nossoNumero){ // o nosso número possui mais que 17 dígitos? if(nossoNumero.length() > 17){ System.out.println("O Nosso Número não pode ter " + " mais que 17 dígitos."); System.exit(1); } // agora vamos definir os índices de multiplicação String indices = "29876543298765432"; // e aqui a soma da multiplicação coluna por coluna int soma = 0; // fazemos a multiplicação coluna por coluna agora for (int i = 0; i < nossoNumero.length(); i++){ soma = soma + Integer.parseInt(String.valueOf(nossoNumero.charAt(i))) * Integer.parseInt(String.valueOf(indices.charAt(i))); } // obtemos o resto da divisão da soma por onze int resto = soma % 11; // subtraímos onze pelo resto da divisão int 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 executar este código Java nós teremos o seguinte resultado: O dígito verificador para o nosso número 14000000000028288 é: 5 |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Classes, Controles e Componentes ::: JSplitPane |
Java Swing - Como usar a classe JSplitPane para dividir o espaço ocupado pelos componentes de suas aplicações Java SwingQuantidade de visualizações: 10302 vezes |
A classe JSplitPane é usada quando precisamos controlar o espaço ocupado por dois ou mais componentes. Objetos desta classe podem ser redimensionados, de modo a aumentar ou diminuir a área ocupada por um dos componentes. Veja a posição desta classe na hierarquia de classes Java:java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.JSplitPane No trecho de código abaixo você verá como é possível dividir a área ocupada por duas áreas de texto (JTextArea). Execute a aplicação e experimente aumentar ou diminuir o espaço ocupado pelos componentes: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import javax.swing.*; import java.awt.*; public class Estudos extends JFrame{ public Estudos(){ super("Como usar a classe JSplitPane"); // primeira área de texto JTextArea textArea1 = new JTextArea(5, 30); textArea1.setText("Sou a área de texto 1."); JScrollPane sPane1 = new JScrollPane(textArea1); // segunda área de texto JTextArea textArea2 = new JTextArea(5, 30); textArea2.setText("Sou a área de texto 2."); JScrollPane sPane2 = new JScrollPane(textArea2); // Cria o JSplitPane JSplitPane splitPane = new JSplitPane( JSplitPane.HORIZONTAL_SPLIT, sPane1, sPane2); add(splitPane, BorderLayout.CENTER); setSize(300, 150); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar esta aplicação Java Swing nós teremos o seguinte resultado: |
Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Java para Geometria Analítica e Álgebra Linear - Como efetuar a soma de matrizes usando JavaQuantidade de visualizações: 1526 vezes |
A soma de matrizes (assim como a subtração e multiplicação) é parte integrante da disciplina de Álgebra Linear e seu cálculo é muito simples. Assumindo duas matrizes A e B, ambas com a mesma quantidade de linhas e colunas, a matriz soma pode ser obtida da seguinte forma: \[A + B = \left[\begin{matrix} 3 & 4 & -1 \\ 8 & 2 & 1 \\ 7 & 5 & -3 \end{matrix}\right] + \left[\begin{matrix} -2 & 6 & 4 \\ 1 & 8 & 9 \\ -4 & 10 & 3 \end{matrix}\right] = \left[\begin{matrix} 1 & 10 & 3 \\ 9 & 10 & 10 \\ 3 & 15 & 0 \end{matrix}\right] \] Um elemento da matriz é representando por sua posição linha e coluna. Usamos a letra i para a linha e j para a coluna, ou seja, aij. Dessa forma, o elemento na primeira linha e primeira coluna da matriz é a11, o elemento na primeira linha e segunda coluna é a12 e assim por diante. Então, a soma das duas matrizes é feita da seguinte forma: Cij = Aij + Bij. E agora veja o código Java que declara duas matrizes matrizA e matrizB e obtém uma terceira (matrizC) contendo a soma das duas anteriores. Novamente, note o requisito de que as matrizes deverão ter o mesmo número de linhas e colunas: ---------------------------------------------------------------------- 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[]){ // declarar, construir e inicializar as matrizes int matrizA[][] = {{3, 4, -1}, {8, 2, 1}, {7, 5, -3}}; int matrizB[][] = {{-2, 6, 4}, {1, 8, 9}, {-4, 10, 3}}; // esta é a matriz soma int matrizSoma[][] = new int[3][3]; // e agora vamos prosseguir com a soma for(int i = 0; i < matrizA.length; i++){ for(int j = 0; j < matrizA[0].length; j++){ matrizSoma[i][j] = matrizA[i][j] + matrizB[i][j]; } } // vamos exibir os valores da primeira matriz System.out.println("Elementos da matriz A:"); for(int i = 0; i < matrizA.length; i++){ for(int j = 0; j < matrizA[0].length; j++){ System.out.printf("%5d ", matrizA[i][j]); } System.out.println(); } // vamos exibir os valores da primeira matriz System.out.println("\nElementos da matriz B:"); for(int i = 0; i < matrizB.length; i++){ for(int j = 0; j < matrizB[0].length; j++){ System.out.printf("%5d ", matrizB[i][j]); } System.out.println(); } // vamos exibir os valores da matriz soma System.out.println("\nElementos da matriz soma:"); for(int i = 0; i < matrizSoma.length; i++){ for(int j = 0; j < matrizSoma[0].length; j++){ System.out.printf("%5d ", matrizSoma[i][j]); } System.out.println(); } } } Ao executar este código Java nós teremos o seguinte resultado: Elementos da matriz A: 3 4 -1 8 2 1 7 5 -3 Elementos da matriz B: -2 6 4 1 8 9 -4 10 3 Elementos da matriz soma: 1 10 3 9 10 10 3 15 0 |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como passar vetores e matrizes (arrays) para seus métodos JavaQuantidade de visualizações: 16155 vezes |
Nesta dica mostrarei como você pode passar um array (vetor ou matriz) para seus métodos Java. Observe que um array é um objeto Java, e objetos são sempre passados por referência. Assim, as alterações feitas no vetor ou matriz dentro do método afetarão o array original. Veja o código completo para o exemplo: ---------------------------------------------------------------------- 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){ int[] valores = {43, 6, 17, 23, 8}; // Exibe os valores antes de passar o // array para o método multiplicar for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + ", "); } System.out.println(); // fornece o array para o método multiplicar multiplicar(valores, 2); // Exibe os valores depois de passar o // array para o método multiplicar for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + ", "); } System.exit(0); } public static void multiplicar(int a[], int num){ for(int i = 0; i < a.length; i++){ a[i] = a[i] * num; } } } Ao executar este código nós teremos o seguinte resultado: 43, 6, 17, 23, 8, 86, 12, 34, 46, 16, |
Vamos testar seus conhecimentos em Hidrologia |
Qual é a maior bacia hidrográfica em nível mundial? A) Bacia Amazônica. B) Bacia Atlântica. C) Bacia do Mississípi. D) Bacia da Prata. E) Bacia do Congo. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Número de Reynolds O número de Reynolds (abreviado como Re) é utilizado para o cálculo do regime de escoamento de um fluido no interior de um tubo ou de um duto. Considere que um sistema hidráulico opera com óleo SAE 10W, de densidade igual a 920kg/m3 e viscosidade dinâmica de 0,018kg/(m.s), à temperatura de 55°C. Sabendo que o fluido escoa a uma velocidade média de 0,147m/s, e que o tubo tem 1m de diâmetro, qual é o número de Reynolds para o escoamento? A) 7.513,33. B) 2.300. C) 112,65. D) 715,33. E) 1.126,50. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Número de Reynolds O número de Reynolds (abreviado como Re) é utilizado para o cálculo do regime de escoamento de um fluido no interior de um tubo ou de um duto. Considere que um sistema hidráulico opera com óleo SAE 10W, de densidade igual a 920kg/m3 e viscosidade dinâmica de 0,018kg/(m.s), à temperatura de 55°C. Sabendo que o fluido escoa a uma velocidade média de 0,147m/s, e que o tubo tem 1m de diâmetro, qual é o número de Reynolds para o escoamento? A) 7.513,33. B) 2.300. C) 112,65. D) 715,33. E) 1.126,50. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
Perfil em aço À medida que os perfis de aço são utilizados para estruturar uma edificação, é fundamental que sejam conectados uns aos outros. Isso vai garantir a estabilidade da construção e permitir a criação de blocos mais resistentes. Considerando essa informação e a figura apresentada a seguir, assinale a alternativa que indica corretamente o tipo de conexão que está sendo utilizado. A) Conexão de cisalhamento com solda. B) Conexão de momento com solda. C) Conexão de cisalhamento com pinos. D) Conexão de momento com pinos. E) Conexão de tensão com solda. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
(CEBRASPE - 2024 - ITAIPU - Técnico em Hidrologia) Em relação ao tempo, o balanço hídrico de uma bacia A) aumenta com a vazão de entrada e diminui com a vazão de evaporação. B) Aumenta com a vazão de entrada e aumenta com a vazão de evaporação. C) diminui com a vazão de entrada e diminui com a vazão de saída. D) diminui com a vazão de saída e diminui com a precipitação. E) aumenta com a vazão de evaporação e diminui com a precipitação. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
PHP - PHP para iniciantes - Como obter a diferença em horas entre duas datas (e suas respectivas horas) |
Códigos Fonte |
Software 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 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 |