Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Laboratorio de Computación
Salas A y B
Tista García Edgar M.I.
Profesor:
Grupo: 3
No de Práctica(s): 3
No. de Equipo de 21
cómputo empleado:
Semestre: 2019-2
Observaciones:
CALIFICACIÓN: ________________
Contenido
Objetivo: ................................................................................................................. 3
Introducción: ........................................................................................................... 3
Desarrollo: .............................................................................................................. 3
Solución: ............................................................................................................. 4
Observaciones: ................................................................................................... 5
Solución: ............................................................................................................. 6
Observaciones: ................................................................................................... 6
Ejercicio 3. .......................................................................................................... 8
Observaciones: ................................................................................................... 8
Ejercicio 4.- Elabora una clase para el manejo de fechas que tenga los siguientes
métodos ......................................................................................................................... 9
Observaciones: ................................................................................................... 9
Conclusión ........................................................................................................... 11
Bibliografía ........................................................................................................... 12
2
Objetivo: Utilizar bibliotecas propias del lenguaje para realizar algunas
tareas comunes y recurrentes.
Introducción:
Pero ¿Por qué tenemos que usar algo ya hecho, no ese es el sentido de la
programación? Si y no, hacer nuevas funcionalidades es la esencia de la
programación, pero no vas a escribir bit por bit el código, entonces porque no
usas herramientas que te ayudaran a crear herramientas aun mas
poderosas.
Esta práctica esta contemplada para comprender las bases del manejo de la
biblioteca y con ello lo que implica. Siendo los métodos , estructuras que
estos proveen, las herramientas que se han de utilizar para la realización de
los programas de esta práctica y las subsecuentes.
Desarrollo:
Ejercicios previos (análisis de diferencia entre la práctica suministrada
por la división contra la teoría instruida por el profesor):
3
Hashtable No Si
Biblioteca Math No Si
Solución:
La implementación que encontré fue crear una clase Pila que en secuencia contiene
todos los métodos necesarios para que funcione. Use Private en las variables propias de
la pila , para que desde otra clase no pudieran ser modificadas y mantener la integridad de
la estructura.
Designe que la pila tuviera un constructor que solo fuera pasado como parámetro el
tamaño de la pila, podría haber dejado que el tamaño de ella fuera variable de acuerdo a
los elementos que se le fueran agregados, pero para efectos prácticos, con designar una
cantidad especifica el usuario es suficiente.
Todos los métodos que se implementan en esta clase son de acceso público , para
poder ser utilizada la pila.
Para esta implementación designe tres pilas de tamaño fijo, para no ofuscar más el
código. No se uso una función externa, proveniente de la biblioteca.
4
Observaciones:
No existió alguna complicación, lo único que falto en este programa es el uso de
excepciones, siendo para isEmpty() y IsFull() muy necesarias, además de para pop()
donde no es posible indicarle que ya esta vacía a la clase principal.
Evidencias de implementación
5
Ejercicio 2. Arreglos irregulares
A. Escribe una clase que permita la creación de arreglos irregulares
B. En dicha clase deberá haber un método para crear el arreglo irregular, solicitando
al usuario la cantidad de renglones y la cantidad de columnas por renglón
C. También habrá un método para imprimir el arreglo, dicho método deberá ser
genérico y funcionar para cualquier tamaño de arreglo irregular
Solución:
El texto del ejercicio decía claramente que se tenia que implementar un método para
la creación de arreglos irregulares y de la cual su citan 2 razones a consideración:
Yo opte por la segunda opción, para poder esta jugando con los arreglos irregulares
y probar su funcionalidad, y creo que ese es el objetivo de cada programa , podría
haber usado la consideración 1 para crear un clase , que se llamara
Arreglo_irregular pero no es necesario, solo habría de mover el constructor y usar
la declaración que se muestra en la ilustración 3, y a través de usar this asignarle
los renglones por columna. Si hay alguna penalización por mi objeción de no usar la
consideración 1, aquí queda justificada mi razón de usar la razón 1.
Observaciones:
Al jugar con el código de esta práctica me he percatado que es posible hacer
arreglos de mayores dimensiones que N=2 , además de poder crear arreglos, asignarle
valores y posteriormente darle esos arreglos llenos al arreglo irregular, si lo vemos con
isomorfismo de objetos, este arreglo irregular es un arreglo de arreglos “Especial”.
6
Evidencias de implementación
7
Integer wrap = Integer.ValueOf("1100"); ..... (14)
Ejercicio 3.
En una nueva clase agrega las 15 líneas indicadas previamente y realiza en el reporte
los comentarios de lo que te parezca relevante, si lo deseas puedes modificar el código
para conocer más a detalle el funcionamiento de las clases envolventes.
Evidencias de implementación:
Observaciones:
• Tomando como referencia la ilustración 5 podemos apreciar que existen 2 errores
dados las siguientes circunstancias:
8
o El primero “ 10” es porque existe un espacio en la función, y el valor queda
afuera de su rango
o En la Ilustración 6 se ejecuta el programa comentando las líneas que dan
positivo al error, lo que da como resultado la impresión en pantalla del
numero “83”
o En la Ilustración 6 se aprecia como al quitar el comentario de su línea
aparece un error que esta asociado a la variable S ya que anteriormente esta
declarada, lo único que hice fu cambiarle el nombre por Si, imprimiendo esta
variable como 10 en pantalla.
• En este programa es posible observar los errores más comunes de transformación
dados por un espacio, un tipo incompatible, además de la posibilidad de no solo
transformar una cadena a base 10 , sino que es posible a otras bases (2,8,16)
Observaciones:
“El tiempo Epoch es la hora actual medida en número de segundos desde el Epoch Unix.
Epoch 0 es enero 1 1970 00:00:00 GMT (ISO 8601: 1970-01-01T00:00:00Z). No se usan
segundos bisiestos en el tiempo Unix”. (Misja, 28)
Para resolver este problema se modelo, una clase que contiene los 3 métodos , 2
constructores que consiste en que se puede crear un objeto Fecha pasando como
parámetro una cadena como se muestra en la ilustración 10 donde se creean 2 objetos ,
pasando como parámetro la fecha inscrita en texto.
9
Para la creación de los objetos, mee tome la libertada de cambiar el formato de creación de
fechas. El formato indicado era : dd//mm//yy, pero yo lo cambie con el formato dd//mm//yy
por razón de que se quisiera ingresar por ejemplo 2070, epoch mostraría que las diferencia
sería de menos de 1 año cuando no es así. Por lo anterior dicho me tome la libertad de
modificar un poco el escrito.
El programa no tiene la precisión total , como sería los días con 31 días y el de 28, pero yo
creo que este ejercicio es para que podamos demostrar el uso de conversiones de tipos y
su manejo, y en este caso ya usando una clase, si lo vemos en el sentido más estricto, sería
usar la bibliotecas de Java.
Una posible modificación futura es la inclusión de excepciones, para el caso de que el que
use el programa no tenga permitido la introducción de fechas negativas, y posiblemente
crear colecciones para tener más precisión entre fechas.
10
Conclusión
Ya teniendo más tiempo para realizar la práctica, más descansado las ideas
fluyen sin necesidad de forzar la obtención del resultado “correcto de la práctica”,
sino que es obtener resultados que cumplan los estándares de formación de los
ingenieros (conocimiento).
A mi consideración creo que las prácticas deben ser con más código
proporcionado con ejemplos para moverle y jugar con el código, esa idea me parece
más apropiada para el aprendizaje de programación, ya que cuando el código esta
en una hoja y el propósito es copiarlo, pegarlo , verificar si lo escribiste bien, es una
práctica que sólo quita tiempo en copiar código.
Sería una mejor práctica que el código tenga multitud de variantes para ver
lo que es posible hacer en su sección “para confundir a la gente”. O otra práctica
didáctica sería proporcionar código ofuscado que sólo nos hace desarrollar una
mejor lógica, por ejemplo que la hoja de ejercicios diga lo que tiene que hacer el
programa , y el código lo cumpla, pero con errores lógicos o que este ofuscado su
comprensión y nuestro deber es corregirlo. Desarrollas lógica y durante el
transcurso de la misma práctica se notará el dominio del lenguaje.
11
códigos y para fines didácticos me parece una excelente idea de implementación
en el salón de prácticas.
Para concluir, puedo decir que esta práctica contiene el nivel justo de
dificultad para ir de acuerdo con la teoría y los ejercicios siguen la misma métrica.
Bibliografía
Misja. (2019 de 02 de 28). epochconverter. Obtenido de https://www.epochconverter.com/
12