Вы находитесь на странице: 1из 6

UNADM

Actividad 2. Identifcacin
de errores en mtodos de
ordenacin
Estructura
de datos
Guillermo
Duran Garcia
AL12524!5
Actividad 2. Identificacin de errores en mtodos
de ordenacin.
La siguiente actividad te permitir identificar errores en la codificacin de un caso
prctico en el que se han utilizado mtodos de ordenacin.
Caso: Patentes
Las antiguas patentes (de automviles) por e!emplo PL"#$% estn compuestas
por un string de dos caracteres en el e!emplo PL & por un n'mero entero de
cuatro d(gitos en el e!emplo "#$%. )uponga que e*ista una clase Patente & otra
+a,la-ePatentes de la siguiente forma:
pu,lic class Patente .
private )tring letras /
private int numero /
pu,lic Patente () .0
pu,lic )tring o,tLetras () . return letras / 0
pu,lic int o,t1umero () . return numero / 0
0
pu,lic class +a,la-ePatentes .
private )tring 23 ta,la /
pu,lic +a,la-ePatentes () . ta,la 4 ne5 )tring 266663/ 0
pu,lic ,oolean ,uscar (Patente patente ) .0
otros mtodos
0
La idea es que +a,la-ePatentes almacena en el atri,uto ta,la todas las patentes
autorizadas a estacionarse en el campus )an 7oaqu(n. 8n particular si la patente
PL"#$% est autorizada entonces ta,la 2"#$%3 4 99PL:: & si la patente 7;%<=> est
autorizada entonces ta,la 2%<=>3 4 997;::. ?dems si dos o ms patentes
autorizadas tienen el mismo n'mero entonces sus pares de letras aparecen
consecutivamente en el string correspondiente de ta,la. Por e!emplo si las
patentes PL"#$% & @A"#$% estn autorizadas entonces ta,la 2"#$%3 4 99PL@A::/ &
si las patentes 7;%<=> BC%<=> & -C%<=> estn todas autorizadas entonces
ta,la 2%<=>3 4 997;BC-C::.
8scri,a el mtodo ,uscar de la clase +a,la-ePatentes que ,usca rpidamente la
Patente en el atri,uto ta,la & devuelve true (verdadero) si patente est en ta,la &
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 o,tenemos las letras & los
n'meros que la componen. Con el n'mero de la patente o,tenemos lo
almacenado en el arreglo & luego de,emos recorrer este string o,teniendo
su,string de largo % e ir comparando cada su,string con las letras de la patente a
,uscar. )i coincide con alguno retornamos true de lo contrario retornamos false.
Posi,le solucin:
pu,lic ,oolean ,uscar (Patente patente ) .
int num 4 patente. o,t1umero ()/
)tring letras 4 patente . o,tLetras ()/
)tring validas 4 ta,la 2 num 3/
if( validas D4 null ).
int largo 4 validas . length ()/
int E 4 $/
5hile (E F largo ) .
if ( letras . equals ( validas . su,string (E G $ E H $)))
return true/
E 4 E H %/
0
0
return false /
0
?hora:
$. Crea un pro&ecto nuevo en 1etAeans.
%. +ranscri,e el cdigo que se encuentra l(neas arri,a.
<. Identifica los errores en el cdigo.
=. Con comentarios (JJ o JK KJ) documenta los errores encontrados & realiza las
correcciones necesarias para que el programa pueda funcionar correctamente.
>. Lna vez corregido el cdigo e!ecuta el programa.
M. )i la e!ecucin ha sido correcta guarda el archivo con los comentarios
realizados.
". -ocumenta el cdigo e*plicando de forma ,reve pero concisa las partes del
mismo donde se ha empleado alg'n mtodo de ordenacin seNala de forma
puntual qu mtodo de ordenacin se ha empleado & por qu.
#. Ouarda la actividad con el nom,re -8-?PL%P?%PQQRS. )ustitu&e las QQ por
las dos primeras letras de tu primer nom,re la R por la inicial de tu primer apellido
& la S por la inicial de tu segundo apellido.
6. 8nv(a a tu facilitador(a) tu actividad para reci,ir retroalimentacin.
$T. Consulta los criterios de evaluacin de la actividad.
-8-?PL%P?% ?ctividad %. Identificacin de errores en mtodos de
ordenacin
pu,lic class -8-?PL%P?%.

pu,lic static void main()tring23 args) .
@etodo()/
0

