84
DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA INSTITUTO TECNOLÓGICO DE SALINA CRUZ Materia: Organización y Estructura de Datos Docente: M.C Susana Mónica Román Nájera Alumno: Eric Randy Martínez Mateo Carrera: ING.EN TIC´S Grado: 3° Grupo: E Reporte de práctica: Unidad: 3 Estructuras no lineales Numero de práctica: 1

Unidad3

  • Upload
    eric-m

  • View
    81

  • Download
    1

Embed Size (px)

Citation preview

DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

Materia:Organización y Estructura de Datos

Docente:M.C Susana Mónica Román Nájera

Alumno: Eric Randy Martínez Mateo

Carrera: ING.EN TIC´S

Grado: 3° Grupo: E

Reporte de práctica:

Unidad: 3Estructuras no lineales

Numero de práctica: 1

Fecha: 22/11/2014

Instrucciones:

Objetivo:

Aplicar las principales estructuras de datos no lineales.

Materiales:

Los materiales que se ocuparon para realizar el dicho programa fueron, aportaciones de la M.C Susana Mónica Román Nájera, así como también PDF que nos proporcionó la Profa. Y el software de NetBeans que ocupe para realizar el programa.

Desarrollo de la práctica.

Menú de la practica 1 Factorial recursiva y Factorial iterativa.

Ventana de la factorial de un número por el método recursivo.

Ventana de la factorial de un número por el método iterativo.

Nos abre una ventana donde podemos realizar la factorial de un número por el método recursivo.

Nos abre una ventana donde podemos realizar la factorial de un número por el método iterativo.

Nos permite ingresar un número en un jpanel para calcular la factorial.

Borra el resultado para volver a calcular la factorial.

Nos regresa al menú principal.

Nos muestra el resultado en factorial del número ingresado.

Nos permite ingresar un número en un jpanel para calcular la factorial.

Borra el resultado para volver a calcular la factorial.

Nos regresa al menú principal.

Nos muestra el resultado en factorial del número ingresado.

Códigos del programa.

Código del menú.

Codigos de factorial recursivo.

Códigos de factorial iterativa.

Resultado al ejecutar el código de factorial recursiva.

Resultado al ejecutar el código de factorial iterativa.

Ingresamos el numero 5 Resultado

Ingresamos el numero 6 Resultado

Conclusión

Se crearon 3 jframe para crear la interface del menú, y los otros 2 para la factorial tanto recursivo como iterativo, en el menú tenemos la opción de elegir que método queremos ocupar para calcular la factorial de un número.

DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

Materia:Organización y Estructura de Datos

Docente:M.C Susana Mónica Román Nájera

Alumno: Eric Randy Martínez Mateo

Carrera: ING.EN TIC´S

Grado: 3° Grupo: E

Reporte de práctica:

Unidad: 3Estructuras no lineales

Numero de práctica: 2

Fecha: 22/11/2014

Instrucciones:

El producto de 2 números naturales

A) Producto recursivoB) Producto iterativo

Objetivo:

Aplicar las principales estructuras de datos no lineales.

Materiales:

Los materiales que se ocuparon para realizar el dicho programa fueron, aportaciones de la M.C Susana Mónica Román Nájera, así como también PDF que nos proporcionó la Profa. Y el software de NetBeans que ocupe para realizar el programa.

Desarrollo de la práctica.

Código del menú

Producto iterativo

Producto recursivo

Resultado al ejecutar el código.

Conclusión

El producto de 2 N°, se crearon 3 clases, donde la clase principal está el menú donde mandamos a llamar el productoiterativo y el productorecursivo y nos da la opción de que método queremos elegir, hay dos métodos el recursivo e iterativo en una clase cada uno, donde también nos da la opción de ingresar un numero desde el teclado para obtener el producto.

DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

Materia:Organización y Estructura de Datos

Docente:M.C Susana Mónica Román Nájera

Alumno: Eric Randy Martínez Mateo

