Reporte de Estructura de Datos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

Estructura de datos 

Nombre: Brian Alejandro Mendez Bolaños 


Nombre Profesor: Araceli Murcia Garcia 
Unidad: 1 
 
Introducción 
Los algoritmos que presentan este reporte son los siguientes: 

Recorrido:​ este algoritmo es un simple recorrido utilizando un ciclo for. 


Búsqueda:​ Seria lo mismo que un recorrido, con la diferencia de que en este 
algoritmo se está buscando un número en concreto y al encontrarlo se romperá el 
ciclo. 

Inserción:​ sería añadirle un nuevo elemento al arreglo en la última posición.  


Eliminación:​ Primero se utilizará una búsqueda para encontrar el número que se 
desea eliminar y luego eliminarlo para después reducir el arreglo de tal forma que su 
tamaño quede como N-2. 

Corrimiento a la derecha:​ sería desplazar todos los elementos del arreglo a la 
derecha de tal forma que si tenemos el siguiente arreglo {1, 2, 3, 4, 5, 6} al aplicar el 
corrimiento quedaría así {6, 1, 2, 3, 4, 5}. 

Invertir los elementos de un arreglo:​ si tuviéramos el siguiente arreglo {14 ,1, 


5, 7, 2,} al invertir los números nos quedaría así {2, 7, 5, 1, 14}, es necesario advertir que 
no se trata de un algoritmo de ordenamiento. 

Objetivo:​ ​que funcionen los programas


Desarrollo: 
Declaro mi objeto leer para poder introducir los números por teclado y mis variables N 
(almacena el tamaño del arreglo) y Op (almacena la opción elegida del menú) 

Pido por medio una impresión que el usuario ingrese el tamaño del arreglo, para 
después poder crear el arreglo principal y el auxiliar (los 2 arreglos del mismo tamaño) 
Por medio de un for pido que el usuario ingrese los valores del arreglo 

Abro un do para lograr que el menú se repita hasta que el usuario desee salir y la 
opción que elija la almacene en Op y esa variable lo pongo en el switch  

Para el caso 1, pido al usuario que ingrese el número que desea buscar, (aquí tengo que 
explicar algunas cosas que a simple vista uno se pregunta por qué pide al usuario el 
número que desee buscar en vez de incluir esa parte del código dentro del método, 
porque al principio mi mayor limitante era el objeto leer de la clase scanner, ya que no 
sabía qué hacer para que el método logra usar el objeto leer desde el método, ya 
después me di cuenta que si puedo usar el objeto leer si lo paso como cualquier 
parámetro y lo declara de tipo scanner), y después llamó al método buscar y le paso 
por parámetro el arreglo y el número que se está buscando 

Aquí no puedo comentar mucho ya que el mismo código ya se encuentra comentado 


Para el caso 2, es igual, el mismo código ya está comentado 

Para el caso 3, al ser un simple recorrido, se me hace innecesario comentar algo que no 
este ya comentado en el código 
Para el caso 4, igual de lo mismo, solo puedo comentar que los diferentes 
System.out.println(); están puestos durante todo el programa porque eran mi forma 
casera de depurar y saber hasta donde el programa podía compilar 
Para los programas de la 1.2 desde el principio es igual a los anteriores programas lo 
único que cambia son los métodos y el menú 
En un principio con un if pregunto que si contingencia (que es un N-1) al dividirlo 
entre si su residuo es igual a 0 (osea que es número par), que contingencia sea igual a 
la longitud del array entre 2, si no, contingencia será igual a la longitud del arreglo – 1 
y eso entre 2, después con un for voy haciendo los cambios empezando desde la 
última posición 

Auxiliar es igual a la última posición, 

Última posición es igual a la primera posición, 

Primera posición es igual a auxiliar, 

Con disminuye en 1 su valor, por último, imprimo todo el arreglo 


En corrimiento declaró a una variable auxiliar y la igualó al número de la última 
posición, con la ayuda de un for voy invirtiendo las posiciones de los números, de tal 
forma que al final del for quede algo así: {01234}, y al igualar la primera posición con el 
auxiliar quedaría así {51234}, y por último con un for voy imprimiendo todo el array 
Pruebas de ejecución 
Para todos los algoritmos que se refieren a los del 1.1 se usará el siguiente arreglo y 
longitud 7 

Prueba de recorrido 
Prueba de Búsqueda 

Si busco un número que no esté en el arreglo pasara esto 

Prueba de Inserción 
Y si probamos el algoritmo de recorrido, comprobamos que el arreglo está correcto 

Prueba de Eliminación 

Si corremos el recorrido, comprobamos que está todo correcto 

Y si queremos eliminar un número que no está en el arreglo, pasara esto 

Cabe aclarar que si en el menú escogemos una opción que no esté disponible, el 
programa nos indicará que la opción no es válida  
Para los algoritmos del 1.2 se usará el siguiente arreglo y longitud de 7 

Prueba Corrimiento a la derecha 

Y para poner las cosas interesantes aprovecharemos la particularidad de que los 2 


algoritmos comparten el mismo arreglo, entonces probaremos el arreglo como esta en 
el algoritmo de arreglo inverso 

Prueba Arreglo Inverso 

Y sin problema alguno sale todo como debería ser. 

Conclusiones  
Se podría decir que este reporte es completamente innecesario ya que todo el código 
de los algoritmos está comentado y tiene un funcionamiento óptimo al correr los 
algoritmos, oh bueno, eso es lo que pensaba, ya que me di cuenta de que algunas 
partes importantes del código no estaba comentado y al hacer las pruebas de 
ejecución me di cuenta de que los algoritmos de eliminación e inserción estaban mal 
programados en la parte de que si no encontraban un número pedido o simplemente 
no estaba en el arreglo hicieran tal cosa si sucedía el caso, es por eso que en algunas 
capturas si se comparan con el código se verán diferentes, porque fui arreglando esos 
errores en la marcha. 

Reflexiones  
Relajarse, concentrarse, tratar de no frustrarse si un algoritmo no sale ya que no será el 
fin del mundo y que, si tenemos la mente nublada, no se lograra nada. 

También podría gustarte