Tema 1. Introducción a las estructuras y tipos de datos



Documentos relacionados
Introducción a los Tipos Abstractos de Datos

Tipos Abstractos de Datos

Tema 1. Introducción a los TAD

Estructura de Datos. Unidad I Tipos de Datos

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

Diseño de algoritmos.

TAD Lineales: Pila, Cola y Lista

Carrera: Licenciatura en Sistemas. Materia: Programación de computadoras. Profesor Asociado: Cdor. Héctor A. Carballo

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

Introducción a la programación orientada a objetos

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

Diseño orientado a los objetos

Yalù Galicia Hernàndez. Yalú Galicia Hdez. (FCC/BUAP)

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

PROGRAMACIÓN ORIENTADA A OBJETOS

UNIVERSIDAD DR. JOSE MATIAS DELGADO

Preliminares. Tipos de variables y Expresiones

2.2.- Paradigmas de la POO

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

2. Conceptos básicos Abstracción La abstracción como un proceso mental natural La abstracción en el desarrollo de software

Instituto de Computación - Facultad de Ingeniería - Universidad de la República

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC

PROGRAMACIÓN III (Curso de Adaptación)

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler

Creación y administración de grupos locales

Elementos requeridos para crearlos (ejemplo: el compilador)

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows

Ejercicio 1 (3 puntos).-

Introducción a la Ingeniería del Software

Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

Resolución de Problemas

Fundamentos del diseño 3ª edición (2002)

Introducción a la Computación

3.3.3 Tecnologías Mercados Datos

Examen escrito de Programación 1

Tema 1: Computadores y Programas

Diseño estructurado 3ª edición (2000)

Parte I: Introducción

Fundamentos de Ingeniería de Software

Asignaturas, profesores, alumnos. Profesores, grupos, asignaturas, aulas

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

1. Instala gestores de contenidos, identificando sus aplicaciones y configurándolos según requerimientos.

7. Manejo de Archivos en C.

SISTEMA INTEGRAL DE PLANIFICACIÓN

1.- INTRODUCCIÓN 2.- PARÁMETROS

2 EL DOCUMENTO DE ESPECIFICACIONES

PROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04

Universidad de Colima Facultad de Ingeniería Mecánica y Eléctrica. Base de Datos I. Maestra: Martha E. Evangelista Salazar

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

INSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un

implantación Fig. 1. Ciclo de vida tradicional

SEGURIDAD Y PROTECCION DE FICHEROS

Escuela Politécnica Superior de Elche

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 9: CRITERIOS DE CALIDAD DE DISEÑO MODULAR

Java Inicial (20 horas)

IAP TÉCNICAS DE AUDITORÍA APOYADAS EN ORDENADOR (TAAO)

Capas del Modelo ISO/OSI

Alumna: Adriana Elizabeth Mendoza Martínez. Grupo: 303. P.S.P. Miriam De La Rosa Díaz. Carrera: PTB. en Informática 3er Semestre.


Metodologías de Desarrollo de Sistemas de Información

Microsoft Office 2010 Illustrated. Tipos de Software

Qué es Google Calendar? Qué se puede hacer en Google Calendar?

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades

Euclides extendido y Test de primalidad probabiĺıstico

Estructuras de Datos y Algoritmos Tecnólogo en Informática

Ingeniería de Software

Fundamentos de la Programación

Bases de datos en Excel

Evolución histórica Metodologías

Algoritmos y Diagramas de Flujo 2

GedicoPDA: software de preventa

CONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida

Prácticas de programación en C con MinGW Developer Studio

Introducción a la Programación Orientada a Objetos (POO) Introducción a la Programación Orientada a Objetos (POO)

DIAGRAMAS DE GANTT DIAGRAMAS DE FLUJO Y PSEUDOCODIGOS COMO HERRAMIENTAS PARA LA PROGRAMACION DE JUEGOS PEDAGOGICOS ERIKA VANNESSA MARTINEZ SUAZA

Figura No. IV-111. Página No. 125

Inicio. Nivel 5. El Marco de la Buena Enseñanza. Definiciones preliminares. Dominios del Marco de la Buena Enseñanza

Curso 0 de Informática

Contenidos. Archivos en C++ Archivos en C++ Introducción

TEMA 12: CUALIDADES DE UN BUEN DISEÑO

Patrones de Diseño Orientados a Objetos 2 Parte

1. IDENTIFICACIÓN DE LA ASIGNATURA 2. PRESENTACIÓN

Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso Notas. Ejemplo. La herramienta make. 1 Diseño modular.

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Data Mining Técnicas y herramientas

Pattern Oriented Software Architecture. Whole-Part. Jamir Antonio Avila Mojica César Julio Bustacara Medina. Patrones de Software

Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, Introducción al Diseño de Software