Carrera: ING.EN TIC´S

Grado: 3° Grupo: E

Reporte de práctica:

Unidad: 3Estructuras no lineales

Numero de práctica: 3

Fecha: 22/11/2014

Instrucciones:

Calculo de la serie de Fibonacci

A) Serie de Fibonacci recursivoB) Serie de Fibonacci iterativo

Objetivo:

Aplicar las principales estructuras de datos no lineales.

Materiales:

Los materiales que se ocuparon para realizar el dicho programa fueron, aportaciones de la M.C Susana Mónica Román Nájera, así como también PDF que nos proporcionó la Profa. Y el software de NetBeans que ocupe para realizar el programa.

Desarrollo de la práctica.

Menú de la practica 3 serie de Fibonacci recursiva e iterativa.

Ventana de la factorial de un número por el método recursivo.

Ventana de la factorial de un número por el método iterativo.

Nos abre una ventana donde podemos realizar la serie de Fibonacci recursivo.

Nos abre una ventana donde podemos realizar la serie de Fibonacci iterativo.

Cierra el programa.

Nos abre un panel donde podremos agregar un número para calcular la serie.

Borra el área de texto.

Nos regresa al menú principal.

Nos muestra el resultado de la serie.

Nos abre un panel donde podremos agregar un número para calcular la serie.

Borra el área de texto.

Nos regresa al menú principal.

Nos muestra el resultado de la serie.

Códigos del programa.

Código del menú.

Fibonacci recursivo

Fibonacci iterativo:

Resultado al ejecutar el código recursiva.

Resultado al ejecutar el código de factorial iterativa.

Conclusión

Se crearon 3 jframe para crear la interface del menú, y los otros 2 para la serie de Fibonacci tanto recursivo como iterativo, en el menú tenemos la opción de elegir que método queremos ocupar para calcular la serie de Fibonacci.

Ingresamos el numero 9 Resultado

Ingresamos el numero 6 Resultado

DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

Materia:Organización y Estructura de Datos

Docente:M.C Susana Mónica Román Nájera

Alumno: Eric Randy Martínez Mateo

Carrera: ING.EN TIC´S

Grado: 3° Grupo: E

Reporte de práctica:

Unidad: 3Estructuras no lineales

Numero de práctica: 4

Fecha: 22/11/2014

Instrucciones:

Calcule el máximo común divisor de un numero con el método recursivo.

Objetivo:

Aplicar las principales estructuras de datos no lineales.

Materiales:

Los materiales que se ocuparon para realizar el dicho programa fueron, aportaciones de la M.C Susana Mónica Román Nájera, así como también PDF que nos proporcionó la Profa. Y el software de NetBeans que ocupe para realizar el programa.

Desarrollo de la práctica:

Conclusión

El máximo común divisor, se crea una clase y se crea el método mcd por recursividad donde nos retorna mcd, también tenemos la opción de ingresar el número que nosotros queramos.

DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

Materia:Organización y Estructura de Datos

Docente:M.C Susana Mónica Román Nájera

Alumno: Eric Randy Martínez Mateo

Carrera: ING.EN TIC´S

Grado: 3° Grupo: E

Reporte de práctica:

Unidad: 3Estructuras no lineales

Numero de práctica: 5

Fecha: 22/11/2014

Instrucciones:

Torres de Hanói por el método recursivo

Objetivo:

Aplicar las principales estructuras de datos no lineales.

Materiales:

Los materiales que se ocuparon para realizar el dicho programa fueron, aportaciones de la M.C Susana Mónica Román Nájera, así como también PDF que nos proporcionó la Profa. Y el software de NetBeans que ocupe para realizar el programa.

Desarrollo de la práctica:

Códigos del programa.

Nos muestra un panel donde podremos agregar el número de discos.

Borra el resultado.

Nos muestra los movimientos en el área de texto.

Resultado al ejecutar el código:

Conclusión

