Estructuras de datos y algoritmos

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

Definición de Clases y Variables de referencia.
funciones Por: Carlos Alberto García Acosta
Informática I – 4to año Volumen II.
Estructuras de datos y algoritmos
Elementos básicos del Lenguaje
Programación Orientada a Objetos
Programación Orientada a Objetos (P.O.O.)
Reusabilidad La productividad está basada en reusabilidad y extensibilidad El reusabilidad permite desarrollar nuevas aplicaciones a partir de componentes.
1.1 Concepto de Tipo de Datos Abstracto.
COLEGIO NACIONAL DE EDUCACIÓN PROFESIONAL TÉCNICA
Tipo de Dato Abstracto Tipos de datos:
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
Preguntas tipo test (Tema I)
Encapsulamiento y Abstracción
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
Algoritmo y Estructura de Datos I
Algoritmo y Estructura de Datos I
UNIDAD 2 CONJUNTOS.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
ESTRUCTURAS DE CONTROL
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
Unidad 1 Definiciones Básicas
Programación en Matlab
Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas.
Facultad de Ciencias de la Computación MC Beatriz Beltrán Martínez
TIPOS DE DATOS ABSTRACTOS
1.1 Concepto y terminología
Introducción a la POO • ¿Qué es la programación orientada a objets (POO)? – Un “paradigma” de programación – Una forma de pensar acerca de los problemas.
COMPONENTES DE UN ALGORITMOS
Unidad VI Documentación
Universidad Autónoma San Francisco CARRERA PROFESIONAL: Lengua, Traducción e Interpretación Asignatura: MATEMÁTICA Tema: “SISTEMA FORMAL”
Programación orientada a objetos. El método main es el comportamiento por el cual comienzan todos los programas en Java, de la misma forma en la que C,
Introducción a la programación
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Elementos básicos del lenguaje
NÚMEROS REALES.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Programación Orientada a Objetos (P.O.O.)
PROGRAMAS INFORMATICOS
Términos algoritmo diseñar algoritmo implementar algoritmo
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Metodología de la programación
FUNCIONES PARA OPERAR CON EXPRESIONES ALGEBRAICAS
Computación I (CI-2125) Clase 2 Prof. Mireya Morales.
Metodología de Programación Clase 1 Leonel Lagos V
Elaboración de algoritmos usando lógica de programación
Presente un cuestionario con los aspectos mas importantes sobre los
Capítulo 3: Conjuntos Autor: José Alfredo Jiménez Murillo.
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Abstracción El concepto de abstracción es esencial en ciencias de la computación. Un programa es en sí mismo una abstracción, un modelo de la resolución.
TIPOS DE DATOS ABSTRACTOS
Universidad Domingo Savio
Proceso de desarrollo de Software
Gabriela Araya Baez Estudiante Ingenieria Civil Industrial.
Números racionales Lorenzo Contreras Garduño Ago. 2015
Mini-video 2 de 5 Materia: Límites de funciones Continuidad de funciones Prácticas con Introducción a Funciones de una variable.
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
METODOS DE PROGRAMACION I Ing. Vania Flores Pinto.
Hay muchas formas de implementar un TDA: Arreglos Estructuras y Clases. Aunque en este curso sólo trabajaremos con estructuras y arreglos, es importante.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Introducción Todos los lenguajes de programación son distintos entre si. Sin embargo, pueden ser agrupados según la forma de pensar y estructurar los.
Transcripción de la presentación:

Estructuras de datos y algoritmos Oscar Bedoya. oscarbed@eisc.univalle.edu.co http://eisc.univalle.edu.co/~oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

CONTENIDO ¿Qué es un tipo de dato? ¿Qué es un tipos de dato abstracto (TDA)? ¿Cuál es el ciclo de vida de un TDA? Ejemplos de TDA

Tipos de datos Algunos tipos de datos que se encuentran en los lenguajes de programación son: int float double char cadena de caracteres(String) arreglos.

Tipos de datos Considere el tipo de datos int Cuáles números pertenecen a este tipo de dato Cuántos elementos tiene Qué operaciones se pueden realizar sobre enteros

Tipos de datos El tipo de datos int es un subconjunto de los números enteros. Son finitos. int  Z Algunas de las operaciones que están permitidas sobre enteros son: +: int x int → int - : int x int → int * : int x int → int / : int x int → double %: int x int → double

Tipos de datos El tipo de datos float es un subconjunto de los números reales. Son finitos. float  R Algunas de las operaciones que están permitidas sobre flotantes son: +: float x float → float -: float x float → float *: float x float → float /: float x float → float

