DEDA_U2_A2_GUDG

Share Embed Donate


Short Description

Download DEDA_U2_A2_GUDG...

Description

UNADM

Estructura de datos

Actividad 2. Identificación Guillermo de errores en métodos de Duran Garcia ordenación AL12524075

Actividad 2. Identificación de errores en métodos de ordenación. La siguiente actividad te permitirá identificar errores en la codificación de un caso práctico en el que se han utilizado métodos de ordenación. Caso: Patentes Las antiguas patentes (de automóviles), por ejemplo PL7812, están compuestas por un string de dos caracteres, en el ejemplo PL, y por un número entero de cuatro dígitos, en el ejemplo 7812. Suponga que exista una clase Patente y otra TablaDePatentes de la siguiente forma: public class Patente { private String letras ; private int numero ; public Patente () {} public String obtLetras () { return letras ; } public int obtNumero () { return numero ; } } public class TablaDePatentes { private String [] tabla ; public TablaDePatentes () { tabla = new String [9999]; } public boolean buscar (Patente patente ) {} otros métodos } La idea es que TablaDePatentes almacena en el atributo tabla todas las patentes autorizadas a estacionarse en el campus San Joaquín. En particular, si la patente PL7812 está autorizada, entonces tabla [7812] = ‘‘PL’’, y si la patente JK2345 está autorizada, entonces tabla [2345] = ‘‘JK’’. Además, si dos o más patentes autorizadas tienen el mismo número, entonces sus pares de letras aparecen consecutivamente en el string correspondiente de tabla. Por ejemplo, si las patentes PL7812 y MB7812 están autorizadas, entonces tabla [7812] = ‘‘PLMB’’; y si las patentes JK2345, RC2345 y DW2345 están todas autorizadas, entonces tabla [2345] = ‘‘JKRCDW’’. Escriba el método buscar de la clase TablaDePatentes, que busca rápidamente la Patente en el atributo tabla, y devuelve true (verdadero) si patente está en tabla, y false (falso) en caso contrario.

Criterios de solución: Lo primero que tenemos que hacer es declarar el método como nos indican en el enunciado. Luego, con los métodos de la clase Patente, obtenemos las letras y los números que la componen. Con el número de la patente obtenemos lo almacenado en el arreglo y luego debemos recorrer este string obteniendo substring de largo 2 e ir comparando cada substring con las letras de la patente a buscar. Si coincide con alguno retornamos true, de lo contrario retornamos false. Posible solución: public boolean buscar (Patente patente ) { int num = patente. obtNumero (); String letras = patente . obtLetras (); String validas = tabla [ num ]; if( validas != null ){ int largo = validas . length (); int k = 1; while (k < largo ) { if ( letras . equals ( validas . substring (k - 1, k + 1))) return true; k = k + 2; } } return false ; } Ahora: 1. Crea un proyecto nuevo en NetBeans. 2. Transcribe el código que se encuentra líneas arriba. 3. Identifica los errores en el código. 4. Con comentarios (// o /*, */) documenta los errores encontrados y realiza las correcciones necesarias para que el programa pueda funcionar correctamente. 5. Una vez corregido el código, ejecuta el programa. 6. Si la ejecución ha sido correcta guarda el archivo con los comentarios realizados. 7. Documenta el código explicando de forma breve pero concisa las partes del mismo donde se ha empleado algún método de ordenación, señala de forma puntual qué método de ordenación se ha empleado y por qué. 8. Guarda la actividad con el nombre DEDA_U2_A2_XXYZ. Sustituye las XX por las dos primeras letras de tu primer nombre, la Y por la inicial de tu primer apellido y la Z por la inicial de tu segundo apellido. 9. Envía a tu facilitador(a) tu actividad para recibir retroalimentación. 10. Consulta los criterios de evaluación de la actividad.

DEDA_U2_A2 Actividad 2. Identificación de errores en métodos de ordenación public class DEDA_U2_A2{ public static void main(String[] args) { Metodo(); } static void Metodo() { System.out.println("Actividad 2"); System.out.println("Guillermo Duran"); System.out.println("AL12524075"); System.out.println("Patentes Almacenadas"); System.out.println("PL7812"); System.out.println("MB7812"); System.out.println("RC2345"); System.out.println("JK2345"); System.out.println("DW2345"); System.out.println("Se va a buscar la patente PL7812"); Buscar("PL", 7812); System.out.println("Se va a buscar la patente PL7832"); Buscar("PL", 7832); System.out.println("Se va a buscar la patente MB7812"); Buscar("MB", 7812); System.out.println("Se va a buscar la patente RC7812"); Buscar("RC", 7812); System.out.println("Se va a buscar la patente DW2345"); Buscar("DW", 2345); } /* Se creo el metodo buscar que solicita como parametros las letras y el numero de la patente para con ellos buscarla en el registro de patentes permitidas para estacionarse */ static void Buscar(String letrasM, int numeroM) { Patente objP = new Patente(letrasM, numeroM); TablaDePatentes objTP = new TablaDePatentes(); boolean Ban = objTP.buscar(objP); if(Ban == true) { System.out.println("Permitido estacionarse"); } else {

System.out.println("No se encontro el registro"); } objP = null; objTP = null; } } /*Patente.java*/ package deda_u2_a2; public class Patente { private String letras; private int numero; /* Se agregaron variables de entrada al constructor de la clase para que al momento de ser solicitadas por la clase TablaDePatente estas ya tubieran un valor asignado. */ public Patente (String letrasM, int numeroM) { letras = letrasM; numero = numeroM; } public String obtLetras() { return letras; } public int obtNumero() { return numero; } } /*TablaDePatentes.java*/ package deda_u2_a2; public class TablaDePatentes { private String[] tabla; /* Se agregraron al arreglo los valores del ejemplo de la unidad en el constructor para pudieran ser buscados Las patentes agregadas fueron: PL7812 MB7812 RC2345 JK2345 DW2345 */ public TablaDePatentes() { tabla = new String [9999];

tabla[7812] = "PLMB"; tabla[2345] = "JKRCDW"; } public boolean buscar (Patente patente ) { int num = patente. obtNumero(); String letras = patente.obtLetras(); String validas = tabla[num]; if( validas != null ){ int largo = validas.length(); int k = 1; while (k < largo ) { if ( letras.equals ( validas.substring (k - 1, k + 1))) return true; k = k + 2; } } return false; } }

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF