Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO?...
-
Upload
maria-mercedes-campos-gallego -
Category
Documents
-
view
239 -
download
0
Transcript of Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO?...
![Page 1: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/1.jpg)
Examen diagnóstico
1. ¿Qué es una computadora?
2. ¿Qué es un algoritmo?
3. ¿Qué es un SO?
4. ¿Qué es la abstracción de datos?
5. ¿Qué es un lenguaje de programación?
6. ¿Qué es un objeto?
7. ¿Qué es una clase?
![Page 2: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/2.jpg)
Unidad 1Introducción a las estructuras de datos.
Lic. En C.C. Ann Margareth Meza Rodrí[email protected]
![Page 3: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/3.jpg)
1.1 Tipos de datos abstractos (TDA).
![Page 4: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/4.jpg)
Un tipo de dato es un conjunto de valores y un grupo de operaciones sobre tales valores.
Este conjunto y estas operaciones forman una estructuramatemá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.
![Page 5: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/5.jpg)
La asignación de tipos a los datos tiene dos objetivos principales:
• Detectar errores en las operaciones• Determinar cómo ejecutar estas operaciones
![Page 6: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/6.jpg)
Clasificación en los tipos de datos
Tipos de datos
Dinámicos
Estáticos
Cadena
Estructurados
Simples
Ordinales
No ordinales
![Page 7: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/7.jpg)
AbstracciónPermite dividir la información en componentes aislados que posteriormente se ensamblan para construir el todo
![Page 8: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/8.jpg)
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
![Page 9: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/9.jpg)
Encapsulación
“Proceso de almacenar en un mismo compartimento los elementos de una abstracción que constituyen suestructura y su comportamiento”.[Booch, 1996]
![Page 10: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/10.jpg)
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 OperacionesEntero +,-,*,/Cadena concatenar,
subcadena, longitud
![Page 11: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/11.jpg)
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 )
![Page 12: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/12.jpg)
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
![Page 13: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/13.jpg)
Tipo Pila[X]
Operaciones Poner:Pila[X]xXPila[X]Vacia:Pila[X]BooleanItem:Pila[X]XNew:Pila[X]
Axiomas Para x: T, s: Pila[T];item(poner(s,x)) = xvacia(new)not vacia(poner(s,x))
InvariantesPrecondiciones item (s:Pila[T]) requiere not vacia(s)Postcondiciones
![Page 14: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/14.jpg)
Ejemplo
TDA IntegerDatos: 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 enteroAdd(k): Crea un nuevo entero a partir de la suma de N y k
POSTCONDICION: SUM=N+KSub(k): Crea un nuevo entero a partir de la diferencia de N y k
POSTCONDICION: SUM=N-KSet(k): Asigna a N el valor de k.
POSTCONDICION: N=Kend
¡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.
![Page 15: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/15.jpg)
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.
Ejercicio
![Page 16: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/16.jpg)
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?
![Page 17: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/17.jpg)
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]
![Page 18: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/18.jpg)
Alta cohesión: Un modulo con responsabilidades altamente relacionadas y que no hace una gran cantidad de trabajo.
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
Los módulos se comunican mediante interfaces bien definidas
![Page 19: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/19.jpg)
Programa modular: Se dice que un programa es modular cuando está formado por un conjunto de módulos.
MóduloUnidad básica de descomposición de un sistema de software. Los módulos deben ser los mas independientes posibles.
Método de software modularEs modular si ayuda a producir sistemas de software a partir de elementos autónomos interconectados por una estructura simple y coherente
Programación modularTrata 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
![Page 20: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/20.jpg)
• Un modulo se estructura mediante una interfaz y una implementación
• Está compuesto por un conjunto de operaciones y atributos
Primitivas de acceso
Atributos Operaciones
Interfaz
Sección privada
![Page 21: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/21.jpg)
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
InterfazOperaciones que definen el comportamiento (cliente)
Implementación(programador)
![Page 22: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/22.jpg)
Ejemplo Modulo que define las cuentas bancarias en un banco
Interfazdepositar()verSaldo()retirar()
RepresentaciónNombreCliente:StringCodigo:StringSaldo:Float
OperacionescalcularIntereses()deposito()verSaldo()
Un modulo incluye una estructura de datosjunto con un conjunto de operaciones para manipularla
![Page 23: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/23.jpg)
Mecanismos para diseñar programas modulares• Procedimientos o funciones
• Módulos
• Tipos abstractos de datos (TADS)
• Objetos
![Page 24: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/24.jpg)
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
![Page 25: Examen diagnóstico 1.¿Qué es una computadora? 2.¿Qué es un algoritmo? 3.¿Qué es un SO? 4.¿Qué es la abstracción de datos? 5.¿Qué es un lenguaje de programación?](https://reader036.fdocument.pub/reader036/viewer/2022081504/5665b4cd1a28abb57c93d1f5/html5/thumbnails/25.jpg)