Buscar este blog

lunes, 9 de abril de 2012

Dia 9 de Abril 2012


LUNES DIA 9 DE ABRIL DEL 2012


calcular en Devv c++


La letra del NIF se obtiene a partir de un algoritmo conocido como módulo 23. El algoritmo consiste en aplicar la operación aritmética de módulo 23 al número del DNI. El módulo 23 es el número entero obtenido como resto de la división entera del número del DNI entre 23. El resultado es un número comprendido entre el 0 y el 22. En base a una tabla conocida se asigna una letra. La combinación del DNI con esa letra es el NIF.
Este mismo algoritmo también puede utilizarse para el calculo del NIE. En el caso que el NIE empiece por X, se calcula despreciando la X y utilizando los 7 dígitos, si el NIE empieza por Y, se sustituye la letra Y por el número 1, si el NIE empieza por Z, se sustituye la letra Z por el número 2 y se realiza el mismo cálculo.
El algoritmo no se aplica para obtener el Código de Identificación Fiscal (CIF), que es el "NIF" propio de las personas jurídicas, pues la letra que tiene no se basa en una fórmula, sino que identifica el tipo de entidad (p.e. B para Sociedades Limitadas; G para Asociaciones sin ánimo de lucro y otros tipos no definidos, etc.).

Tabla de asignación

012345678910111213141516171819202122
TRWAGMYFPDXBNJZSQVHLCKE
No se utilizan las letras: I, Ñ, O, U
La I y la O se descartan para evitar confusiones con otros caracteres, como 1, l o 0.
Se usan veintitrés letras por ser este un número primo.

Ej:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char letras[] =  {'T','R','W','A','G','M','Y','F','P','D','X','B','N','J','Z','S','Q','V','H','L','C','K','E'};
    int dni;
 
    printf("introduce tu dni (sin letra): ");
    scanf("%d",&dni);
    printf("\n\ntu nif es %d-%c",dni,letras[dni%23]);
    system("PAUSE");
    return EXIT_SUCCESS;
}



Crearemos entonces una tabla que contenga los módulos acumulados por mes.
MesesEFMAMJJASOND
Año regular033614625035
Año bisiesto034025036146
Por último nuestro algoritmo quedaría así:
d = ((A - 1) % 7 + \left ( \frac{A-1}{4} - \frac{3 \cdot \left( \frac{A - 1}{100} + 1 \right)}{4} \right ) % 7 + M + D % 7) % 7 \,\!
Donde:
M \,\! = Módulo correspondiente al mes.



















                                                                                                                                              JOSE SOTO

No hay comentarios:

Publicar un comentario