Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: pedro,, en 14 de Diciembre 2016, 00:33
-
Hola, aquí dejo una posible solución al ejercicio CU00904C del curso de programación avanzada en Java.
EJERCICIO
En España cada persona está identificada con un Documento Nacional de Identidad (DNI) en el que figura un número y una letra, por ejemplo 56999545W
La letra que sigue al número se calcula siguiendo la metodología que vamos a indicar. Crea un programa que calcule la letra de un DNI a partir del número de DNI que introduzca el usuario. Es decir, se debe pedir el DNI sin la letra por teclado y el programa nos devolverá el DNI completo (con la letra).
Para calcular la letra, se debe tomar el resto de dividir nuestro número de DNI entre 23. El resultado debe estar por tanto entre 0 y 22.
Crea un método obtenerLetra(int numeroDNI) donde según el resultado de la anterior fórmula busque en un array de caracteres la posición que corresponda a la letra. Esta es la tabla de caracteres:
Posición 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Letra T R W A G M Y F P D X B N J Z S Q V H L C K E
Por ejemplo, si introducimos el DNI 20267079, el resto de dividirlo por 23 sería 8, luego la letra sería la P, que es la que ocupa esa posicion en la matriz de caracteres.
Clase DNI
public class DNI {
private static final char[] LETRA = {'T','R','W','A','G','M','Y','F','P','D','X','B','N','J','Z','S','Q','V','H','L','C','K','E'};
public DNI() {}
public char obtenerLetraDNI(int numDNI) {
return LETRA[numDNI%23];
}
}
Clase test
import java.util.Scanner;
public class Test{
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int numDNI;
DNI letra = new DNI();
System.out.print("Introduzca número del DNI: ");
numDNI = Integer.parseInt(entrada.nextLine());
System.out.println("\nEl DNI con letra es: " + numDNI + letra.obtenerLetraDNI(numDNI));
entrada.close();
}
}
Saludos. ;D
-
Buenos días.
El ejercicio sería correcto.
Un saludo
-
Hola, estoy comenzando a aprender y no acabo de comprender el resultado del ejercicio :(. ¿Podéis explicarlo paso a paso?
-
Hola javiloz1604.
Si estás aprendiendo, quizás sería mejor empezar con un curso como este:
https://www.aprenderaprogramar.es/index.php?option=com_content&view=category&id=68&Itemid=188
De todas formas, si tienes dudas indica qué parte del código es la que no entiendes para aclarártela.
Saludos. ;D