Se creó un jframe donde tenemos la opción de ingresar n números de discos de la torre de Hanói y nos muestra los movimientos en el área de texto.

DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

Materia:Organización y Estructura de Datos

Docente:M.C Susana Mónica Román Nájera

Alumno: Eric Randy Martínez Mateo

Carrera: ING.EN TIC´S

Grado: 3° Grupo: E

Reporte de práctica:

Unidad: 3Estructuras no lineales

Numero de práctica: 6

Fecha: 22/11/2014

Instrucciones:

Operaciones aritméticas con recursividad

A) SumaB) RestaC) ProductoD) División

Objetivo:

Aplicar las principales estructuras de datos no lineales.

Materiales:

Los materiales que se ocuparon para realizar el dicho programa fueron, aportaciones de la M.C Susana Mónica Román Nájera, así como también PDF que nos proporcionó la Profa. Y el software de NetBeans que ocupe para realizar el programa.

Desarrollo de la práctica:

Código del menú:

Suma:

Resta:

Multiplicación:

División:

Resultado al ejecutar el código:

Conclusión:

Se aplica la recursividad en las operaciones aritméticas con es la suma , la resta, la multiplicación, la división de 2 números se crean este método en la clase de cada una de las operaciones y se mandan a llamar en el menú donde ingresamos la opción de que operación deseamos realizar.

DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

Materia:Organización y Estructura de Datos

Docente:M.C Susana Mónica Román Nájera

Alumno: Eric Randy Martínez Mateo

Carrera: ING.EN TIC´S

Grado: 3° Grupo: E

Reporte de práctica:

Unidad: 3Estructuras no lineales

Numero de práctica: 7

Fecha: 22/11/2014

Instrucciones:

Hacer un menú donde calcule lo siguiente:

A) Calcule el X ^nB) FactorialC) Producto de 2 N°

Objetivo:

Aplicar las principales estructuras de datos no lineales.

Materiales:

Los materiales que se ocuparon para realizar el dicho programa fueron, aportaciones de la M.C Susana Mónica Román Nájera, así como también PDF que nos proporcionó la Profa. Y el software de NetBeans que ocupe para realizar el programa.

Desarrollo de la práctica:

Menu :

Calculo X^n

Factorial de un número:

Producto de 2 números naturales:

Resultado al ejecutar el código:

Conclusión:

Se crea en la clase principal un menú donde mandamos letrero en consola de que opción desean realizar y manda a llamar la clase de la que seleccionamos, se crean otras tres clases donde cada una tiene un método recursivo de la potencia de un número que también tenemos la opción de ingresar un número y a que potencia la queremos elevar ingresando el dato desde el teclado, el factorial ingresamos un numero desde el teclado y también del producto tenemos la opción de ingresar los números que queremos obtener el producto.

DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

Materia:Organización y Estructura de Datos

Docente:M.C Susana Mónica Román Nájera

Alumno: Eric Randy Martínez Mateo

Carrera: ING.EN TIC´S

Grado: 3° Grupo: E

Reporte de práctica:

Unidad: 3Estructuras no lineales

Numero de práctica: 8

Fecha: 22/11/2014

Instrucciones:

Realizar un programa que calcule el triángulo de pascal por el método recursivo.

Objetivo:

Aplicar las principales estructuras de datos no lineales.

Materiales:

Los materiales que se ocuparon para realizar el dicho programa fueron, aportaciones de la M.C Susana Mónica Román Nájera, así como también PDF que nos proporcionó la Profa. Y el software de NetBeans que ocupe para realizar el programa.

Desarrollo de la práctica:

Códigos del programa:

Nos muestra un panel donde podremos ingresar un número desde el teclado.

Borra el resultado del área de texto.

Área de texto donde nos muestra el resultado.

Resultado al ejecutar el código:

Conclusión:

Creamos un nuevo proyecto y un jframe donde nos muestra el resultado del triángulo de pascal con un método recursivo.

DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

Materia:Organización y Estructura de Datos

