Introducción a las estructuras de datos

Slides:



Advertisements
Presentaciones similares
ESTRUCTURA DE DATOS.
Advertisements

Introducción a los tipos de datos abstractos
Estructura de Datos y Algoritmos
ESTRUCTURA DE DATOS. Evaluación Exámenes 70% Acumulativo 30% Total 100% Acumulativos 1.T. Investigación.
PARCIAL III Tipo de datos estructurados. DATO Información en volumen, sin ningún significado Dado un enunciado, evento o acción, los datos Permiten representar.
CONSTANTES DENTRO DE UN CÁLCULO O EN LOS PASOS PARA SOLUCIONAR UN PROBLEMA, EXISTIRÁN VALORES QUE NUNCA VAN A CAMBIAR Y SE LOS CONOCE COMO CONSTANTES.
Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
Programación de Algoritmos Autor: Luis Eduardo Villavicencio Prof.: Ing. Danilo Jaramillo.
PROGRAMACIÓN I CENTRO DE ESTUDIOS INTEGRADOS EL MARISCAL - CEIM Ing. Luisa Fernanda Arenas Castañeda Feb 6 de 2016.
Programación II Sesión 3. TABLA DE CONTENIDO  Tipos de Datos en C  Delimitadores  Tipo Char  Tipo Int  Tipo Float  Tipo Double  Constantes  Operadores.
ALGORITMOS, DIAGRAMAS DE FLUJO ING. DIANA CRUZ. QUÉ ES UN ALGORITMO ALGORITMO PARA UNA RECETA DE COCINA ETAPAS PARA SOLUCIONAR UN PROBLEMA PROPIEDADES.
Ingreso , proceso y salida de datos
TERMINOLOGÍA BÁSICA Informática: conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático y racional de la información,
¿Cómo almacenar datos dentro del computador?
. Primera Open Class Asignatura: Programación Estructurada Tema:
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
Olimpiadas Chilenas de Informática - Formación
TIPOS ABSTRACTOS DE DATOS.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Tema 4 Elementos para el Desarrollo de Algoritmos
Conceptos básicos de programación
Algunas Características de C++ no presentes en C
Introducción a la Programación
Tema 4 Elementos para el Desarrollo de Algoritmos
Modelado de Sistemas Eloy Edmundo Rodríguez Vázquez
Algunas Características de C++ no presentes en C
Tema 6. Conceptos básicos de programación (Clase 2)
TUTORIAL PSeint.
Leccion 5: Escogiendo un Tipo de Variable
Tema 2 Variables y cálculos
Computación Curso 2017.
FÓRMULAS Una fórmula es la representación de una operación aritmética en una hoja de cálculo. Características: Siempre comienza por el signo igual(=) ó.
Tema 4 Elementos para el Desarrollo de Algoritmos
LÓGICA DE PROGRAMACIÓN
EXPRESIONES Una expresión es una forma especial de asignación.
Unidad 3. Introducción a la programación
ALGORITMOS Un procedimiento o método para resolver un problema que cumpla con unos requisitos se dice que es un algoritmo. Se puede dar por tanto la siguiente.
Funciones Prof. M. Alonso
Herramientas Entorno Web
Conceptos de Objetos, Clases y Otros Modelo Conceptual
Java – programación orientada a objetos programación ii – iee
Retroalimentación ejercicios de tarea. Ejercicios para resolver 1.¿Cuántos bytes hay exactamente en un sistema que contiene a.32 Kbytes b.64 Mbytes c.6.4.
CONCEPTOS BÁSICOS DE COMPUTACIÓN E HISTORIA
Diego Hernández R Pascal Variables Diego Hernández R
El Lenguaje C: Elementos Básicos
Fundamentos de Programación
FUDAMENTOS BÀSICOS computación
Tipos de Datos abstractos
Fundamentos de la Programación I
Programación I MC José Andrés Vázquez Flores
Tipos de Datos abstractos
Introducción a la Estadística Informática
PUNTEROS EN EL LENGUAJE C
Centro Universitario UAEM Ecatepec Asignatura: Introducción al software base Licenciatura en informática Administrativa Lia 4to semestre Mtra. Patricia.
Informática Ingeniería en Electrónica y Automática Industrial
Curso de Programación Estructurada
MATRICES. ¿QUÉ ES UNA MATRIZ? Una matriz es un espacio bidimensional que se genera en la memoria del computador. Las matrices deben tener un nombre que.
Informática Ingeniería en Electrónica y Automática Industrial
Tema 6. Conceptos básicos de programación (Clase 2)
Informática Ingeniería en Electrónica y Automática Industrial
NATURALEZA DE LOS DATOS Valores Numéricos Son los valores que se pueden hacer cálculos aritméticosritméticos Tipos de valores Entero Real Cadena ( “ h”
UNIDAD 2 MODELO DE DATOS.
Programación Modular Programación de Computadoras - Hugo Vega Grupo2: Reina Rodríguez Miriam Salluca.
Mente y cerebro El cerebro es como un hardware: es un conjunto de neuronas y sus conexiones, que se llaman sinapsis, que forman un circuito de “cables”.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
INTRODUCCIÓN A LA INFORMÁTICA
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
INTRODUCCIÓN A LA INFORMÁTICA
Unida III: Análisis y Diseño de Sistemas Orientado a Objetos
ACTIVIDAD RESULTADOS ISCE 2018
Transcripción de la presentación:

Introducción a las estructuras de datos

Abstracción de datos Abstracción: representación de las características y comportamiento de un objeto del mundo real desde una perspectiva particular.  

Conceptos básicos La abstracción como proceso: consiste en separar las propiedades esenciales de un objeto, sistema, fenómeno o problema y omitir otra información que no se considera esencias desde una perspectiva particular. La abstracción como producto: es una descripción o especificación de un sistema en el que se enfatizan algunos detalles o propiedades y se suprimen otros. Las propiedades esenciales de un sistema son tratadas como un todo.

Conceptos básicos Tipo de dato abstracto Tipo definido en términos de ítems de datos operadores asociados, no de su implementación Una herramienta útil para especificar las propiedades lógicas de los tipos de datos abstractos (TDA), el cual es fundamentalmente una colección de valores y un conjunto de operaciones sobre esos valores. La colección de valores y las operaciones sobre esos valores forman una construcción matemática que pueden implementarse utilizando una estructura de dato particular ya sea de hardware o de software.

TDA Tomado de: Data Structures: Abstract Data Type (ADT). Reel Learning. URL: https://www.youtube.com/watch?v=HcxqzYsiJ3k

TDA Datos? Operaciones?

Abstracción de procedimientos TDA Abstracción de datos Abstracción de procedimientos

Abstracción de procedimientos Abstracción por parametrización: argumentos Abstracción por especificación: qué hace? pre-condición/post-condición

Abstracción de datos Permite extender los tipos pre-defedinidos en los lenguajes de programación Permite incluir nuevos tipos de datos con sus operaciones (estructuras de datos)

Dato Información en bruto, sin ningún significado Ejemplo: El estudiante Pedro Perez de 22 años tiene un promedio de 3.5 Representación de datos Nombre: Pedro Perez -> Conjunto de Caracteres Edad: 22 -> entero Promedio: 3.5 -> real

Información Los datos al ser procesados e interpretados se convierten en información útil Pedro, Perez $320 Juan, Rodriguez $310 Pablo, Mendoza $240 Datos de salida (se muestran en el monitor) Datos de entrada(ingresados por teclado) Pedro, Perez Juan, Rodríguez Pablo, Mendoza 160 155 120 Empleado Horas Salario por hora = $2 Procesamiento: Calcular salario anual

¿Cómo representar los datos? Los seres humanos: Usamos lenguaje natural o símbolos Ejemplo: Para representar números, usamos el sistema decimal Para representar palabras, usamos el abecedario La computadora: Usa 1s y 0s El dato más pequeño en el computador es Un 1 o un 0: bit El conjunto de 8 bits: 1 byte

Un conjunto de valores y operaciones definidas para esos valores Tipos de datos Los datos se clasifican por tipos Corresponden a los diferentes dominios. Ejemplos: Edad, Año de Nacimiento, Numero de multas Están en el dominio numérico Nombre, Dirección, Número de identificación, Están en el dominio de la información tipo texto Y las operaciones permitidas para dicho dominio Un conjunto de valores y operaciones definidas para esos valores

Importante Un tipo de dato es el conjunto de valores Al que puede pertenecer una constante Que puede asumir una variable o expresión Que puede ser generado por una función De una constante, variable o expresión Se puede deducir su tipo de dato Ya sea de su forma o de su declaración Sin necesidad que se ejecute ningún proceso Las operaciones entre datos Necesitan participantes (argumentos) de determinado tipo Producen resultados del mismo tipo o diferente tipo

Tipos de datos básicos Se pueden distinguir fácilmente, usualmente, en la vida cotidiana: El Sr. Pérez de 63 años tiene número de identificación 0908815533, y paga $120 en impuestos Son tipos de datos simples Que permiten representar información numérica y caracteres, entre otros. NOMBRE CONJUNTO DE VALORES OPERACIONES Enteros Negativos y positivos sin decimal Sumar, restar, dividir, multiplicar, residuo Reales Negativos y positivos, con decimal Sumar, restar, dividir, multiplicar Lógicos Verdadero o Falso(1 o 0) And, Or, Not Caracteres Letras, números, especiales, juntos forman una cadena Sumar carácter y entero, restar carácter de entero, multiplicar por entero

Representación en computador Solo vienen integrados los tipos de datos básicos En el computador Cada byte es un “casillero” y tiene una dirección en memoria Los datos (números y letras) se almacenan en estos casilleros ¿Cuantas casilleros ocupa un dato? Depende de su tipo y del hardware de la computadora Un entero puede ocupar casillas de 4 bytes Un doble siempre ocupara mas, por su mayor precisión Un carácter, usualmente, ocupará casillas de 1 byte 1000 1001 1002 1003

Declaración de variables Al declarar una variable se le asigna espacio en memoria y una dirección para dicho espacio Una declaración de variables en C/Java incluye Tipo de dato y Nombre de variable (identificador) Ejemplo: int a, b; float c; ¿Para que se declaran variables? Especifica cuanta memoria debe reservarse y Como se van a interpretar dichos datos f = a + b Es una suma de enteros, que al final se convierte a real 100 101 102 103 104 4 bytes, dir: 100 int a; char c; 1 byte, dir: 104

Direcciones de memoria Las variables Tienen direcciones de memoria Si deseamos conocer dicha dirección En lenguaje C/Java Se usa el operador & para obtener su dirección 1000 1001 1002 1003 &a es 1000 Ejemplo: int a; a = 3; printf(“Valor:%d Dir: %d”, a, &a); Un puntero (o apuntador) Es una variable que puede almacenar una dirección de memoria

Declaración de apuntadores Un tipo de dato Un apuntador solo podrá almacenar direcciones de memoria de variables del tipo especificado Se pueden definir apuntadores de cualquier tipo: float *pf; char *pc; Un identificador que siempre va antecedido del operador * int *p; x 1000 3 1001 1002 1003 pt 1004 1000 1005 int *pt, x; pt almacena la dirección de x, se dice que pt apunta a x x = 3; pt = &x;

Imprime ‘N’ pues c ya cambio Consultar contenido Si un apuntador apunta a una variable A través del apuntador se puede llegar a conocer todo sobre la variable Ejemplo: char c, *pc1, *pc2; pc1 = &c; Si quiero conocer la dirección, uso directamente el apuntador printf(“%d”, pc1); //Imprimo la dir. Almacenada por pc1 pc2 = pc1; //pc2 almacena la misma dir. que pc1 Si quiero conocer el contenido al que apunta un apuntador, uso el operador *, sobre dicho apuntador Es equivalente a : printf(“%c”, c); c = ‘A’ printf(“%c”, *pc1); *pc1 = ‘N’ printf(“%c”,c); Ejercicio Es equivalente a : c = ‘N’ Imprime ‘N’ pues c ya cambio

Ejemplo x -42 17 *p1 = 17; *p2 = x+5; y 22 1004 p1 1000 p2 1004 1008 1012 x -42 22 17 int x,y; int *p1,*p2; x = -42; y = 163; p1 = &x; p2 = &y; *p1 = 17; *p2 = x+5; y 163 22 1000 1004 1004 p1 1000 1004 p2 1004 Es equivalente a escribir x = y; Esto indica que p1 ahora apunta a la misma variable que p2 *p1 = *p2; p1 = NULL; p2 = NULL; Esto es equivalente a “encerar” el puntero, y decir que no apunta a ninguna variable p1 = p2;

Conceptos básicos Definición: "Si se posee un tipo de dato llamado T que se define como una clase de valores y una colección de operaciones sobre esos valores, y si las propiedades de esas operaciones son especificadas solamente con axiomas, entonces T es un TDA". Un TDA al momento de la implementación, debe de cumplir con las especificaciones algebraicas de sus operaciones (SINTAXIS Y SEMÁNTICA).

Conceptos básicos La correcta especificación (según Gutag) de un TDA debe ser:  A.-Especificación Sintáctica: Aquí se tratan las funciones u operaciones que actúan sobre las instancias de T, definiéndose los nombres, dominios y rangos de dichas funciones.

Tipos de operaciones 1. Operación Constructor: esta operación produce una nueva instancia para el tipo de dato abstracto; permite generar dinámicamente instancias de nuevos objetos y asignarles valores por defecto a las propiedades (atributos) del TDA. Reserva memoria principal. 2. Operación Destructor: elimina aquellas instancias del tipo de dato T que ya no se requieren. Libera memoria principal.

Tipos de operaciones 3. Operación de Acceso: permite obtener elementos que sólo son propiedades del tipo de dato del sistema. 4. Operación de Transformación: producen nuevos elementos del tipo de dato abstracto, partiendo del elemento ya existente y posiblemente de otros argumentos.

Tipos de operaciones Se observa el efecto que tiene cada una de las operaciones especificadas sobre el resto de las operaciones del TDA. Para esta especificación se realiza la siguiente tabla: Nombre de la operación Dominio de los argumentos Rango de los resultados Tipo de operación

Especificación del TDA B.- Especificación Semántica: Se compone de un conjunto de axiomas en forma de ecuaciones las cuales indican como operan cada una de las operaciones del tipo de dato abstracto al ser especificadas sobre las operaciones restantes del mismo tipo de dato abstracto. Operaciones válidas sobre la estructura de datos del TDA, y cuales son los resultados que cada una de las operaciones regresa una vez que se haya ejecutado.

Propiedades de un TDA PPropiedades de los TDA Encapsulación: un TDA encapsula ciertos tipos de datos y operaciones con el objetivo de localizar en un punto determinado de su programa la especificación del TDA. Generalización: un programador es libre de definir sus propios tipos de datos y sus propias operaciones con el objetivo de aplicarlos a operandos que no necesariamente tiene que ser de un tipo fundamental.

Estructuras de datos Estructura de Datos - Conceptos Básicos. Julio Tentor URL: https://www.youtube.com/watch?v=53mu9sqZSAQk

Ejemplo (1) datos? Operaciones? Sistema de reservación de sillas de un teatro: datos? Operaciones?

Ejemplo datos? Operaciones? Sistema de reservación de sillas de un teatro: datos? Operaciones?

Ejemplo (2) Sistema de reservación de sillas de un teatro: