Tipos Abstractos de Datos
|
|
- Pedro Méndez Moreno
- hace 8 años
- Vistas:
Transcripción
1 Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal de definición de TAD Conocer la relación entre TAD y clase en el paradigma de la POO Conocer la relación entre especificación algebraica e implementación Contenidos 1.1 Abstracción de datos y (TAD) 1.2 Especificación algebraica de un TAD Introducción Signatura de una especificación algebraica Ecuaciones de una especificación algebraica Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 1
2 Contenidos 1.3 Construcción de especificaciones Operaciones: clasificación Escritura de ecuaciones Operaciones parciales Especificaciones genéricas 1.4 Paso de la especificación a la implementación de TAD 1.5 Implementación de TAD: La librería estándar de plantillas (STL) Duración 4 clases (6 h) Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 2
3 Bibliografía Estructuras de datos. Especificación, diseño e implementación Autor: Xavier Franch Gutiérrez Editorial: Ediciones UPC, 1999 Págs Diseño de programas. Formalismo y abstracción Autor: Ricardo Peña Marí Editorial : Prentice-Hall, 1999 Págs Estructuras de Datos y Métodos Algorítmicos Autor: Narciso Martí Oliet y otros Editorial : Prentice-Hall, 2004 Págs Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 3
4 1.1 Abstracción de Datos y 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 Tipos básicos o estándar: entero, carácter, booleano, etc. Tipos simples definidos por el programador: enumerado, subrango Tipos estructurados: array, registro constructores genéricos (genericidad) (TAD) Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 4
5 Tipo Abstracto de Datos Colección de valores y de operaciones definidas sobre ellos mediante una especificación independiente de cualquier implementación Un TAD está formado por: Una definición o especificación Visible al usuario Precisa, legible y no ambigua Nombre del tipo + sintaxis y semántica de las operaciones Una implementación Oculta al usuario Estructurada, eficiente y legible Elección de la representación más adecuada + algoritmos de las operaciones Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 5
6 Objetivo: separar el uso del tipo de dato de su implementación TAD Especificación Implementación Sintaxis Semántica Representación Algoritmos Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 6
7 Métodos para especificar un tipo abstracto de datos Especificación formal (especificación algebraica) Especificación informal (lenguaje natural) Especificación semi-formal (la estudiada en Estructuras de Datos I) Especificación semi-formal Para el tipo Nombre Descripción Características Valores no admitidos Para las operaciones Parámetros Valor de retorno Precondiciones Efecto Excepciones Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 7
8 Precondiciones vs. Excepciones Precondiciones: Contexto muy limitado (fácil verificar que se satisfacen las restricciones), implementación más eficiente o más simple Excepciones: Siempre que sea posible, la implementación debería comprobar las restricciones y lanzar una excepción en caso de que no se satisfagan. Puede no tener sentido, como en una búsqueda binaria en un vector ordenado Si una excepción se produce para un cierto subconjunto de valores de los argumentos, este subconjunto no debería aparecer en la cláusula precondiciones Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 8
9 Un lenguaje soporta la implementación de tipos abstractos de datos si incluye mecanismos que permitan separar la especificación de la implementación, es decir, permita la encapsulación u ocultación de la información, que consiste en: Privacidad de la representación interna. El usuario no conoce los detalles de cómo se implementan las estructuras de datos y las operaciones Protección del tipo. El usuario sólo puede usar las operaciones definidas en la especificación La clase en los lenguajes OO es el mecanismo apropiado para implementar un TAD algoritmos de datos algoritmos de control algoritmos + estructuras de datos = programas algoritmos de control + TAD = programas Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 9
10 1.2 Especificación algebraica de un TAD Introducción Especificación algebraica. Técnica formal para especificar tipos abstractos de datos OBJETIVO Definir sin ambigüedades un tipo de datos conjunto de valores sintaxis y significado de cada operación permitida VENTAJAS Define tipos independientemente de cualquier representación e implementación Consigue unanimidad en la interpretación del tipo Posibilita la obtención de código automáticamente a partir de la especificación algebraica (aún no muy desarrollado) Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 10
11 1.2.2 Signatura de una especificación algebraica Signatura. Define los géneros y los nombres de las operaciones con sus perfiles nombres de los nuevos tipos a especificar número y tipo de los parámetros, y tipo del resultado CARACTERISTICAS Notación funcional dominio rango Cada operación es una función con 0 o más parámetros Todas las operaciones devuelven un único valor de un tipo determinado Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 11
12 Ejemplo: Signatura del TAD booleano palabras reservadas para indicar el comienzo y el final de una especificación nombre de los tipos que se van a especificar espec tadbool género booleano operaciones verdad, falso : booleano _ : booleano booleano constantes _ _, _ _ : booleano booleano booleano fespec nombre de operación perfil de operación Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 12
13 Ejemplo. Posible signatura de los naturales con el 0 importación de TAD definidos en otras especificaciones Notación prefija. El nombre de la operación y los parámetros entre paréntesis, separados por comas. suc(x) = y espec naturales usa booleanos géneros natural operaciones 0 : natural suc : natural natural _ + _, _ * _ : natural natural natural _ _, _ > _ : natural natural booleano fespec Notación infija. El símbolo _ indica la posición de los argumentos o parámetros. x y = verdad Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 13
14 Para cada género o tipo existe un conjunto de términos bien formados sintácticamente correctos Cada constante es un término y mediante la aplicación sucesiva y correcta de símbolos de operaciones de una signatura se pueden construir términos Ejemplos de términos bien formados : 0 (suc (suc (0)) * suc(0)) suc(0) ((verdad falso) ( falso)) (0 > (suc (0))) En determinadas especificaciones, un valor del tipo puede venir expresado por más de un término. Se denomina término canónico al elegido como representante de cada valor Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 14
15 1.2.3 Ecuaciones de una especificación algebraica También se conocen con el nombre de axiomas Determinan las propiedades y el comportamiento de las operaciones Toda especificación debe cumplir estas dos propiedades: sólo pertenecen al tipo los valores que puedan ser creados mediante términos sintácticamente correctos cada término bien formado denota un único valor del tipo especificado Mediante las ecuaciones ha de ser posible deducir todas las equivalencias que son válidas entre los términos, es decir, identificar las secuencias de operaciones (términos) que producen el mismo resultado en general, para las operaciones binarias conmutativas no se añadirán en la especificación las ecuaciones de conmutatividad de la forma: x 1 OP x 2 = x 2 OP x 1, salvo en el caso que sirvan para definir el comportamiento de dicha operación. Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 15
16 Ejemplo. Queremos especificar el tipo naturales con el 0 espec naturales_1 género natural operaciones 0 : natural suc : natural natural fespec únicos valores que pueden construirse: 0, suc (0), suc (suc (0)), suc (suc (suc (0))), etc. cada término denota un valor diferente Añadimos a la especificación la operación suma espec naturales_2 género natural operaciones 0 : natural suc : natural natural _ + _ : natural natural natural fespec incumple la segunda propiedad "suc (0)" y "0 + suc (0) generan el natural 1 Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 16
17 Existen 2 puntos de vista respecto al papel de las ecuaciones en las especificaciones algebraicas: igualar términos que generan el mismo valor (punto de vista algebraico) definir el comportamiento de las operaciones con todas las posibles combinaciones de valores (patrones) que pueden tomar sus parámetros (punto de vista semántico) Formato de una ecuación: término_1 = término_2 donde término_1 y término_2 son términos bien formados de un mismo género Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 17
18 espec naturales_3 género natural operaciones 0 : natural Punto de vista algebraico igualar términos que generan el mismo valor suc : natural natural _ + _ : natural natural natural ecuaciones x, y: natural x + 0 = x Punto de vista semántico definir el comportamiento de las operaciones con todos los patrones o representantes del tipo fespec x + suc (y) = suc (x+y) Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 18
19 Ejemplo. Completar la especificación algebraica de los booleanos espec bool género booleano operaciones verdad, falso: booleano _: booleano _ _, _ _ : booleano booleano booleano ecuaciones b: booleano verdad = falso falso = verdad b verdad = verdad b falso = b verdad b = verdad falso b = b fespec b verdad = b b falso = falso verdad b = b falso b = falso Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 19
20 1.3 Construcción de especificaciones Operaciones: clasificación g: símbolo o identificador del género correspondiente al tipo que se desea especificar OP(g): conjunto de operaciones relacionadas con g Clasificación: Constructoras. Cons(g). Conjunto de operaciones que devuelven un valor de género g Generadoras. Gen(g). Subconjunto mínimo de operaciones constructoras que permite generar todos los valores del TAD que queremos especificar Modificadoras. Mod(g). Las constructoras que no forman parte del conjunto de generadoras Observadoras. Obs(g). Conjunto de operaciones que devuelven un valor de género diferente de g Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 20
21 Natural espec naturales usa booleanos género natural operaciones 0 : natural suc: natural natural _ + _ : natural natural natural _ _ : natural natural booleano fespec Clasificación de las operaciones? Secuencia espec secuenciadenaturales usa naturales_3 género secn operaciones [ ] : secn {secuencia vacía} [ _ ] : natural secn {secuencia unitaria} _ ++ _ : secn secn secn {concatenar secuencias} _ _ : natural secn secn {añadir un natural a una secuencia} ecuaciones x: natural; s, s1, s2, s3: secn s ++ [ ] = s [ ] ++ s = s (s1 ++ s2) ++ s3 = s1 ++ (s2 ++ s3) x s = [x] ++ s fespec Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 21
22 El conjunto Gen(g) puede ser: Conjunto libre de generadoras: todo término formado sólo por constructoras generadoras denota un valor diferente en el tipo de datos correspondiente a g Conjunto no libre de generadoras: dos o más términos distintos formados sólo por constructoras generadoras denotan un mismo valor del tipo Son libres o no libres los siguientes conjuntos de generadoras? Gen (natural) = {0, suc} Gen (secn) = { [ ], _ _ } Gen (secn) = { [ ], [ _ ], _ ++ _ } Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 22
23 1.3.2 Escritura de ecuaciones Paso 1. Elegir conjunto de operaciones generadoras Paso 2. Si Gen(g) es un conjunto no libre, escribir ecuaciones entre generadoras. Si es libre, no hacer nada Paso 3. Escribir todas las ecuaciones necesarias para definir el comportamiento de cada operación modificadora (especificación naturales_3) Paso 4. Escribir todas las ecuaciones necesarias para definir el comportamiento de cada operación observadora Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 23
24 1.3.3 Operaciones parciales Ejemplo. Queremos añadir la operación predecesor a los naturales espec naturales_4 género natural operaciones 0 : natural suc : natural natural parcial pred: natural natural dominios de definición x: natural pred (suc (x)) ecuaciones x: natural la operación predecesor no está definida para el natural 0 (situación de error) es una operación parcial no puede aplicarse a todos los valores del dominio en la sección "dominios de definición" se especifican los dominios donde están definidas las operaciones parciales de la especificación pred (suc (x)) = x fespec Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 24
25 1.3.4 Especificaciones genéricas Generalmente, los TAD que representan colecciones de elementos suelen realizarse de forma genérica, dejando como parámetro el elemento almacenado en la colección Las operaciones de estos TAD se comportan de la misma forma, independientemente del tipo de los elementos que almacena espec secuenciagenérica parámetro formal género elemento fpf género sec operaciones [ ] : sec {secuencia vacía} [ _ ] : elemento sec {secuencia unitaria} _ ++ _ : sec sec sec _ _ : elemento sec sec ecuaciones fespec {concatenar secuencias} {añadir un elemento a una secuencia} Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 25
26 Ejemplos de especificaciones Ejemplo 1. Completar la especificación algebraica del TAD Conjuntos espec conjuntos usa booleanos, naturales parámetro formal género elemento fpf genero conjunto operaciones : conjunto poner, quitar: elemento conjunto conjunto _ _, _ _ : conjunto conjunto conjunto _ _ : elemento conjunto booleano esvacío: conjunto booleano cardinal: conjunto natural Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 26
27 Ejemplos de especificaciones Ejemplo 2. Completar la especificación algebraica del TAD string_reducido espec string_reducido usa carácter, natural género string operaciones stringvacío: string { crea un string vacío } añade: string carácter string { añade un elemento al final del string } longitud: string natural { devuelve el número de caracteres que forman el string } parcial carac: natural string carácter { devuelve el carácter que se encuentra en la posición indicada por el parámetro. El carácter situado a la izquierda se encuentra en la posición 1 } concatena: string string string { devuelve el resultado de poner el segundo string al final del primero } inversa: string string { devuelve el string formado por los mismos caracteres pero en orden inverso } Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 27
28 1.4 Paso de la especificación a la implementación de TAD Dada la especificación de un TAD, su implementación consiste en: Elegir un dominio concreto para cada género incluido en el TAD Los dominios concretos se implementan mediante declaraciones de tipos, usando otros tipos ya implementados (por nosotros o incluidos en el propio lenguaje o en alguna librería) Definir un método concreto para cada operación de la especificación Los métodos concretos pueden implementarse como procedimientos o funciones aunque en la especificación algebraica sólo se admitan funciones La implementación debe cumplir 2 condiciones: Corrección satisfacer las ecuaciones de la especificación No vamos a considerar la verificación de las implementaciones con respecto a la especificación algebraica. Requiere un desarrollo formal muy amplio. A pesar de ello, pueden establecerse relaciones intuitivas entre especificación e implementación Privacidad y protección La estructura interna del tipo y la implementación de sus operaciones deben permanecer ocultas El único acceso posible al tipo debe ser a través de las operaciones públicas de éste Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 28
29 1.5 Implementación de TAD: La librería estándar de plantillas (STL) La librería estándar de plantillas o STL (Standard Template Library) es un conjunto de TAD y algoritmos que conforman una parte sustancial de la Librería Estándar de C++ Sus componentes principales son: Contenedores Estructuras de datos cuyo propósito es contener otros objetos Iteradores Abstracción que permite el acceso secuencial a los elementos de un contenedor STL proporciona iteradores para todos sus contenedores Algoritmos Funciones genéricas que permiten realizar operaciones habituales (buscar, ordenar, mínimo, máximo, iguales, ) sobre la mayoría de contenedores Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 29
30 Contenedores Secuencias: dispone los elementos en orden lineal Vector Pila Cola Doble cola Cola de prioridad Lista Asociativos: permite el almacenamiento de elementos en función de una clave (no de una posición) Conjunto Multiconjunto: conjunto que admite valores repetidos Diccionario: asocia un valor a una clave Multidiccionario: diccionario en el que una clave puede tener asociada diferentes valores Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 30
TAD Lineales: Pila, Cola y Lista
TAD Lineales: Pila, Cola y Lista Objetivos! Dar a conocer los TAD lineales pila, cola y lista! Presentar la especificación de cada uno de los TAD! Discutir implementaciones alternativas para cada uno de
Más detallesTema 1. Introducción a los TAD
Tema 1. Introducción a los TAD Objetivos En este tema nos ocupamos inicialmente del concepto de abstracción, dedicando la mayor atención a la abstracción de datos, estudiando aspectos relacionados con
Más detallesIntroducción a los Tipos Abstractos de Datos
Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de
Más detallesUniversidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS
Especificación algebraica ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Un tipo abstracto de datos se determina por las operaciones asociadas, incluyendo constantes que se consideran como operaciones sin
Más detallesTipos Abstractos de Datos
Objetivos! Introducir el mecanismo de abstracción y justificar la necesidad de los TAD! Diferenciar adecuadamente los conceptos de especificación e implementación de TAD! Presentar la especificación algebraica
Más detallesObjetivos. Contenidos. Revisar los principales conceptos de la lógica de primer orden
Especificación TEMA 1 formal de problemas Objetivos Revisar los principales conceptos de la lógica de primer orden Entender el concepto de estado de cómputo y cómo se modela con predicados lógicos Familiarizarse
Más detallesUna variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.
Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden
Más detallesTipos Abstractos de Datos y Diseño por Contrato
Tipos Abstractos de Datos y Diseño por Contrato 1.- Motivación de los tipos abstractos de datos Nuestro objetivo es obtener descripciones apropiadas de los objetos, para lo cual se necesita un método que
Más detallesTema 1. Introducción a las estructuras y tipos de datos
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
Más detallesNotación algorítmica (seudocódigo en castellano) (fecha: 2013-10-30)
Notación algorítmica (seudocódigo en castellano) (fecha: 2013-10-30) 1. Tipos de datos predeidos booleano carácter natural {incluímos el 0 en los naturales, comentarios entre llaves} entero real cadena
Más detallesFundamentos del diseño 3ª edición (2002)
Unidades temáticas de Ingeniería del Software Fundamentos del diseño 3ª edición (2002) Facultad de Informática necesidad del diseño Las actividades de diseño afectan al éxito de la realización del software
Más detallesINTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008
INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema
Más detallesSEMINARIO DE ESPECIFICACIONES ALGEBRAICAS
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º, Año 2004/2005 SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Contenidos: 1. Descripción general de Maude 2. Comandos básicos 3. Formato
Más detallesM III ABSTRACCIÓN Y CLASIFICACIÓN
M III ABSTRACCIÓN Y CLASIFICACIÓN COMPLEJIDAD Y ABSTRACCIÓN La abstracción en el desarrollo del programario En todo el proceso de abstracción siempre hay una parte de la situación o del problema que se
Más detallesOperaciones Morfológicas en Imágenes Binarias
Operaciones Morfológicas en Imágenes Binarias Introducción La morfología matemática es una herramienta muy utilizada en el procesamiento de i- mágenes. Las operaciones morfológicas pueden simplificar los
Más detalles2.4 Modelado conceptual
2.4 Modelado conceptual 2.4. Búsqueda de conceptos Un modelo conceptual muestra clases conceptuales significativas en un dominio del problema; es el artefacto más importante que se crea durante el análisis
Más detallesAmpliación de Estructuras de Datos
Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios
Más detallesGeneración de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto
Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto Apellidos, nombre Martí Campoy, Antonio (amarti@disca.upv.es) Departamento Centro Informática de Sistemas
Más detallesEstructuras algebraicas
Tema 2 Estructuras algebraicas básicas 2.1. Operación interna Definición 29. Dados tres conjuntos A, B y C, se llama ley de composición en los conjuntos A y B y resultado en el conjunto C, y se denota
Más detallesProyecto Unico Interpretador de SetCalc
Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información CI3721 - Traductores e Interpretadores Abril-Julio 2008 Proyecto Unico Interpretador de SetCalc A continuación se describe
Más detallesJava Inicial (20 horas)
Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción
Más detallesUNIDAD I: LÓGICA PROPOSICIONAL
UNIDAD I: LÓGICA PROPOSICIONAL ASIGNATURA: INTRODUCCIÓN A LA COMPUTACIÓN CARRERAS: LICENCIATURA Y PROFESORADO EN CIENCIAS DE LA COMPUTACIÓN DEPARTAMENTO DE INFORMÁTICA FACULTAD DE CIENCIAS FÍSICO MATEMÁTICA
Más detallespersonal.us.es/elisacamol Elisa Cañete Molero Curso 2011/12
Teoría de conjuntos. Teoría de Conjuntos. personal.us.es/elisacamol Curso 2011/12 Teoría de Conjuntos. Teoría de conjuntos. Noción intuitiva de conjunto. Propiedades. Un conjunto es la reunión en un todo
Más detallesIntroducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
Más detallesEstas visiones de la información, denominadas vistas, se pueden identificar de varias formas.
El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los
Más detallesProcesadores de lenguaje Tema 5 Comprobación de tipos
Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,
Más detallesBASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.
BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades
Más detallesFICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos
FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 8. Elementos Básicos 1.- Ejemplo Introductorio. 2.- Dominios. 3.- Relaciones. 4.- Bases de Datos Relacionales. (Capítulo 11 del Date) EJEMPLO
Más detallesApuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:
Apuntes de ACCESS Campos de Búsqueda: Los campos de búsqueda permiten seleccionar el valor de un campo de una lista desplegable en lugar de tener que escribirlos. El usuario sólo tiene que elegir un valor
Más detallesElementos requeridos para crearlos (ejemplo: el compilador)
Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción
Más detallesOperaciones Booleanas y Compuertas Básicas
Álgebra de Boole El álgebra booleana es la teoría matemática que se aplica en la lógica combinatoria. Las variables booleanas son símbolos utilizados para representar magnitudes lógicas y pueden tener
Más detallesCurso de Python Inicial
Logo IAA-CSIC Curso organizado por el Gabinete de Formación del CSIC Curso de Python Inicial Clases Contenidos 1. Paradigmas de la Programación 2. Programación Orientada a objetos 3. Clases 4. Objetos
Más detallesUNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS
UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS CURSO: JAVA BASICO PROFESOR: EMERSON CASTAÑEDA SANABRIA TEMA: Programación Orientada a Objetos OBJETIVOS: Familiarizarse con la Programación
Más detallesUniversidad Nacional de Quilmes Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005
Extracción de Frontera (Boundary Extraction) La frontera de un conjunto A, escrita como β(a), se puede obtener erosionando A por B y luego calcular la diferencia entre A y su erosión. Esto es β ( A) =
Más detallesSEGURIDAD Y PROTECCION DE FICHEROS
SEGURIDAD Y PROTECCION DE FICHEROS INTEGRIDAD DEL SISTEMA DE ARCHIVOS ATAQUES AL SISTEMA PRINCIPIOS DE DISEÑO DE SISTEMAS SEGUROS IDENTIFICACIÓN DE USUARIOS MECANISMOS DE PROTECCIÓN Y CONTROL INTEGRIDAD
Más detallesEstructuras Algebraicas Una estructura algebraica es un objeto matemático consistente en un conjunto no vacío, con por lo menos una operación binaria.
Estructuras Algebraicas Una estructura algebraica es un objeto matemático consistente en un conjunto no vacío, con por lo menos una operación binaria. Operación Binaria Se conoce una operación binaria
Más detallesNÚMEROS NATURALES Y NÚMEROS ENTEROS
NÚMEROS NATURALES Y NÚMEROS ENTEROS Los números naturales surgen como respuesta a la necesidad de nuestros antepasados de contar los elementos de un conjunto (por ejemplo los animales de un rebaño) y de
Más detallesEstructuras de Control - Diagrama de Flujo
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS Ingeniería en Computación Ingeniería en Informática UNIVERSIDAD NACIONAL DE SAN LUIS DEPARTAMENTO DE INFORMÁTICA AÑO 2015 Índice 1. Programación estructurada 2 1.1.
Más detallesCompiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz
Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)
Más detallesINDICE. XVII Prólogo a la edición en español. XXI 1. Calculo proporcional 1.1. Argumentos y proporciones lógicas
INDICE Prologo XVII Prólogo a la edición en español XXI 1. Calculo proporcional 1.1. Argumentos y proporciones lógicas 1 1.1.1. Introducción 1.1.2. Algunos argumentos lógicos importantes 2 1.1.3. Proposiciones
Más detallesLENGUAJES FORMALES Y AUTÓMATAS. álgebra computacional LENGUAJES FORMALES Y AUTÓMATAS. álgebra computacional LENGUAJES FORMALES Y AUTÓMATAS
6. bibliografía CONTENIDO Definición de [G8.1]. Estructuras algebraicas: monoides, semigrupos, grupos, [G8.1], anillos, cuerpos [H10.1]. Subgrupos, isomorfismo entre grupos [G8.1]. Álgebras concretas y
Más detallesObjetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la
Más detallesIngeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007
Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el
Más detallesTipos de datos. Lección 1. Programación. Curso 2006-2007. J. A. Bañares, Pedro J. Álvarez, S. Velilla
Lección 1. Programación. Curso 2006-2007 Tipos de datos J. A. Bañares, Pedro J. Álvarez, S. Velilla http://diis.unizar.es/ Departamento de Informática e Ingeniería de Sistemas 2 Tipos de datos, constantes
Más detallesConsultas con combinaciones
UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden
Más detallesINGENIERÍA DEL SOFTWARE I Práctica 4 Interacciones
INGENIERÍA DEL SOFTWARE I Práctica 4 Interacciones Univ. Cantabria Fac. de Ciencias Patricia López Modelo de Casos de Uso vs Modelo de Análisis Modelo de Casos de Uso Modelo de Análisis Descrito con el
Más detallesOR (+) AND( ). AND AND
Algebra de Boole 2.1.Introducción 2.1. Introducción El Algebra de Boole es un sistema matemático que utiliza variables y operadores lógicos. Las variables pueden valer 0 o 1. Y las operaciones básicas
Más detallesFORMACIÓN Principios de la programación orientada a objetos
FORMACIÓN Principios de la programación orientada a objetos En un mercado laboral en constante evolución, la formación continua de los profesionales debe ser una de sus prioridades. En Galejobs somos conscientes
Más detallesSistemas de Bases de Datos I. Modelo Lógico Modelo Relacional
Sistemas de Bases de Datos I Modelo Lógico Modelo Relacional Modelo Lógico Modelo Relacional Esquema Relacional (E- R) Es la representación de un DER mediante tablas. Algebra Relacional Modelo Relacional
Más detallesTEMA 5. ELECTRÓNICA DIGITAL
TEMA 5. ELECTRÓNICA DIGITAL 1. INTRODUCCIÓN Los ordenadores están compuestos de elementos electrónicos cuyas señales, en principio, son analógicas. Pero las señales que entiende el ordenador son digitales.
Más detallesEXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011
EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando
Más detallesPROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas
Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.
Más detallesESTRUCTURA DE DATOS: ARREGLOS
ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción
Más detallesVII. Estructuras Algebraicas
VII. Estructuras Algebraicas Objetivo Se analizarán las operaciones binarias y sus propiedades dentro de una estructura algebraica. Definición de operación binaria Operaciones como la suma, resta, multiplicación
Más detallesSemántica Denotacional
Semántica Denotacional Idea: El significado de un programa es la función denotada por el programa Componentes del metalenguaje para la definición semántica denotacional de un L.P.: Dominios sintácticos
Más detallesTema 2. Espacios Vectoriales. 2.1. Introducción
Tema 2 Espacios Vectoriales 2.1. Introducción Estamos habituados en diferentes cursos a trabajar con el concepto de vector. Concretamente sabemos que un vector es un segmento orientado caracterizado por
Más detallesMetodología y Tecnología de la Programación
Metodología y Tecnología de la Programación Curso 2008/09 Tema 7 Tipos de Datos Abstractos Temario 7.1 Concepto de Tipo de Datos Abstracto 7.2 Clasificación de Tipos de Datos Abstractos 7.3 Especificación
Más detallesVisual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario
Empleo de módulos y Procedimientos Procedimientos definidos por el usuario Según lo que hemos visto hasta ahora, Visual Basic, almacena el código en módulos. Hay tres clases de módulos: formularios (.frm),
Más detallesMódulo 9 Sistema matemático y operaciones binarias
Módulo 9 Sistema matemático y operaciones binarias OBJETIVO: Identificar los conjuntos de números naturales, enteros, racionales e irracionales; resolver una operación binaria, representar un número racional
Más detallesby Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true
by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true I. FUNDAMENTOS 3. Representación de la información Introducción a la Informática Curso de Acceso a la Universidad
Más detallesCapítulo 1: Sistemas de representación numérica Introducción. Dpto. de ATC, Universidad de Sevilla - Página 1 de 8
Dpto. de ATC, Universidad de Sevilla - Página de Capítulo : INTRODUCCIÓN SISTEMAS DE REPRESENTACIÓN NUMÉRICA Introducción Bases de numeración Sistema decimal Sistema binario Sistema hexadecimal REPRESENTACIÓN
Más detalles8.1. Introducción... 1. 8.2. Dependencia/independencia estadística... 2. 8.3. Representación gráfica: diagrama de dispersión... 3. 8.4. Regresión...
Tema 8 Análisis de dos variables: dependencia estadística y regresión Contenido 8.1. Introducción............................. 1 8.2. Dependencia/independencia estadística.............. 2 8.3. Representación
Más detallesimplantación Fig. 1. Ciclo de vida tradicional
1. Ciclo de vida tradicional de los sistemas de software En ingeniería de software, la descripción tradicional del ciclo de vida del software está basada en un modelo conocido como el modelo de cascada
Más detallesIngeniería del Software I
- 1 - Ingeniería del Software I Introducción al Modelo Conceptual 2do. Cuatrimestre 2005 INTRODUCCIÓN... 2 CLASES CONCEPTUALES... 3 ESTRATEGIAS PARA IDENTIFICAR CLASES CONCEPTUALES... 3 Utilizar lista
Más detallesA estas alturas de nuestros conocimientos vamos a establecer dos reglas muy prácticas de cómo sumar dos números reales:
ADICIÓN Y RESTA DE NUMEROS REALES ADICIÓN L a adición o suma de números reales se representa mediante el símbolo más (+) y es considerada una operación binaria porque se aplica a una pareja de números,
Más detalles1.1. Introducción y conceptos básicos
Tema 1 Variables estadísticas Contenido 1.1. Introducción y conceptos básicos.................. 1 1.2. Tipos de variables estadísticas................... 2 1.3. Distribuciones de frecuencias....................
Más detallesParámetros con la ventana de selección de usuario, reglas, texto y descomposición (IVE)
QUÉ SON CONCEPTOS PARAMÉTRICOS? Los conceptos paramétricos de Presto permiten definir de una sola vez una colección de conceptos similares a partir de los cuales se generan variantes o conceptos derivados
Más detallesPreliminares. Tipos de variables y Expresiones
Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un
Más detallesEjemplos: Sean los conjuntos: A = { aves} B = { peces } C = { anfibios }
La Teoría de Conjuntos es una teoría matemática, que estudia básicamente a un cierto tipo de objetos llamados conjuntos y algunas veces, a otros objetos denominados no conjuntos, así como a los problemas
Más detallesEstructura de datos y de la información Boletín de problemas - Tema 7
Estructura de datos y de la información Boletín de problemas - Tema 7 1. Un concesionario de coches tiene un número limitado de M modelos, todos en un número limitado de C colores distintos. Cuando un
Más detallesIngeniería en Informática
Departamento de Informática Universidad Carlos III de Madrid Ingeniería en Informática Aprendizaje Automático Junio 2007 Normas generales del examen El tiempo para realizar el examen es de 3 horas No se
Más detallesPresentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:
UNIDAD 8 Presentaciones Reunión. (ITE. Banco de imágenes) as presentaciones son documentos formados por una sucesión de páginas, llamadas diapositivas, que transmiten información estructurada de manera
Más detallesEn cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Más detallesModelo Entidad-Relación
Modelo Entidad-Relación El modelo de datos de entidad-relación (ER) se basa en una percepción de un mundo real que consiste en un conjunto de objetos básicos llamados entidades y de relaciones entre estos
Más detallesEscuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática
Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo
Más detallesEspacios Vectoriales
Espacios Vectoriales Departamento de Matemáticas, CCIR/ITESM 4 de enero de 2 Índice 3.. Objetivos................................................ 3.2. Motivación...............................................
Más detallesUniversidad de Buenos Aires Facultad De Ingeniería. Operaciones Lógicas. [75.40] Algoritmos y Programación I. 2do Cuatrimestre 2010
Universidad de Buenos Aires Facultad De Ingeniería Operaciones Lógicas [75.40] Algoritmos y Programación I 2do Cuatrimestre 2010 Cátedra: Ing. Pablo Guarna Autor: Bernardo Ortega Moncada Índice 1. Introducción
Más detallesDefinición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.
Tema 1 Matrices Estructura del tema. Conceptos básicos y ejemplos Operaciones básicas con matrices Método de Gauss Rango de una matriz Concepto de matriz regular y propiedades Determinante asociado a una
Más detallesTema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código
Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación
Más detallesAlumna: Adriana Elizabeth Mendoza Martínez. Grupo: 303. P.S.P. Miriam De La Rosa Díaz. Carrera: PTB. en Informática 3er Semestre.
Alumna: Adriana Elizabeth Mendoza Martínez. Grupo: 303. P.S.P. Miriam De La Rosa Díaz. Carrera: PTB. en Informática 3er Semestre. Tema: Sistemas Subtema: Base de Datos. Materia: Manejo de aplicaciones
Más detallesBASE DE DATOS UNIVERSIDAD DE LOS ANDES FACULTAD DE MEDICINA T.S.U. EN ESTADISTICA DE SALUD CATEDRA DE COMPUTACIÓN II. Comenzar presentación
UNIVERSIDAD DE LOS ANDES FACULTAD DE MEDICINA T.S.U. EN ESTADISTICA DE SALUD CATEDRA DE COMPUTACIÓN II BASE DE DATOS Comenzar presentación Base de datos Una base de datos (BD) o banco de datos es un conjunto
Más detallesIntroducción a la Programación 11 O. Humberto Cervantes Maceda
Introducción a la Programación 11 O Humberto Cervantes Maceda Recordando En la sesión anterior vimos que la información almacenada en la memoria, y por lo tanto aquella que procesa la unidad central de
Más detallesAlgoritmos y Estructuras de Datos II
8 de abril de 2015 Clase de hoy 1 Repaso Tipos concretos versus abstractos Tipos abstractos de datos 2 3 4 TAD Pila Especificación del TAD Pila Repaso Tipos concretos versus abstractos Tipos abstractos
Más detallesINTRODUCCION A LA PROGRAMACION DE PLC
INTRODUCCION A LA PROGRAMACION DE PLC Esta guía se utilizará para estudiar la estructura general de programación de um PLC Instrucciones y Programas Una instrucción u orden de trabajo consta de dos partes
Más detallesComplemento Microsoft Mathematics
Complemento Microsoft Mathematics El complemento Microsoft Mathematics es un conjunto de herramientas que se pueden usar para realizar operaciones matemáticas y trazado de gráficas con expresiones o ecuaciones
Más detallesPuertas Lógicas. Contenidos. Objetivos
Contenidos Objetivos En esta quincena aprenderás a: Implementar funciones mediante puertas lógicas. Conocer y manejar la simbología de las puertas lógicas. Construir circuitos lógicos en el programa simulador
Más detallesPráctica 2 Gráficos Vectoriales con SVG (versión 29.09.14)
Práctica 2 Gráficos Vectoriales con SVG (versión 29.09.14) Programación 3 Curso 2011-2012 Departamento de Lenguajes y Sistemas Informáticos Universidad de Alicante 1. Introducción En esta segunda práctica
Más detallesApoyo para la preparación de los estudios de Ingeniería y Arquitectura Física (Preparación a la Universidad) Unidad 4: Vectores
Apoyo para la preparación de los estudios de Ingeniería y Arquitectura Física (Preparación a la Universidad) Unidad 4: Vectores Universidad Politécnica de Madrid 5 de marzo de 2010 2 4.1. Planificación
Más detallesLa Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática
La Necesidad de Modelar Analogía Arquitectónica Tiene sentido poner ladrillos sin hacer antes los planos? El modelo, los planos, ayuda a afrontar la complejidad del proyecto. Cuál es el lenguaje adecuado
Más detallesCentro de Capacitación en Informática
Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.
Más detallesManual del Protocolo XML-RPC de Mensajería Negocios
Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...
Más detallesSubespacios vectoriales en R n
Subespacios vectoriales en R n Víctor Domínguez Octubre 2011 1. Introducción Con estas notas resumimos los conceptos fundamentales del tema 3 que, en pocas palabras, se puede resumir en técnicas de manejo
Más detallesCapítulo 9. Archivos de sintaxis
Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos
Más detallesI. ALGEBRA DE BOOLE. c) Cada operación es distributiva con respecto a la otra: a. ( b + c) = a. b + a. c a + ( b. c ) = ( a + b ).
I. I.1 DEFINICION. El Algebra de Boole es toda clase o conjunto de elementos que pueden tomar dos valores perfectamente diferenciados, que designaremos por 0 y 1 y que están relacionados por dos operaciones
Más detallesSistemas de numeración, operaciones y códigos.
Tema : Sistemas de numeración, operaciones y códigos. Para representar ideas, los seres humanos (al menos los occidentales) utilizamos cadenas de símbolos alfanuméricos de un alfabeto definido. En el mundo
Más detallesGENERALIDADES DE BASES DE DATOS
GENERALIDADES DE BASES DE DATOS A fin de evitar que idénticos datos se encuentren repetidos en múltiples archivos, parece necesario que los comunes se almacenen en un archivo único y que este archivo sea
Más detallesApuntes de Matemática Discreta 9. Funciones
Apuntes de Matemática Discreta 9. Funciones Francisco José González Gutiérrez Cádiz, Octubre de 004 Universidad de Cádiz Departamento de Matemáticas ii Lección 9 Funciones Contenido 9.1 Definiciones y
Más detallesNociones Básicas de Sémantica: Semántica Denotacional
Nociones Básicas de Sémantica: Semántica Denotacional Análisis de Lenguajes de Programación Mauro Jaskelioff 21/08/2015 Acerca de la Semántica Operacional En la semántica operacional el significado de
Más detallesTecnólogo Informático- Estructuras de Datos y Algoritmos- 2009
Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier
Más detalles