Tipos de datos El tipo de datos String (cadena de caracteres) cadena = <carácter0,carácter1, … , caráctern-1> Algunas de las operaciones que están permitidas sobre cadenas de caracteres son: strlen : cadena → int + : cadena x cadena → cadena

Tipos de datos Desde un enfoque orientado a objetos, considere el tipo Automóvil, definido de la siguiente manera Automovil = (motor, baul, areapasajeros, chasis,carroceria) Automovil Vehiculo Algunas de las operaciones que están permitidas sobre un Automovil encender : Automovil x Llave → Automovil acelerar : Automovil x Intensidad → Automovil

Tipos de datos En todos los tipos definidos considerados anteriormente se tienen en cuenta dos aspectos Proposiciones lógicas que indican qué elementos pertenecen, o no, al tipo Conjunto de operaciones o acciones que se pueden realizar sobre los elementos del tipo

Tipos de datos Un tipo de datos define el conjunto de valores válidos del tipo y las operaciones que se pueden aplicar al tipo.

Tipos de datos Un Tipo de Dato Abstracto debe definir dos partes: El invariante Un conjunto de operaciones.

Tipos de datos El invariante. El invariante es una proposición que expresa el conjunto de valores válidos del TDA. Permite saber qué elementos pertenecen al TDA y qué elementos no. Un invariante también expresa la estructura abstracta del TDA.

Tipos de datos Se dice que la estructura es abstracta porque se trata de que el TDA tenga un nivel alto de generalidad Una de las formas para que esto se cumpla es que el TDA debe ser lo más independiente posible de su implementación

Tipos de datos Un conjunto de operaciones Una operación es algo que se le puede hacer al TDA. El conjunto de las operaciones define el comportamiento del TDA, esto es, define lo que se puede hacer o no con el TDA.

Tipos de datos Un TDA puede estar compuesto por otros TDAs. En términos formales, un TDA se define como el par (invariante , operaciones), donde invariante es una proposición (que tiene un valor verdadero o falso) y operaciones es el conjunto de las operaciones del TDA.

Tipos de datos ¿Que es una instancia de TDA? Una instancia de TDA, o simplemente instancia, es un elemento que pertenece al TDA. El TDA es abstracto mientras que la instancia es concreta

Tipos de datos ¿Que es una instancia de TDA? Un TDA es como un molde, o un sello, que define como será la forma y comportamiento de los elementos que le pertenecen. Una instancia, por su parte, es la impresión del sello o molde.

Tipos de datos Considere el TDA Automóvil. A partir de este TDA podemos definir cualquier cantidad de instancias. Cada una con valores concretos que permiten diferenciar una instancia de otra

El ciclo de vida de un TDA, se compone de tres etapas: Diseño Tipos de datos El ciclo de vida de un TDA, se compone de tres etapas: Diseño Implementación Uso. DISEÑO IMPLEMENTACION USO

Tipos de datos DISEÑO Se describe cómo va a ser el TDA, su invariante y sus operaciones. Es en esta etapa cuando el TDA es verdaderamente abstracto, en las otras etapas comienza a ser real. La etapa de diseño del TDA responde a las preguntas: ¿Cómo es el TDA?. ¿Cómo es la estructura del TDA? ¿Cuál es el conjunto de valores válidos? ¿Cuáles son sus operaciones?

Tipos de datos DISEÑO Proposiciones lógicas que indican qué elementos pertenecen, o no, al tipo Conjunto de operaciones o acciones que se pueden realizar sobre los elementos del tipo Por cada operación se debe establecer el dominio y el codominio

DISEÑO (Documento formal) Tipos de datos DISEÑO (Documento formal) 1. Nombre: La letra inicial en mayúscula el resto en minúsculas. 2. Descripción del TDA: Una frase en lenguaje natural describiendo el TDA. 3. Invariante de TDA: Una proposición lógica que expresa el conjunto de valores válidos del TDA. 4. Las operaciones 4.1 Nombre de operación: Todas las letras en minúscula a excepción de las operaciones constructoras que tienen el mismo nombre del TDA. 4.1.1 Descripción: Una frase en lenguaje natural describiendo la operación. 4.1.2 Descripción operacional: La descripción en términos del dominio y codominio de la operación. 4.1.3 Precondición: Una proposición lógica 4.1.4 Poscondición: Una proposición lógica.

Tipos de datos IMPLEMENTACION La implementación consiste en tomar el diseño del TDA y convertirlo en algo real, en nuestro caso es llevarlo a un lenguaje de programación. La implementación de un TDA no es única; dado un diseño de un TDA es posible implementarlo de diversas formas,