Docente:M.C Susana Mónica Román Nájera

Alumno: Eric Randy Martínez Mateo

Carrera: ING.EN TIC´S

Grado: 3° Grupo: E

Reporte de práctica:

Unidad: 3Estructuras no lineales

Numero de práctica: 11

Fecha: 22/11/2014

Instrucciones:

Crear un árbol binario con números

A) Definir N° nodosB) Visualice los recorridos

Objetivo:

Aplicar las principales estructuras de datos no lineales.

Materiales:

Los materiales que se ocuparon para realizar el dicho programa fueron, aportaciones de la M.C Susana Mónica Román Nájera, así como también PDF que nos proporcionó la Profa. Y el software de NetBeans que ocupe para realizar el programa.

Códigos del programa:

Menú:

Resultado al ejecutar el código:

Conclusión:

Se crea una clase donde nos muestra un menú, con las opciones de definir el número de nodos , ingresar los números a los nodos y nos visualiza los recorridos del árbol.

DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

Materia:organización y Estructura de Datos

Docente:M.C. Susana Mónica Román Nájera

Actividad:

Investigación de la unidad 3 recursividad

Unidad:3

Estructuras de datos no lineales

Alumno:

Eric Randy Martínez Mateo

Carrera:

ING.EN TIC´S

Grado: 3° Grupo: E

Salina Cruz, Oaxaca

Indice

Introducción...............................................................................................................................................1

Definición de recursividad...................................................................................................................2

Propiedades de las definiciones o algoritmos recursivos................................................................2

Arboles...................................................................................................................................................3

Cadenas recursivas..............................................................................................................................3

Borrado Recursivos..............................................................................................................................4

Conclusión.........................................................................................................................................5

Otras fuentes consultadas...........................................................................................................6

Introducción

La unidad 3 trata de las estructuras de datos no lineales, nos habla de grafos y árboles. donde veremos las aplicaciones. La programación es muy amplia y detallada, la recursividad es una programación se utiliza para realizar una llamada a una función desde la misma función.

1

Definición de recursividad

Recursión es una técnica de programación en el cual un método puede llamarse a sí mismo.  La recursión es muy interesante y una técnica efectiva en programación ya que puede producir algoritmos cortos y eficientes. Algo es recursivo si se define en términos de sí mismo (cuando para definirse hace mención a sí mismo).  Si la invocación de un subprograma (función o subrutina) se produce desde el propio subprograma se dice que se trata de un subprograma recursivo. Un método recursivo es un método, directa o indirectamente, se hace una llamada a sí mismo. La recursión consiste en el uso de métodos recursivos.

Propiedades de las definiciones o algoritmos recursivos

Un requisito importante para que sea correcto un algoritmo recursivo es que no genere una secuencia infinita de llamadas así mismo. Claro que cualquier algoritmo que genere tal secuencia no termina nunca. Una función recursiva f debe definirse en términos que no impliquen a f al menos en un argumento o grupo de argumentos. Debe existir una "salida" de la secuencia de llamadas recursivas.

Si en esta salida no puede calcularse ninguna función recursiva. Cualquier caso de definición recursiva o invocación de un algoritmo recursivo tiene que reducirse a la larga a alguna manipulación de uno o casos más simples no recursivos.

Un algoritmo recursivo es un algoritmo que expresa la solución de un problema en términos de una llamada a sí mismo. La llamada a sí mismo se conoce como llamada recursiva o recurrente.

Ejemplo:

Funcion factorial(n) var resultado: entero si (n<2) entonces resultado = 1; si no resultado = n * factorial(n-1); fin si

2

retorna resultado;función fin

ArbolesBúsqueda recursivaFunciona de forma similar a la búsqueda binaria recursiva.

Si el árbol el nulo, no se encuentra y devuelve nulo. Si el elemento raíz coincide, devuelve el valor de a. Si el elemento raíz es mayor, se busca en el subárbol izquierdo. Si el elemento raíz es menor, se busca en el subárbol derecho.

