Hola Visitante

Autor Tema: Letra del DNI  (Leído 1847 veces)

Berni69

  • Administrator
  • *****
  • Mensajes: 25
    • Ver Perfil
Letra del DNI
« en: Diciembre 14, 2010, 01:02:05 pm »
Hoy mientras estaba en la uni, no se como llegué a pensar como debían hacer para asignar las letras de los dni así que decidí buscarlo, y mi sorpresa es que se basa en un simple módulo en base 23, es decir es el resto de una división por 23.

Así que como no tenía ganas de hacer ejercicios de Pipa (probabilidad y procesos aleatorios) programé el algoritmo que es bastante sencillo pero así pude entretenerme un rato.
Aquí tenemos el código en ada:

Código: (ada) [Seleccionar]
WITH Ada.Text_Io; USE Ada.Text_Io;
WITH Ada.Integer_Text_Io; USE Ada.Integer_Text_Io;
PROCEDURE  Lletra_Dni IS
   TYPE Lletres IS ARRAY (0..22) OF Character;
   Abc: Lletres:=\"TRWAGMYFPDXBNJZSQVHLCKE\";
   Dni:Integer;
   BEGIN
      Put(\"Introduce tu DNI\");New_Line;
      Get(Dni);
      New_Line;
      put(\"Letra es:\" );
      Put(Abc(Dni mod 23));
         New_Line;
      END;

Y el mismo en C

Código: (c) [Seleccionar]
#include

int main(){
int dni;
char abc[23]=\"TRWAGMYFPDXBNJZSQVHLCKE\";
printf(\"Introduce tu dni:\\\\n\");
scanf(\"%d\",&dni);

printf(\"Tu letra del dni es %c\", abc[dni%23]);

}

Pues nada, aquí os dejo un día más con una curiosidad.

Nos vemos pronto!!