a) Ajustar la configuración lógica del sistema analizando las necesidades y criterios establecidos para configurar y explotar sistemas informáticos.

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

Proyecto Ley Marco que crea la Historia Clínica Electrónica y su Registro

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Descripción del tutorial. Contenidos.

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS

OBJETIVO: Introducción al editor de páginas web Macromedia Dreamweaver.

Transcripción:

Tema 1. Introducción a las estructuras y tipos de datos http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia,bmartine,morales,sanchiz}@icc.uji.es Estructuras de datos y de la información Universitat Jaume I

Índice 1. Introducción 5 2. Abstracción de datos 7 3. Tipos de datos y ocultación 8 4. Concepto de TAD 16 5. TADs en C++ 20

Tema 1. Introducción a las estructuras y tipos de datos 3 / 23 Bibliografía Diseño de Programas. Formalismo y Abstracción, R. Peña Marí, Prentice Hall, 1998, Capítulo 5. (Joyanes y Zahonero 98), Capítulos 1 y 3 Fundamentos de Estructuras de Datos, Z.N. Hernández et al., Thomson, 2005, Capítulo 1.

Tema 1. Introducción a las estructuras y tipos de datos 4 / 23 Objetivos Conocer los conceptos de abstracción y ocultación de la información para el desarrollo de software de calidad. Asimilar el papel que juega la abstracción de datos en el diseño de programas modulares y reutilizables. Asimilar el concepto de Tipo Abstracto de Datos (TAD) como un conjunto de valores y operaciones asociadas. Distinguir entre especificación e implementación de un TAD. Conocer la relación entre los TADs y las clases en C++

Tema 1. Introducción a las estructuras y tipos de datos 5 / 23 1 Introducción Informática : Tratamiento automático de la información mediante un computador.

Tema 1. Introducción a las estructuras y tipos de datos 6 / 23 1 Introducción (II) Objetivo de las Estructuras de Datos: Estudio de la representación de la información (datos) que permitan obtener un algoritmo lo más sencillo posible. Identificar y desarrollar de modo formal las entidades y las operaciones que definen la información que se trata, así como determinar qué tipos de problemas pueden resolverse utilizando estas operaciones y entidades. Determinar la representación más idónea de estas estructuras abstractas e implementarlas. Ejemplos: Buscar un libro en la biblioteca Uso de números romanos o arábigos

Tema 1. Introducción a las estructuras y tipos de datos 7 / 23 2 Abstracción de datos Abstracción: Simplifica la comprensión de fenómenos complejos. Reconocer aspectos importantes e ignorar los detalles que no tengan relación directa con la solución. Ventajas: Solución de problemas complejos Proporciona una solución más general

Tema 1. Introducción a las estructuras y tipos de datos 8 / 23 3 Tipos de datos y ocultación Abstracción de datos: manipulación de los datos a nivel lógico y abstracción de su implementación física en una determinada máquina o en un determinado lenguaje de programación Los lenguajes de programación suponen el primer nivel de abstracción al proporcionar los tipos de datos.

Tema 1. Introducción a las estructuras y tipos de datos 9 / 23 3 Tipos de datos y ocultación (II) Tipos de datos: conjunto de valores posibles junto con las operaciones definidas para su manipulación. Ejemplo: Calcular el producto escalar de 2 vectores de números reales. Tipo de datos: float en C++ Valores: Operaciones: +, -, *, /, >, <, ==,...

Tema 1. Introducción a las estructuras y tipos de datos 10 / 23 3 Tipos de datos y ocultación (III) v[i]*v[j] en ensamblador del MIPS R2000 #$3 <-- i; $4 <-- j #$5 <- dirección inicial de v sll $6, $3, 2 #*4 add $6, $6, $5 #dir. elem v[i] lw $7, O($6) #$7=v[i] sll $6, $4, 2 add $6, $6, $5 #dir. elem v[j] lw $8, O($6) #$8=v[j] mult $7, $8 #hi lo mfhi $7 #$7 mflo $8

Tema 1. Introducción a las estructuras y tipos de datos 11 / 23 3 Tipos de datos y ocultación (IV) Producto escalar de dos vectores f l o a t ProdEscalar ( f l o a t v [ ], f l o a t w [ ], i n t N ) { i n t i ; f l o a t x ; for ( i = 0 ; i <N ; i ++) x = x + v [ i ] w[ i ] ; return x ; }

Tema 1. Introducción a las estructuras y tipos de datos 12 / 23 3 Tipos de datos y ocultación (V) Los lenguajes de programación (LP) proporcionan herramientas para manejar distintos tipos de datos. Tipos predefinidos proporcionados por el LP sólo nos preocupamos de su uso Tipos definidos por el usuario elegir y definir una estructura de datos de las proporcionadas por el LP para su representación elegir y definir operaciones de manipulación garantizar el correcto comportamiento del tipo

