REHome
07-08-2007, 21:37:55
Este código funciona.
Sólo hace que te averigue la letra del DNI de ESPAÑA.
¿Alguien cree que se puede mejorar el código más pequeño?
using System;
using System.Collections.Generic;
using System.Text;
namespace DNI
{
class Program
{
static void Main(string[] args)
{
Dictionary<int, char> Letras = new Dictionary<int, char>();
Letras.Add(0, 'T'); Letras.Add(12, 'N');
Letras.Add(1, 'R'); Letras.Add(13, 'J');
Letras.Add(2, 'W'); Letras.Add(14, 'Z');
Letras.Add(3, 'A'); Letras.Add(15, 'S');
Letras.Add(4, 'G'); Letras.Add(16, 'Q');
Letras.Add(5, 'M'); Letras.Add(17, 'V');
Letras.Add(6, 'Y'); Letras.Add(18, 'H');
Letras.Add(7, 'F'); Letras.Add(19, 'L');
Letras.Add(8, 'P'); Letras.Add(20, 'C');
Letras.Add(9, 'D'); Letras.Add(21, 'K');
Letras.Add(10, 'X'); Letras.Add(22, 'E');
Letras.Add(11, 'B');
Console.Write("Introduce nº DNI: ");
string snumber = Console.ReadLine();
int inumber = -1;
try
{
if ((snumber.Length != 8) || (!Int32.TryParse(snumber, out inumber)))
{
throw new ArgumentException("No válido.");
}
else
{
inumber = inumber % 23;
Console.WriteLine("Letra: {0}", Letras[inumber]);
}
}
catch (ArgumentException) // Argumento no válido, no poner letras.
{
Console.WriteLine("\n");
Console.WriteLine("¡Error! - Sólo debes introducir números de 8 dígitos.");
}
Console.ReadKey();
}
}
}
Sólo hace que te averigue la letra del DNI de ESPAÑA.
¿Alguien cree que se puede mejorar el código más pequeño?
using System;
using System.Collections.Generic;
using System.Text;
namespace DNI
{
class Program
{
static void Main(string[] args)
{
Dictionary<int, char> Letras = new Dictionary<int, char>();
Letras.Add(0, 'T'); Letras.Add(12, 'N');
Letras.Add(1, 'R'); Letras.Add(13, 'J');
Letras.Add(2, 'W'); Letras.Add(14, 'Z');
Letras.Add(3, 'A'); Letras.Add(15, 'S');
Letras.Add(4, 'G'); Letras.Add(16, 'Q');
Letras.Add(5, 'M'); Letras.Add(17, 'V');
Letras.Add(6, 'Y'); Letras.Add(18, 'H');
Letras.Add(7, 'F'); Letras.Add(19, 'L');
Letras.Add(8, 'P'); Letras.Add(20, 'C');
Letras.Add(9, 'D'); Letras.Add(21, 'K');
Letras.Add(10, 'X'); Letras.Add(22, 'E');
Letras.Add(11, 'B');
Console.Write("Introduce nº DNI: ");
string snumber = Console.ReadLine();
int inumber = -1;
try
{
if ((snumber.Length != 8) || (!Int32.TryParse(snumber, out inumber)))
{
throw new ArgumentException("No válido.");
}
else
{
inumber = inumber % 23;
Console.WriteLine("Letra: {0}", Letras[inumber]);
}
}
catch (ArgumentException) // Argumento no válido, no poner letras.
{
Console.WriteLine("\n");
Console.WriteLine("¡Error! - Sólo debes introducir números de 8 dígitos.");
}
Console.ReadKey();
}
}
}