lunes, 18 de noviembre de 2013

Unidad 2 Ejercicio 11 y 12


/*
 *11. Hacer un programa  que dado un número de DNI obtenga la letra del NIF. La letra correspondiente a un número de DNI se calcula mediante el siguiente algoritmo. Se obtiene el resto de dividir el número de DNI entre 23. El número resultante nos indica la posición de la letra correspondiente a ese DNI, en la siguiente cadena:

Tabla de asignación
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
T R W A G M Y F P D X B N J Z S Q V H L C K E
No se utilizan las letras: I, Ñ, O, U.
La I y la O se evitan para evitar confusiones con otros caracteres, como 1, l ó 0.
11. Hacer un programa  que dado un número de DNI obtenga la letra del NIF. La letra correspondiente a un número de DNI se calcula mediante el siguiente algoritmo. Se obtiene el resto de dividir el número de DNI entre 23. El número resultante nos indica la posición de la letra correspondiente a ese DNI, en la siguiente cadena:

Tabla de asignación
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
T R W A G M Y F P D X B N J Z S Q V H L C K E
No se utilizan las letras: I, Ñ, O, U.
La I y la O se evitan para evitar confusiones con otros caracteres, como 1, l ó 0.

 */
package ud2ejer11;
import java.util.Scanner;
/**
 *
 * @author juan
 */

public class Ud2Ejer11 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int dni,resto;
        Scanner entrada = new Scanner(System.in);
      
        System.out.print("Introduzca su número de dni: ");
        dni = entrada.nextInt();

      
        //solo ponemos algunas letras de ejemplo, el resto sería igual
        resto = dni%23;
        if (resto == 0) System.out.print( " T");
        else if (resto == 1) System.out.print( " R");
        else if (resto == 2) System.out.print( " W");
        else if (resto == 8) System.out.print( " P");
        else System.out.print( " Alguna letra que no es ni T,P, R ni W "+resto);
        System.out.println();
      
        //Hacemos lo mismo con switch
        System.out.println("Cálculo de dni con un switch:");
        switch (resto) {
            case 0:System.out.print( " T");break;
            case 1:System.out.print( " R");break;
            case 2:System.out.print( " W");break;
            case 8:System.out.print( " P");break;
            default:  System.out.print( " Alguna letra que no es ni T,P, R ni W "+resto);break;
          
        }
      
  
    }
}