Class: BoletoBancario::Calculos::Modulo11FatorDe9a2

Inherits:
Modulo11
  • Object
show all
Defined in:
lib/boleto_bancario/calculos/modulo11_fator_de9a2.rb

Overview

Módulo 11 Fator de 9 a 2

Passos

1) Tomando-se os algarismos multiplique-os, iniciando-se da direita para a esquerda, pela seqüência numérica de 9 a 2 (9, 8, 7, 6, 5, 4, 3, 2 … e assim por diante).

2) Some o resultado de cada produto efetuado e determine o total como (N).

3) Divida o total (N) por 11 e determine o resto obtido da divisão como Mod 11(N).

Exemplo Normal

Considerando o seguinte número: ‘89234560’.

1) Multiplicando a seqüência de multiplicadores:

8    9    2    3    4    5    6    0
*    *    *    *    *    *    *    *
2    3    4    5    6    7    8    9

2) Soma-se o resultado dos produtos obtidos no item “1” acima:

16 + 27 + 8 + 15 + 24 + 35 + 48 + 0
# => 173

3) Determina-se o resto da Divisão:

173 % 11
# => 8 =============> Resultado final retornado.

Examples:


BoletoBancario::Calculos::Modulo11FatorDe9a2.new('12345')
# => '5'

BoletoBancario::Calculos::Modulo11FatorDe9a2.new('246')
# => '1'

Returns:

  • (String)

    Retorna o resultado do cálculo descrito acima.

Direct Known Subclasses

Modulo11FatorDe9a2RestoX

Instance Attribute Summary

Attributes inherited from Modulo11

#number

Instance Method Summary collapse

Methods inherited from Modulo11

#initialize, #mod_division, #total

Constructor Details

This class inherits a constructor from BoletoBancario::Calculos::Modulo11

Instance Method Details

#calculateFixnum

Calcula o número pelos fatores de multiplicação de 9 a 2. Depois calcula o resto da divisão por 11.

Returns:

  • (Fixnum)


60
61
62
# File 'lib/boleto_bancario/calculos/modulo11_fator_de9a2.rb', line 60

def calculate
  mod_division
end

#fatoresArray

Sequência numérica de 9 a 2 que será feito a multiplicação de cada dígito do número passado no #initialize.

Returns:

  • (Array)

    Sequência numérica



51
52
53
# File 'lib/boleto_bancario/calculos/modulo11_fator_de9a2.rb', line 51

def fatores
  [9, 8, 7, 6, 5, 4, 3, 2]
end