árbol: función Buscar (valor árbol : a; valor TipoElemento : e)

Iniciosi a = nulo entonces devolver (nulo) si_no si a.raíz = e entonces devolver(a) si_no si a.raíz > e entoncesBuscar(a.hizq,e) si_noBuscar (a.hder,e) fin_si fin_sifin_si fin_función

Cadenas recursivas

Una función recursiva no necesita llamarse a sí misma de manera directa. En su lugar, puede hacerlo de manera indirecta como en el siguiente ejemplo:

a (formal parameters) b (formal parameters){ {. .b (arguments); a (arguments);. .} /*fin de a*/ } /*fin de b*/

3

Borrado Recursivos1. Se puede simplificar el borrado iterativo utilizando una solución recursiva.2. El procedimiento, en este caso buscaría el nodo y si lo encuentra, lo elimina.3. Caso base.4. Existen dos casos base:

Si el árbol es nulo, el elemento no existe. Si el elemento a borrar no es menor ni mayor que el elemento raíz (si se

encuentra), se borra el nodo.1. Caso general.2. Dos llamadas recursivas:

Si el elemento a borrar es menor que el raíz, hay que borrar en el subárbol izquierdo.

Si el elemento a borrar es mayor que el raíz, hay que borrar en el subárbol derecho.

1. El borrado del nodo sólo presentaría tres casos:2. Si es una hoja: el predecesor sería nulo (figura A de la dispositiva siguiente).3. Si tiene un único subárbol, el predecesor tendrá que apuntar al único hijo de dicho

árbol (figura B de la dispositiva siguiente).4. Si tiene dos hijos, se redistribuyen los nodos para que los nodos

Restantes mantengan la estructura de árbol binario se búsqueda: Se sube a la posición del nodo a borrar, el contenido del nodo del elemento

mayor del subárbol izquierdo. Se elimina el nodo situado más a la derecha del subárbol izquierdo (el que se ha

subido). Para este proceso se realizará una llamada a otro procedimiento recursivo que

sustituirá el valor del nodo a borrar.

4

ConclusiónAplicar la recursividad en las estructuras de datos no lineales en árboles y grafos. Para la elaboración de este trabajo, es una recopilación de varias páginas web analizadas y comprendidas para elaborar esta investigación, esperando que re una la información necesaria para la comprensión del tema.

Aunque la recursividad no es una estructura de datos, sino una técnica para la programación.

5

Otras fuentes consultadas

Estructuras no lineales. Fecha 2000. En línea. Página consultada el 20/octubre/2014. Disponible en:

http://estr-org-datos.wikispaces.com/ESTRUCTURAS+NO+LINEALES

Monografias.com. fecha 20/octubre/2014. En linea. Pagina consultada el 20/octubre/2014. Disponible en:

http://www.monografias.com/trabajos14/recursividad/recursividad.shtml#ixzz3GkF9t9EW

Blogspot Unidad 3 recursividad. Fecha 2014. En línea. Página consultada el 20/octubre/2014. Disponible en:

http://estructura-u1.blogspot.mx/2010/01/unidad-3-recursividad.html

NAVAS, J. fecha 14/enero/2014. En linea. Pagina consultada el 20/octubre/2014. Disponible en:

http://es.wikipedia.org/wiki/Algoritmo_recursivo

Java. Fecha 2010. Internet. En línea. Página consultada el 20/octubre/2014. Disponible en:

http://www.javaya.com.ar/detalleconcepto.php?codigo=123&inicio=40

6

DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

Materia:organización y Estructura de Datos

Docente:M.C. Susana Mónica Román Nájera

Actividad:

Actividades realizadas en el salón

Unidad:3

Estructuras de datos no lineales

Alumno:

Eric Randy Martínez Mateo

Carrera:

ING.EN TIC´S

Grado: 3° Grupo: E

Salina Cruz, Oaxaca