static void @etodo()
.
)&stem.out.println(U?ctividad %U)/
)&stem.out.println(UOuillermo -uranU)/
)&stem.out.println(U?L$%>%=T">U)/
)&stem.out.println(UPatentes ?lmacenadasU)/
)&stem.out.println(UPL"#$%U)/
)&stem.out.println(U@A"#$%U)/
)&stem.out.println(UBC%<=>U)/
)&stem.out.println(U7;%<=>U)/
)&stem.out.println(U-C%<=>U)/
)&stem.out.println(U)e va a ,uscar la patente PL"#$%U)/
Auscar(UPLU "#$%)/
)&stem.out.println(U)e va a ,uscar la patente PL"#<%U)/
Auscar(UPLU "#<%)/
)&stem.out.println(U)e va a ,uscar la patente @A"#$%U)/
Auscar(U@AU "#$%)/
)&stem.out.println(U)e va a ,uscar la patente BC"#$%U)/
Auscar(UBCU "#$%)/
)&stem.out.println(U)e va a ,uscar la patente -C%<=>U)/
Auscar(U-CU %<=>)/
0

JK
)e creo el metodo ,uscar que solicita como parametros las letras & el numero de
la patente
para con ellos ,uscarla en el registro de patentes permitidas para estacionarse
KJ
static void Auscar()tring letras@ int numero@)
.
Patente o,!P 4 ne5 Patente(letras@ numero@)/
+a,la-ePatentes o,!+P 4 ne5 +a,la-ePatentes()/
,oolean Aan 4 o,!+P.,uscar(o,!P)/
if(Aan 44 true)
.
)&stem.out.println(UPermitido estacionarseU)/
0
else
.
)&stem.out.println(U1o se encontro el registroU)/
0
o,!P 4 null/
o,!+P 4 null/
0
0
JKPatente.!avaKJ
pacEage dedaPu%Pa%/
pu,lic class Patente .
private )tring letras/
private int numero/

JK
)e agregaron varia,les de entrada al constructor de la clase para que al
momento de ser solicitadas por la clase
+a,la-ePatente estas &a tu,ieran un valor asignado.
KJ
pu,lic Patente ()tring letras@ int numero@) .
letras 4 letras@/
numero 4 numero@/
0
pu,lic )tring o,tLetras() .
return letras/
0
pu,lic int o,t1umero() .
return numero/
0
0
JK+a,la-ePatentes.!avaKJ
pacEage dedaPu%Pa%/
pu,lic class +a,la-ePatentes .
private )tring23 ta,la/
JK
)e agregraron al arreglo los valores del e!emplo de la unidad en el constructor
para pudieran ser ,uscados
Las patentes agregadas fueron:
PL"#$%
@A"#$%
BC%<=>
7;%<=>
-C%<=>
KJ
pu,lic +a,la-ePatentes() .
ta,la 4 ne5 )tring 266663/
ta,la2"#$%3 4 UPL@AU/
ta,la2%<=>3 4 U7;BC-CU/
0

pu,lic ,oolean ,uscar (Patente patente ) .
int num 4 patente. o,t1umero()/
)tring letras 4 patente.o,tLetras()/
)tring validas 4 ta,la2num3/
if( validas D4 null ).
int largo 4 validas.length()/
int E 4 $/
5hile (E F largo ) .
if ( letras.equals ( validas.su,string (E G $ E H $)))
return true/
E 4 E H %/
0
0
return false/
0
0

Вам также может понравиться