GithubHelp home page GithubHelp logo

go-bank-practice's Introduction

Golang Course: Actividad

Descripción

El archivo de usuarios que definimos previamente, resultó ser un registro de clientes que solicitaron una tarjeta de crédito de diversos bancos (como VISA o MASTERCARD) por lo que nuestra misión es escribir un programa que genere los números de las tarjetas a 16 dígitos de los cuales deben de seguir la siguiente nomenclatura:

  • 2 dígitos indican el ID del Banco (definidos mas adelante)
  • 1 dígito que indica el segmento de la tarjeta (definido mas adelante)
  • 4 dígitos que indican el país de emisión. Siempre tendrá el valor 5211 el cual corresponde a México porque solo emitimos tarjetas para este país
  • 9 dígitos que representan el numero de cuenta que tendremos que generar de manera aleatoria (requieren validación definida mas adelante)

ID de Banco:

  • 11: Banca Bunsan
  • 22: Go Bank
  • 33: Aldo Institución Financiera
  • 44: Angel Banca Privada
  • 55: Hugo Finantial Services
  • 66: BanHumberto
  • 77: Gustavo Commercial Bank

Segmentos de tarjeta:

  • 2: Tarjeta básica
  • 4: Tarjeta departamental
  • 6: Tarjeta clásica
  • 8: Tarjeta Oro
  • 0: Tarjeta Platino

Validación de Número de Cuenta

Considerando un numero de cuenta 345882865, lo primero a considerar es determinar las posiciones de cada uno de los dígitos. En la tabla siguiente se asigna un nombre a cada una de las posiciones (dígitos) del numero de cuenta.

position name : d9 d8 d7 d6 d5 d4 d3 d2 d1

account number: 3 4 5 8 8 2 8 6 5

Una vez definidos los nombres de los dígitos, el algoritmo de validación es el siguiente

checksum calculation:

(1d1 + 2d2 + 3d3 + … + 9d9) mod 11 = 0

En el algoritmo anterior se ordenan los nombres de posiciones (deltas) en orden ascendente y son multiplicadas por el indice que representan. El resultado del producto debe ser sumado para finalmente obtener el residuo obtenido tras la división entre 11 (módulo). Cuando el residuo o Módulo es 0 sabemos que es un numero de cuenta valido por lo que es viable asignarlo a un nuevo¡mero de tarjeta de crédito.

Resultado

Nuestros números de cuenta deben de escribirse en un archivo en formato json.

go-bank-practice's People

Contributors

hugocrmx avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.