You are on page 1of 2

Actividad 2.

Identificacin de errores en un mtodo de bsqueda

Caso: Patentes

Las antiguas patentes (de automviles), por ejemplo PL7812, estn compuestas por un
string de dos caracteres, en el ejemplo PL, y por un nmero entero de cuatro dgitos, 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 mtodos
}

La idea es que TablaDePatentes almacena en el atributo tabla todas las patentes


autorizadas a estacionarse en el campus San Joaqun. En particular, si la patente PL7812
est autorizada, entonces tabla [7812] = PL, y si la patente JK2345 est autorizada,
entonces tabla [2345] = JK. Adems, si dos o ms patentes autorizadas tienen el mismo
nmero, entonces sus pares de letras aparecen consecutivamente en el string
correspondiente de tabla. Por ejemplo, si las patentes PL7812 y MB7812 estn autorizadas,
entonces tabla [7812] = PLMB; y si las patentes JK2345, RC2345 y DW2345 estn todas
autorizadas, entonces tabla [2345] = JKRCDW.

Escriba el mtodo buscar de la clase TablaDePatentes, que busca rpidamente la Patente


en el atributo tabla, y devuelve true (verdadero) si patente est en tabla, y false (falso) en
caso contrario.

Criterios de solucin:

Lo primero que tenemos que hacer es declarar el mtodo como nos indican en el enunciado.
Luego, con los mtodos de la clase Patente, obtenemos las letras y los nmeros que la
componen. Con el nmero 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 solucin:

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 ;
}

En el desarrollo de esta actividad aprenders, a travs de un ejemplo dividido en clases,


cmo trabaja y se utiliza un mtodo de bsqueda para seleccionar datos especficos.
Adems, identificars errores de lgica y de sintaxis en el cdigo de bsqueda de un
ejemplo. Para comenzar, realiza lo siguiente:

1. Analiza el caso que te proporcione tu Docente en lnea e identifica el mtodo de


bsqueda que se utiliza.

2. Posteriormente, crea un proyecto nuevo en NetBeans y transcribe, sin modificacin, el


cdigo que recibiste en el caso.

3. Identifica los errores de codificacin en el proyecto de NetBeans.

4. Con comentarios (// o /*, */) documenta lo que realiza cada clase y/o mtodo, al igual
que los errores encontrados. Aplica las correcciones necesarias para que el programa
pueda funcionar correctamente.

5. Una vez corregido el cdigo, ejecuta el programa.

6. Una vez que obtengas la ejecucin correcta, guarda el proyecto en una carpeta
comprimida que contenga los archivos java con los comentarios realizados.

7. En un archivo de texto identifica el mtodo de bsqueda que se ha aplicado en el cdigo,


explica si este mtodo de bsqueda es el ms adecuado para el caso planteado 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. Consulta los Criterios de evaluacin de la actividad.

10. Enva a tu Docente en lnea la actividad para recibir retroalimentacin mediante la


herramienta Tarea.

You might also like