Diferentes implementaciones pueden representar el mismo TDA Tipos de datos IMPLEMENTACION DISEÑO IMPLEMENTACION 1 USO IMPLEMENTACION 2 Diferentes implementaciones pueden representar el mismo TDA IMPLEMENTACION 3 IMPLEMENTACION 4

Tipos de datos USO El uso de un TDA se refiere a cuando se utiliza en una aplicación para resolver una problema especifico. Los diversos usos de un TDA es una prueba de la generalidad de este. Tener un conjunto de TDAs reutilizables hace mucho más fácil construir un software complejo. Para hacer esto es solo unir las implementaciones que necesitemos de la forma adecuada y se tiene la aplicación.

Tipos de datos USO En el caso en que se presenten errores en la implementación de un TDA es más fácil corregir un error pues es solo corregir en este y automáticamente quedará corregido en todo el software que lo utilice, ya que los errores están modularizados. La reutilización y la modularidad hacen las implementaciones de los TDA una herramienta poderosa para el desarrollo de software de calidad.

Diversos usos de la implementación de un TDA. Tipos de datos IMPLEMENTACION IMPLEMENTACION USO 1 USO 2 Diversos usos de la implementación de un TDA. USO 3 USO 4

Tipos de datos TDA Complejo Un número complejo es un objeto matemático que se puede representar como una pareja ordenada, por ejemplo (2,3) o como el polinomio 2 + 3i , donde i es la unidad básica de los números imaginarios. Los números complejos tienen operaciones como las de suma, resta y multiplicación. Si tenemos dos complejos c1=(r1,i1) y c2=(r2,i2), las operaciones se pueden definir de la siguiente manera: C1 + C2 = (r1 + r2, i1 + i2) C1 - C2 = (r1 - r2, i1 - i2)

Tipos de datos TDA Complejo(Invariante) Para establecer el invariante debemos responder a las dos preguntas: ¿Cómo es la estructura del TDA? El TDA Complejo contiene dos partes: la real y la imaginaria.

Tipos de datos TDA Complejo(Invariante) ¿Cuál es el conjunto de valores válidos? Se puede expresar en términos del conjunto de valores válidos de cada una de las partes del TDA, es decir, la primera parte de un Complejo es un número que pertenece al conjunto de los números reales y las segunda es un número imaginario. Formalmente se puede expresar como: Complejo=(real, imaginario), real  R л imaginario  I

Tipos de datos TDA Complejo(Operaciones) ¿Cuáles son sus operaciones? sumar: Complejo x Complejo → Complejo restar: Complejo x Complejo → Complejo obtenerReal: Complejo → R obtenerImaginario: Complejo → I Complejo: R x I → Complejo (Operación de construcción) Las operaciones sumar y restar tienen como dominio el producto cartesiano de Complejos y como rango un Complejo.

Tipos de datos TDA Complejo (Documento final) TDA Complejo Descripción: El TDA Complejo representa al concepto matemático de número complejo, es decir, un número que tiene una parte real y otra imaginaria. Invariante: Complejo=(real, imaginario), real  R л imaginario  I Operaciones:

Tipos de datos TDA Complejo (Documento final) Operación: Complejo Descripción: Construye un número complejo con base en un real real y un imaginario imaginario. Descripción operacional: Complejo: R x I → Complejo Precondición: real  R л imaginario  I Poscondición: Complejo = (real, imaginario)

Tipos de datos TDA Complejo (Documento final) Operación: Sumar Descripción: Suma dos números complejos. Descripción operacional: sumar: Complejo x Complejo → Complejo Precondición: otro  Complejo Poscondición: sumar = (real + otro.real, imaginario + otro.imaginario)

Tipos de datos TDA Complejo (Documento final) Operación: ObtenerReal Descripción: Retorna la parte real del número complejo. Descripción operacional: obtenerReal: Complejo → R Precondición: Poscondición: obtenerReal = real

Tipos de datos IMPLEMENTACION

Tipos de datos public class Complejo{ double real; double imaginario; public Complejo(double r, double i) { real = r; imaginario = i; }

Tipos de datos public Complejo sumar(Complejo C1, Complejo C2) { Complejo C3 = new Complejo(0,0); C3.real = C1.real + C2.real; C3.imaginario = C1.imaginario + C2.imaginario; return C3; }

Tipos de datos public double obtenerReal(Complejo C1) { return C1.real; }

Tipos de datos USO

Tipos de datos TDA RACIONAL TDA Racional Descripción: El TDA Racional representa al concepto matemático de número racional, es decir, un número que tiene un numerador y un denominador, ambos valores deben ser de tipo entero. Invariante: Operaciones: