La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Examen diagnóstico ¿Qué es una computadora? ¿Qué es un algoritmo?

Presentaciones similares


Presentación del tema: "Examen diagnóstico ¿Qué es una computadora? ¿Qué es un algoritmo?"— Transcripción de la presentación:

1 Examen diagnóstico ¿Qué es una computadora? ¿Qué es un algoritmo?
¿Qué es un SO? ¿Qué es la abstracción de datos? ¿Qué es un lenguaje de programación? ¿Qué es un objeto? ¿Qué es una clase?

2 Unidad 1 Introducción a las estructuras de datos.
Lic. En C.C. Ann Margareth Meza Rodríguez

3 1.1 Tipos de datos abstractos (TDA).

4 Un tipo de dato es un conjunto de valores y un grupo de
operaciones sobre tales valores. Este conjunto y estas operaciones forman una estructura matemática que se implementa usando una estructura particular de datos de hardware o software. El tipo de un dato es el conjunto de valores que puede tomar durante el programa. Si se le intenta dar un valor fuera del conjunto se producirá un error.

5 La asignación de tipos a los datos tiene dos objetivos principales:
Detectar errores en las operaciones Determinar cómo ejecutar estas operaciones

6 Clasificación en los tipos de datos
Dinámicos Estáticos Cadena Estructurados Simples Ordinales No ordinales

7 Abstracción Permite dividir la información en componentes aislados que posteriormente se ensamblan para construir el todo

8 Aplicaciones de la abstracción
Diferentes niveles Nos centramos en los elementos mas grandes e importantes Progresivamente Tratamos volúmenes de información menores que revelen más detalles Diferentes tipos Funcional o procedural de los datos

9 Encapsulación “Proceso de almacenar en un mismo compartimento los
elementos de una abstracción que constituyen su estructura y su comportamiento”.[Booch, 1996]

10 Tipo de dato = Representación + Operaciones
Tipos de datos Un tipo de dato es un conjunto de valores y un conjunto de operaciones definidas por sus valores. Tipo de dato = Representación + Operaciones Ejemplo: Tipo de dato Operaciones Entero +,-,*,/ Cadena concatenar, subcadena, longitud

11 Tipos abstractos de datos (TDA)
Permiten ampliar los tipos de datos definidos por los lenguajes de programación El programador define este nuevo tipo de dato, al igual que los tipos de datos consta de datos y operaciones que se pueden realizar sobre dichos datos. Poseen interfaces graficas públicas (operaciones que se pueden realizar en cualquier momento de la ejecución del programa), pero su implementación es privada (sólo se ejecuta para la instancia actual )

12 Un TAD consta de: Tipo Tipo que se está especificando* Operaciones
Signatura (tipo de argumentos y resultado) Axiomas definición implícita del valor de la función Invariantes condición booleana que debe mantenerse con exactitud Precondiciones Postcondiciones *Conjunto de objetos

13 Tipo Pila[X] Operaciones Poner:Pila[X]xXPila[X] Vacia:Pila[X]Boolean Item:Pila[X]X New:Pila[X] Axiomas Para x: T, s: Pila[T]; item(poner(s,x)) = x vacia(new) not vacia(poner(s,x)) Invariantes Precondiciones item (s:Pila[T]) requiere not vacia(s) Postcondiciones

14 Ejemplo TDA Integer Datos: Una secuencia de dígitos que opcionalmente presentan como prefijo un signo más o un signo menos. Nos referimos a este número entero con signo como N. Operaciones: Constructor: Crea un nuevo entero Add(k): Crea un nuevo entero a partir de la suma de N y k POSTCONDICION: SUM=N+K Sub(k): Crea un nuevo entero a partir de la diferencia de N y k POSTCONDICION: SUM=N-K Set(k): Asigna a N el valor de k. POSTCONDICION: N=K end ¡No confundir ésto con los enunciados de asignación tal como se usan en los lenguajes de programación! Es más bien una ecuación matemática que da "verdadero" por cada valor sum, N y k después que add ha sido ejecutada.

15 Ejercicio TDA Integer. (a) ¿Por qué no hay precondiciones para las operaciones add y sub? (b) Obviamente, la descripción TDA de Integer está incompleta. Agrega los métodos mul, div y otros cualesquiera. Describe sus impactos especificando pre- y postcondiciones.

16 Tarea 1 Diseña un TDA Fraction que describa propiedades de las fracciones. (a) ¿Qué estructuras de datos se pueden usar? ¿Cuáles son sus elementos? (b) ¿Cuál serían sus operaciones? (c) Menciona unos cuantos axiomas y precondiciones. 2. Describe con tus propias palabras las propiedades de tipos de datos abstractos. 3. ¿Por qué es necesario incluir axiomas y precondiciones a la definición de un tipo de datos abstracto?

17 1.1 Modularidad “Propiedad que tiene un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y débilmente acoplados”. [Booch, 1996]

18 Los módulos se comunican mediante interfaces bien definidas
Bajo acoplamiento: Un módulo que no depende de otros módulos Comprensión modular: Es posible entender un modulo sin conocer los otros. Continuidad modular: Un cambio en la especificación, afecta solo a un modulo o a unos pocos. Protección modular: El efecto de una situación anormal producida en un modulo afecta solo a éste y a unos pocos Alta cohesión: Un modulo con responsabilidades altamente relacionadas y que no hace una gran cantidad de trabajo.

19 Programa modular: Se dice que un programa es modular cuando está formado por un
conjunto de módulos. Módulo Unidad básica de descomposición de un sistema de software. Los módulos deben ser los mas independientes posibles. Método de software modular Es modular si ayuda a producir sistemas de software a partir de elementos autónomos interconectados por una estructura simple y coherente Programación modular Trata de descomponer un programa en un pequeño número de abstracciones coherentes que pertenecen al dominio del problema cuya complejidad interna esta oculta por la interfaz

20 Atributos Operaciones
Un modulo se estructura mediante una interfaz y una implementación Está compuesto por un conjunto de operaciones y atributos Primitivas de acceso Interfaz Atributos Operaciones Sección privada

21 Reglas para obtener módulos
Unidades modulares: El lenguaje debe proporcionar estructuras modulares con las cuales se puedan describir las diferentes unidades (POO-Clases) Ocultación de información Todos los módulos deben seguir el principio de ocultación de información En una abstracción de datos pueden verse dos caras Interfaz Operaciones que definen el comportamiento (cliente) Implementación (programador)

22 Ejemplo Modulo que define las cuentas bancarias en un banco
Un modulo incluye una estructura de datos junto con un conjunto de operaciones para manipularla Interfaz depositar() verSaldo() retirar() Operaciones calcularIntereses() deposito() verSaldo() Representación NombreCliente:String Codigo:String Saldo:Float

23 Mecanismos para diseñar programas modulares
• Procedimientos o funciones • Módulos • Tipos abstractos de datos (TADS) • Objetos

24 Tarea. Definir 2 módulos para los siguientes casos:
Ejercicio Formar equipos de 4-5 personas y definir 3 módulos para los siguientes casos Registro de ventas de una tienda Control de vacunas de una mascota Monitoreo de entradas y salidas de un estacionamiento Tarea. Definir 2 módulos para los siguientes casos: Salón de belleza Inventario de una zapatería Menú en una cafetería

25


Descargar ppt "Examen diagnóstico ¿Qué es una computadora? ¿Qué es un algoritmo?"

Presentaciones similares


Anuncios Google