Tema 1. Introducción a las estructuras y tipos de datos 13 / 23 3 Tipos de datos y ocultación (VI) Ocultación: Esconder los detalles de implementación de un determinado objeto - tipo de dato u operación - y mostrar sólo su especificación. Qué Cómo Ejemplo: tipo float (real) Qué: definir variables de tipo float, acceder a las variables, modificar su contenido, operar con las variables Cómo: codificación de los números reales con precisión simple en la máquina

Tema 1. Introducción a las estructuras y tipos de datos 14 / 23 3 Tipos de datos y ocultación (VII) La técnica que se utiliza para conseguir la ocultación es el encapsulamiento. Encapsulamiento: Aislar las cuestiones de implementación de un objeto de las de su especificación. Operaciones, tareas = Funciones en C++ Tipos abstractos de datos = Clases en C++

Tema 1. Introducción a las estructuras y tipos de datos 15 / 23 3 Tipos de datos y ocultación (VIII) Ventajas del uso de la abstracción y la ocultación en el desarrollo de software: Simplificación del código resultante. Más fácil de entender. Menos errores. Más fácil de mantener y depurar. Posibilidad de realizar cambios sin afectar a todo el código. Reusabilidad de tipos de datos y funciones.

Tema 1. Introducción a las estructuras y tipos de datos 16 / 23 4 Concepto de TAD Un Tipo Abstracto de Datos (TAD) es una entidad que consta de: Una colección de datos que definen los valores válidos para el tipo. Un conjunto de operaciones de manipulación de los datos. Una especificación del tipo independiente de cualquier implementación. Dicha especificación consiste en: el concepto lógico del tipo una serie de axiomas o propiedades que definen el comportamiento de las operaciones de manipulación

Tema 1. Introducción a las estructuras y tipos de datos 17 / 23 4 Concepto de TAD (II) TAD Bolsa Usa Bool Operaciones Crearbolsa: bolsa Crea una bolsa vacía Poner: bolsa x elemento bolsa Añade un elemento a la bolsa DameUno: bolsa elemento Devuelve un elemento de la bolsa (no lo saca) Sacar: bolsa x elemento bolsa Retira de la bolsa una copia del elemento Esvacia: bolsa bool Dada una bolsa, dice si esta vacía

Tema 1. Introducción a las estructuras y tipos de datos 18 / 23 4 Concepto de TAD (III) Axiomas b bolsa, e, f elemento 1) DameUno(Crearbolsa)=error 2) DameUno(Poner(b,e))= e 3) Sacar(Crearbolsa, e)= error 4) Sacar(Poner (b, e), f)= Si e=f entonces b sino Poner (Sacar(b, f), e) 5) Esvacia(Crearbolsa) = cierto 6) Esvacia(Poner (b, e)) = falso

Tema 1. Introducción a las estructuras y tipos de datos 19 / 23 4 Concepto de TAD (IV) Un TAD es una colección de valores y un conjunto de operaciones, las únicas permitidas para manipular esos valores. Existen dos módulos totalmente independientes: la especificación del tipo y la implementación del tipo = encapsulamiento Los usuarios del TAD no conocen su implementación = ocultación Las operaciones definidas deben permitir generar cualquier valor del tipo. La especificación es independiente del lenguaje de programación.

Tema 1. Introducción a las estructuras y tipos de datos 20 / 23 5 TADs en C++ TAD clase Bolsa Bolsa() TElem DameUno() interfaz Poner(TElem) Sacar(TElem) Implementación: Datos Operaciones bool EsVacia()

Tema 1. Introducción a las estructuras y tipos de datos 21 / 23 5 TADs en C++ (II) Encapsulamiento y ocultación bolsa.h bolsa.cpp #include "bolsa.h" Especificación de las operaciones Implementación de los datos y de las operaciones prueba.cpp visible #include "bolsa.h" Uso de la clase oculto

Tema 1. Introducción a las estructuras y tipos de datos 22 / 23 5 TADs en C++ (III) Diferenciar 3 niveles en el trabajo con tipos/estructuras de datos: Uso Especificación Implementación Ejemplo de uso de la tipo Bolsa: A partir de la especificación del TAD Bolsa, escribir programa que la vacíe

Tema 1. Introducción a las estructuras y tipos de datos 23 / 23 5 TADs en C++ (IV) Ejemplo de uso de la clase. prueba.cpp #include " bolsa. h " i n t main ( ) { Bolsa b ; TElem e ;... while (! b. EsVacia ( ) ) { e = b.dameuno ( ) ; b. Sacar ( e ) ; } }