Upload
eric-m
View
169
Download
5
Embed Size (px)
Citation preview
Dirección General de Educación Superior TecnológicaINSTITUTO TECNOLÓGICO DE SALINA CRUZ
TEMA:
UNIDAD 1-DEFINICION Y CLASIFICACION DE FUNDAMENTOS DE ESTRUCTURA DE DATOS
ACTIVIDAD:
INFORME DE LA INVESTIGACIÓN DOCUMENTAL SOBRE DEFINICIÓN Y LOS TIPOS DE ESTRUCTURAS
FACILITADOR:
M.C. SUSANA MONICA ROMAN NAJERA
NOMBRE DE LA ALUMNO:
ERIC RANDY MARTINEZ MATEO
SEMESTRE: 3º GRUPO: 3E
CARRERA: ING. EN TIC`S
SALINA CRUZ, OAXACA
Índice
Introducción:......................................................................................................................................1
Definición de estructuras de datos:.................................................................................................2
Clasificación de fundamentos de estructuras de datos:...................................................................3
Conclusión:................................................................................................................................5
Otras fuentes consultadas:......................................................................................................6
Introducción:
Daremos a conocer los diferentes tipos del estructuras y las formas en las que eta organizada cada
uno, cada tipo de estructura está relacionado. En este trabajo explicara la definición y la
clasificación de las estructuras de datos, esperando que el tema sea de ayuda para la comprensión
del tema.
1
Definición de estructuras de datos: Es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su
manipulación un dato elemental, es la mínima información que se tiene en un sistema.
Cualquier estructura de datos está diseñado para organizar los fatos para satisfacer un
propósito para que pueda ser accedido y trabajando en forma apropiada.
En programación, una estructura de datos es una forma de organizar un conjunto de datos
elementales con el objetivo de facilitar su manipulación. Un dato elemental es la mínima
información que se tiene en un sistema.
Una estructura de datos define la organización e interrelación de éstos y un conjunto de
operaciones que se pueden realizar sobre ellos. Las operaciones básicas son:
* Alta, adicionar un nuevo valor a la estructura.
* Baja, borrar un valor de la estructura.
* Búsqueda, encontrar un determinado valoren la estructura para realizar una operación con
este valor, en forma secuencial o binario (siempre y cuando los datos estén ordenados).
Otras operaciones que se pueden realizar son:
*Ordenamiento, de los elementos pertenecientes a la estructura.
* Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las
apareadas.
Cada estructura ofrece ventajas y desventajas en relación a la simplicidad y eficiencia para
la realización de cada operación. De esta forma, la elección de la estructura de datos
apropiada para cada problema depende de factores como la frecuencia y el orden en que se
realiza cada operación sobre los datos.
2
Clasificación de fundamentos de estructuras de datos:Una estructura de datos es una clase de datos que se puede caracterizar por su organización
y operaciones definidas sobre ella. Algunas veces a estas estructuras se les llama tipos de
datos.
En ellas encontramos las siguientes:
Tipos dinámicos.
Dentro de esta categoría entra solamente el tipo puntero. Este tipo te permite
tener un mayor control sobre la gestión de memoria en tus programas.
Con ellos puedes manejar el tamaño de tus variables en tiempo de ejecución, o sea,
cuando el programa se está ejecutando. Los punteros quizás sean el concepto
más complejo a la hora de aprender un lenguaje de programación.
Tipos estáticos
Casi todos los tipos de datos son estáticos, la excepción son los
Punteros. Que un tipo de datos sea estático quiere decir que el tamaño que
Ocupa en memoria no puede variar durante la ejecución del programa. Es decir,
Una vez Declarada una variable de un tipo determinado, a ésta se le asigna un
Trozo de memoria fijo, y este trozo no se podrá aumentar ni disminuir.
Tipos simples
Como su nombre indica son los tipos básicos. Son los más sencillos y los más
fáciles de aprender. Los tipos simples más básicos son:
entero, lógico, carácter y real. Y la mayoría de los lenguajes de programación los soportan,
no como ocurre con los estructurados que pueden variar de un lenguaje a otro.
3
Estructuras lineales y no lineales
Se pueden con binar de varias maneras para formar estructuras de datos más complejas. Las
2 clases principales de estructura de datos complejas son:
Pilas, colas y listas de enlace.
Estructuras lógicas de datos:
En un programa, cada variable pertenece a alguna estructura de datos explícita o
implícitamente definida, la cual determina el conjunto de operaciones validas para ella. Las
estructuras de datos que se discuten aquí son estructuras de datos lógicas. Cada estructura
de datos lógica puede tener varias representaciones físicas diferentes para sus
almacenamientos posibles.
Lineales:
Las estructuras de datos simples se pueden combinar de varias maneras para formar
estructuras más complejas. Las dos cases principales de estructuras de datos son las lineales
y las no lineales, dependiendo de la complejidad de las relaciones lógicas que representan.
Las estructuras de datos lineales incluyen pilas, colas y listas ligadas lineales. Las
estructuras de datos no lineales incluyen grafos y árboles.
4
Conclusión:El trabajo realizado es una recopilación de distintas páginas web analizadas y recopilada en
una sola información para la comprensión del compañero estudiante, espero que dicho
trabajo haya dejado explicado el tema de estructura de datos como su definición y su
clasificación.
5
Otras fuentes consultadas:
Fundamentos de estructuras de datos. Sin fecha. En línea. Disponible en:
http://estr-org-datos.wikispaces.com/FUNDAMENTOS+DE+ESTRUCTURA+DE+DATOS
authorstream.com. 16/02/2012. en linea. Disponible en:
http://www.authorstream.com/Presentation/tomyto23-525573-fundamento-de-estructura-datos-unidad-i/
buenas tareas. oct/201. en línea. Disponible en:
http://www.buenastareas.com/ensayos/Fundamentos-De-Estructuras-De-Datos/2959751.html
el rincón de vago. sin fecha. en línea. Disponible en:
http://html.rincondelvago.com/estructura-de-datos_11.html
pdf. Sin fecha. Disponible en:
http://ocw.upm.es/ciencia-de-la-computacion-e-inteligencia-artificial/fundamentos-programacion/contenidosteoricos/ocwfundamentosprogramaciontema11.pdf
wikipedia. 27/06/2014. en línea. Disponible en:
http://es.wikipedia.org/wiki/Estructura_de_datos
blogspot estructura de datos. 8/01/2010. en línea. Disponible en:
http://estructuradedatoslirafael.blogspot.mx/2010/02/clasificacion-de-estructura-de-datos.html
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:Tipo de estructuras de datos lineales y no lineales
Unidad I:Fundamentos de Estructuras de Datos
Alumno: Eric Randy Martínez Mateo
Carrera: ING.EN TIC´S
Grado: 3° Grupo: E
Salina Cruz, Oaxaca
Estructura de DatosLineales No Lineales
Pilas Colas Listas
Es una estructura de datos en la que el último elemento en entrar es el primero en salir.
Es una estructura de datos lineal que permite almacenar elementos por un extremo y extraerlos por el otro.
Es una estructura lineal que almacena una colección de elementos generalmente llamados nodos, en donde cada nodo puede almacenar datos y ligas a otros nodos.
Arboles Grafos
Los árboles se utilizan para representar fórmulas algebraicas, para organizar objetos en orden de tal forma que las búsquedas sean muy eficientes y en aplicaciones diversas tales como inteligencia artificial o algoritmos de cifrado.
La planificación de las tareas que completan un proyecto, encontrar las rutas de menor longitud entre dos puntos geográficos, calcular el camino más rápido en un transporte o determinar el flujo máximo que puede llegar desde una fuente a una urbanización.
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:
Tipos de Estructuras de Datos Lineales y No Lineales
Unidad: 1Fundamentos de Estructuras de Datos
Alumno:
Eric Randy Martínez Mateo
Carrera:
ING.EN TIC´S
Grado: 3° Grupo: E
Salina Cruz, Oaxaca
Estructura De DatosCaracterísticas Estructura Operaciones Básicas
de las EstructurasUso
Lineales Son muy frecuentes en los esquemas algorítmicos.
Las pilas Las colas Las listas Crear la secuencia
vacía Añadir un elemento a la secuenciaBorrar un elemento a la secuencia Consultar un elemento de la secuenciaComprobar si la secuencia está vacía
No Lineales
Se caracteriza por no existir una relación de sus elementos es decir que un elemento puede estar con cero, uno o más elementos.
ArbolesGrafos
OrdenaciónMezclaRecorrido
Se usa principalmente para representar datos con una relación jerárquica entre sus elementos
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:
Ejercicio del capítulo 1
Unidad:1
Alumno:
Eric Randy Martínez Mateo
Carrera:
ING.EN TIC´S
Grado: 3° Grupo: E
Salina Cruz, Oaxaca
EJERCICIOS
1.1. El siguiente algoritmo pretende calcular el cociente entero de dos enteros positivos (un dividendo y un divisor) contando el número de veces que el divisor se puede restar del dividendo antes de que se vuelva de menor valor que el divisor. Por ejemplo, 14/3 proporcionará el resultado 4 ya que 3 se puede restar de 14 cuatro veces. ¿Es correcto?Justifique su respuesta
Cuenta ← 0;Resto ← Dividendo;repetirResto ← Resto – DivisorCuenta ← Cuenta + 1hasta _ que (Resto < Divisor)Cociente ← Cuenta
R= En este algoritmo se muestra que se la operación es correcta solamente en la parte donde dice cuenta más uno sería más tres o dividiéndose entre tres.
1.2. El siguiente algoritmo está diseñado para calcular el producto de dos enteros negativos x e y por acumulación de la suma de copias de y (es decir, 4 por 5 se calcula acumulando la suma de cuatro cinco veces). ¿Es correcto? Justifique su respuesta.
producto ← y;cuenta ← 1;mientras (cuenta < x) hacerproducto ← producto + y;cuenta ← cuenta + 1fin _ mientras
R= La iteración es proporcional, se expresa de cómo se hará la repetición solo que el momento de escribir la cuenta serán con números negativos.
1.4. Diseñar un algoritmo que calcule el número de veces que una cadena de caracteres aparece como una subcadena de otra cadena. Por ejemplo, abc aparece dos veces en la cadena abcdabc, y la cadena aba aparece dos veces en la cadena ababa.
R=Leer z;Cadena 12341234;RepetirLeer leer caracteresCadena cadena + zHasta que (caracteres < cadena)Cadena Leer
1.5. Diseñar un algoritmo para determinar si un número n es primo. (Un número primo sólo puede ser divisible por él mismo y por la unidad.)
R=primo n;numero 3;
mientras (numero >=) hacerprimo primo + n;numero numero + 3;
fin_mientras
1.7. Escribir un algoritmo que calcule la superficie de un triángulo en función de la base y la altura (S = ½ Base x Altura).
R=
Superficie s;Leer a,b;Mult division;
Mientras (Mult < división) hacerMult b*a;Div Mult/2;Leer superficie
Fin_mientras
1.8. Escribir un algoritmo que calcule y muestre la longitud de la circunferencia y el área de un círculo de radio dado.
R=
Long L;Superficie s;Leer 2,π,r;Mult leer;
mientras (long <s) hacerlong 2πr;superficie πr²;leer longitud;leer superficie;
fin_mientras
1.9. Escribir un algoritmo que indique si una palabra leída del teclado es un palíndromo. Un palíndromo (capicúa) es una palabra que se lee igual en ambos sentidos como “radar”.
R=
Palabra p;Leer carácter;
for (palabra ==carácter);Leer palabra;palabra carácter;carácter leer;
fin _for
1.10. Calcular la eficiencia de los siguientes algoritmos:
a)i = 1mientras (i <= n)j = 1mientras (j <= n)j = j * 2fin _ mientrasi = i + 1fin _ mientras
El valor de i se dobla en el bucle de multiplicar. Su eficiencia es f(n)=log2n
b)i = 1mientras (i <= n)j = 1mientras (j <= i)j = j + 1fin _ mientrasi = i + 1fin _ mientras
El número de iteraciones es igual número del bucle n. La eficiencia es incluyente entre si al número de iteraciones= f(n)= n
c)i = 1mientras (i <= 10)j = 1mientras (j <= 10)j = j + 1fin _ mientrasi = i + 2fin _ mientras
n es un entero de valor 10, el contador avanza de 2 en 2. La eficiencia es f(n) =10/2.
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:
Ejercicios realizados en el salón
Unidad:1Fundamentos de estructuras de datos
Alumno:
Eric Randy Martínez Mateo
Carrera:
ING.EN TIC´S
Grado: 3° Grupo: E
Salina Cruz, Oaxaca
INSTITUTO TECNOLÓGICO DE SALINA CRUZ
MATERIA:ORGANIZACIÓN Y ESTRUCTURA DE DATOS
DOCENTE:M.C SUSANA MONICA ROMAN NAJERA
REPORTE DE PRÁCTICAS
UNIDAD I:FUNDAMENTOS DE ESTRUCTURAS DE DATOS
PRACTICA NUMERO 1
ERIC RANDY MARTINEZ MATEO
FECHA: 16/09/14
CARRERA: ING.EN TIC´S
GRADO: 3° GRUPO:”E”
SALINA CRUZ, OAXACA
PRACTICA 1:
Realizar un programa en java que permita:a) En base a 50 calificaciones de alumnos.b) Determine cuál de ellos tiene una calificación reprobatoria.c) Determinar cuál de ellos tiene una calificación superior a la media del grupo.
OBJETIVO DE LA UNIDAD 1:Aplicar estructuras de datos en la elaboración de programas. Utilizar listas enlazadas para la solución de problemas computacionales. Manipular diversos tipos de árboles para clasificar datos. Comparar los diversos algoritmos de ordenamiento. Comparar los diversos algoritmos de búsqueda. Aplicar la recursividad como estrategia de solución de problemas.
CODIGO DEL PROGRAMA:
RESULTADO OBTENIDO AL EJECUTAR EL CODIGO:
CONCLUSIONES: El código anterior nos muestra como trabajar con arreglos utilizando operaciones sencillas y básicas , definiendo el tamaño del arreglo y él como ingresar los datos para trabajor con ellos y poder manipularlos con las operaciones.
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ácticas
Unidad: 1
Numero de práctica: 2
Fecha: 19/09/2014
Instrucciones:
Realizar un programa que realice:
A) Ingresar los meses del año.B) Seleccionar algunos de esos meses y visualizarlos. C) Imprimir el total de los meses.
Objetivo:
Aplicar estructuras de datos en la elaboración de programas. Utilizar listas enlazadas para la solución de problemas computacionales. Manipular diversos tipos de árboles para clasificar datos. Comparar los diversos algoritmos de ordenamiento. Comparar los diversos algoritmos de búsqueda. Aplicar la recursividad como estrategia de solución de problemas.
Materiales:
Los materiales que se ocuparon para realizar el dicho programa fueron, aportaciones de la M.C Susana Mónica Román Nájera, aportaciones de distintas páginas web, y el software de NetBeans que ocupe para realizar el programa.
Desarrollo de la práctica:
Resultado obtenido al ejecutar el código:
Conclusión:
El código anterior nos muestra cómo trabajar con arreglos utilizando operaciones sencillas y básicas, definiendo el tamaño del arreglo e ingresando los datos que corresponden con el programa, el resultado de dicho programa es imprimir el total de los meses y nos permite seleccionar el mes que queremos ingresando un número del 1-12.
INSTITUTO TECNOLÓGICO DE SALINA CRUZ
MATERIA:ORGANIZACIÓN Y ESTRUCTURA DE DATOS
DOCENTE:M.C SUSANA MONICA ROMAN NAJERA
REPORTE DE PRÁCTICAS
UNIDAD I:FUNDAMENTOS DE ESTRUCTURAS DE DATOS
PRACTICA NUMERO 3
ALUMNO: ERIC RANDY MARTINEZ MATEO
FECHA: 15/09/14
CARRERA: ING.EN TIC´S
GRADO: 3° GRUPO:”E”
SALINA CRUZ, OAXACA
INSTRUCCIONES:
Desarrollar un programa que permita ingresar un vector de 8 elementos, e informe:El valor acumulado de todos los elementos del vector.El valor acumulado de los elementos del vector que sean mayores a 36.Cantidad de valores mayores a 50.
OBJETIVO:
Aplicar estructuras de datos en la elaboración de programas. Utilizar listas
enlazadas para la solución de problemas computacionales. Manipular diversos
tipos de árboles para clasificar datos. Comparar los diversos algoritmos de
ordenamiento. Comparar los diversos algoritmos de búsqueda. Aplicar la
recursividad como estrategia de solución de problemas.
Desarrollo de la practica
RESULTADO:
Conclusión
El problema anterior nos muestra como trabajar con un vector de elementos realizando operaciones como la suma para calcular el valor de todos los elementos que se ingresaron, estos calculados con la ayuda de los métodos mostrados en la estructura del código.
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ácticas
Unidad: 1
Numero de práctica: 4
Fecha: 19/09/2014
Instrucciones:
Realizar un programa que ordene:
Objetivo:
Aplicar estructuras de datos en la elaboración de programas. Utilizar listas enlazadas para la solución de problemas computacionales. Manipular diversos tipos de árboles para clasificar datos. Comparar los diversos algoritmos de ordenamiento. Comparar los diversos algoritmos de búsqueda. Aplicar la recursividad como estrategia de solución de problemas.
Materiales:
Los materiales que se ocuparon para realizar el dicho programa fueron, aportaciones de la M.C Susana Mónica Román Nájera, aportaciones de distintas páginas web, y el software de NetBeans que ocupe para realizar el programa.
Desarrollo de la práctica:
Resultado obtenido al ejecutar el código:
Conclusión:
El código anterior nos muestra cómo trabajar con arreglos utilizando operaciones sencillas y básicas, definiendo el tamaño del arreglo e ingresando los datos que corresponden con el programa, el resultado de dicho programa es ordenar de menor a mayor como se muestra en la imagen donde se ejecuta el código.
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ácticas
Unidad: 1
Numero de práctica: 2
Fecha: 19/09/2014
Instrucciones:
Realizar un programa que realice las siguientes operaciones usando arreglos:
A) Lectura de los datos.B) Calculo de la suma de sus elementos.C) Calculo del promedio de sus elementos.D) Calculo de la suma del valor n a sus elementos.E) Calculo de la multiplicación del valor n a sus elementos.
Objetivo:
Aplicar estructuras de datos en la elaboración de programas. Utilizar listas enlazadas para la solución de problemas computacionales. Manipular diversos tipos de árboles para clasificar datos. Comparar los diversos algoritmos de ordenamiento. Comparar los diversos algoritmos de búsqueda. Aplicar la recursividad como estrategia de solución de problemas.
Materiales:
Los materiales que se ocuparon para realizar el dicho programa fueron, aportaciones de la M.C Susana Mónica Román Nájera, aportaciones de distintas páginas web, y el software de NetBeans que ocupe para realizar el programa.
Desarrollo de la practica:
Parte grafica del programa donde realizaremos las operaciones.
Menú donde podremos elegir la operación a realizar
Nos muestra los datos ingresado
Nos muestra el resultado de las operaciones
El botón de añadir nos permite ingresar los datos que se escribe en el área de texto
Área de texto donde ingresamos los datos para las operaciones
Resultado obtenido al ejecutar el código:
Ingresamos los datos.
Calculo de la suma.
Calculo de promedio.
Suma del valor n.
Multiplicación del valor n.
Conclusión:
El código anterior nos muestra cómo trabajar con arreglos utilizando operaciones sencillas y básicas, definiendo el tamaño del arreglo e ingresando los datos que corresponden con el programa, al ejecutar el programa nos muestra una ventana donde podremos realizar las operaciones que vienen en el menú.
INSTITUTO TECNOLOGICO DE SALINA CRUZ
MATERIA: ESTRUCTURA Y ORGANIZACIÓN DE DATOS
DOCENTE:SUSANA MONICA ROMAN NAJERA
UNIDAD I:FUNDAMENTOS DE ESTRUCTURAS DE DATOS
PRACTICA 6
ALUMNO: ERIC RANDY MARTINEZ MATEO
CARRERA: ING.EN TIC´S
GRADO: 3° GRUPO:”E
SALINA CRUZ, OAXACA SEPTIEMBRE DEL 2014
INSTRUCCIONES:
Codificar un programa para dar entrada y posterior visualización de un array de
dos dimensiones.
OBJETIVO:
Aplicar estructuras de datos en la elaboración de programas. Utilizar listas
enlazadas para la solución de problemas computacionales. Manipular diversos
tipos de árboles para clasificar datos. Comparar los diversos algoritmos de
ordenamiento. Comparar los diversos algoritmos de búsqueda. Aplicar la
recursividad como estrategia de solución de problemas.
Código de programa llamado tabla
Ejecución del código teniendo como resultado lo siguiente: