Tipos lineales I. Tipos Lineales 2
|
|
- Diego Segura Domínguez
- hace 7 años
- Vistas:
Transcripción
1 Tipos Lineales
2 Tipos lineales I En los ordenadores la información se almacena normalmente de manera secuencial: secuencias de bits, secuencias de bloques, secuencias de registros,... En muchos lenguajes (Prolog, Haskell,...) se incorpora un tipo lista predefinido para facilitar la organización secuencial de la información. Las listas se corresponden con las sucesiones finitas de valores de un mismo tipo. Un tipo lista obedece a alguno de los patrones siguientes: Lista = Nil Elt Lista ó ListaNv = Elt Elt ListaNv Los tipos lineales admiten una generación similar a las listas y se diferencian en las operaciones adicionales. Tipos Lineales 2
3 Tipos lineales II Cada tipo lineal utiliza: Un criterio para la formación de las secuencias que siempre se puede reducir al de las listas. Un criterio para acceder a los componentes de una secuencia: primero, último, actual, cualquiera. Un criterio para eliminar elementos: primero, último, actual, cualquiera. Según sean estos criterios tendremos distintos tipos lineales: Pilas (acceso y eliminación del último elemento) Colas (acceso y eliminación del primer elemento) Anillos (acceso y eliminación del elemento actual) Cadenas (acceso y eliminación de cualquier elemento) Tipos Lineales 3
4 Pilas (fmod PILA [X :: TRIV] is sorts Pila[X] PilaNv[X]. subsort PilaNv[X] < Pila[X]. op pilav : -> Pila[X] [ctor]. op apilar : Elt.X Pila[X] -> PilaNv[X] [ctor]. op cima : PilaNv[X] -> Elt.X. op desapilar : PilaNv[X] -> Pila[X].... endfm) pilav apilar(e1,pilav) apilar(e2,apilar(e1,pilav))... Tipos Lineales 4
5 Colas (fmod COLA [X :: TRIV] is sorts Cola[X] ColaNv[X]. subsort ColaNv[X] < Cola[X]. op colav : -> Cola[X] [ctor]. op encola : Elt.X Cola[X] -> ColaNv[X] [ctor]. op primero : ColaNv[X] -> Elt.X. op avanzar : ColaNv[X] -> Cola[X].... endfm) colav encola(e1,colav) encola(e2,encola(e1,colav))... Tipos Lineales 5
6 Anillos (fmod Anillo [X :: TRIV] is sorts Anillo[X] AnilloNv[X]. subsort AnilloNv[X] < Anillo[X]. op anillov : -> Anillo[X] [ctor]. op enganchar : Elt.X Anillo[X] -> AnilloNv[X] [ctor]. op actual : AnilloNv[X] -> Elt.X. op avanzar retroceder : Anillo[X] -> Anillo[X]. op desenganchar : Anillo[X] -> Anillo[X].... endfm) anillov enganchar(e1,anillov) enganchar(e2,enganchar(e1,anillov))... Tipos Lineales 6
7 Listas Genéricas I (fmod LISTA [X :: TRIV] is including MACHINE-INT. sorts Lista[X] ListaNv[X]. subsort ListaNv[X] < Lista[X]. op nil : -> Lista[X] [ctor]. op _:_ : Elt.X Lista[X] -> ListaNv[X] [ctor]. op cabeza : ListaNv[X] -> Elt.X. op cola : ListaNv[X] -> Lista[X]. op _++_ : Lista[X] Lista[X] -> Lista[X]. op longitud : Lista[X] -> MachineInt. op tomar_de_ : MachineInt Lista[X] -> Lista[X]. *** lo que se pueda op quitar_de_ : MachineInt Lista[X] -> Lista[X]. *** lo que se pueda Tipos Lineales 7
8 Listas Genéricas II op pos : Elt.X Lista[X] -> MachineInt. *** 0 si no esta op posinm : Elt.X MachineInt Lista[X] -> MachineInt. op inversa : Lista[X] -> Lista[X]. vars E E1 : Elt.X. var N : MachineInt. vars L L1 : Lista[X]. eq cabeza(e:l) = E. eq cola(e:l) = L. eq nil ++ L = L. eq (E:L) ++ L1 = E : (L ++ L1). eq longitud(nil) = 0. eq longitud(e:l) = 1 + longitud(l). Tipos Lineales 8
9 Listas Genéricas III ceq tomar N de L = nil if N <= 0 or L == nil. ceq tomar N de (E:L) = E:(tomar (N-1) de L) if N > 0. ceq quitar N de L = L if N <= 0 or L == nil. ceq quitar N de (E:L) = quitar (N-1) de L if N > 0. eq pos(e,l) = posinm(e,1,l). eq posinm(e,n,nil) = 0. ceq posinm(e,n,e1:l) = N if E == E1. ceq posinm(e,n,e1:l) = posinm(e,n+1,l) if E =/= E1. eq inversa(nil) = nil. eq inversa(e:l) = inversa(l) ++ (E:nil). endfm) Tipos Lineales 9
10 Ejercicios Definir la operación para invertir listas con ayuda de una función inmersora que utilice un acumulador con una inversa parcial. Demostrar aplicando inducción estructural que L : Lista[X] (L ++ nil = L) Demostrar aplicando inducción estructural que L L1 L2 : Lista[X] ((L ++ L1) ++ L2 = L ++ (L1 ++ L2)) Demostrar aplicando inducción estructural que L L : Lista[X] (inversa(l ++ L ) = inversa(l ) ++ inversa(l)) Tipos Lineales 10
11 Listas de Enteros (view IntM from TRIV to MACHINE-INT is sort Elt to MachineInt. endv) (fmod LISTA-INT is protecting LISTA[IntM]. endfm) Tipos Lineales 11
12 Listas de Listas de Enteros (view LIntM from TRIV to LISTA-INT is sort Elt to Lista[IntM]. endv) (fmod LISTA-LINT is protecting LISTA[LIntM]. endfm) Tipos Lineales 12
13 Listas de números primos I (fmod LISTA-PRIMOS is protecting LISTA[IntM]. op _a_ : MachineInt MachineInt -> Lista[IntM]. op elimmult : MachineInt Lista[IntM] -> Lista[IntM]. op criba : Lista[IntM] -> Lista[IntM]. op primos-hasta : MachineInt -> Lista[IntM]. vars M N : MachineInt. var L : Lista[IntM]. Tipos Lineales 13
14 Listas de números primos II eq M a N = if M > N then nil else M : ((M + 1) a N ) fi. eq elimmult(n, nil) = nil. eq elimmult(n, M : L) = if M % N == 0 then elimmult(n, L) else M : elimmult(n, L) fi. eq criba(nil) = nil. eq criba(m : L) = M : criba(elimmult(m, L)). ceq primos-hasta(n) = nil if N < 1. ceq primos-hasta(n) = 1 : criba(2 a N) if N >= 1. endfm) Tipos Lineales 14
15 Listas Ordenadas I (view Ord from TRIV to TOSET is sort Elt to Elt. endv) (fmod LISTAORD [X :: TOSET] is protecting LISTA[Ord][X]. sorts ListaOrd[X] ListaOrdNv[X]. subsorts ListaOrdNv[X] < ListaNv[Ord][X] ListaOrd[X] < Lista[Ord][X]. op ordenada?_ : Lista[Ord][X] -> Bool. Tipos Lineales 15
16 Listas Ordenadas II op insertar : Elt.X ListaOrd[X] -> ListaOrdNv[X]. op ord-ins : Lista[Ord][X] -> ListaOrd[X]. op mezclar : ListaOrd[X] ListaOrd[X] -> ListaOrd[X]. op ord-mez : Lista[Ord][X] -> ListaOrd[X]. ops minimo maximo : ListaNv[Ord][X] -> Elt.X. op ord-min : Lista[Ord][X] -> ListaOrd[X]. op menores-ig mayores : Lista[Ord][X] -> ListaOrd[X]. op ord-rap : Lista[Ord][X] -> ListaOrd[X].... endfm) Tipos Lineales 16
17 Colas de prioridad (fmod ColaP [X :: TOSET] is sorts ColaPNv[X] ColaP[X]. subsort ColaPNv[X] < ColaP[X]. op colapv : -> ColaP[X] [ctor]. op insertar : Elt.X ColaP[X] -> ColaPNv[X] [ctor]. op min : ColaPNv[X] -> Elt.X. op avanzar-min : ColaPNv[X] -> ColaP[X].... endfm) Tipos Lineales 17
18 Cadenas I (fmod CADENA [X :: TOSET] is protecting MACHINE-INT. sorts Cadena[X] CadenaNv[X] Elt?[X]. subsorts Elt.X < CadenaNv[X] < Cadena[X]. subsort Elt.X < Elt[X]. op * : -> Cadena[X] [ctor]. op : Cadena[X] Cadena[X] -> Cadena[X] [ctor]. vars C1 C2 C3 : Cadena[X]. Var C : CadenaNv[X]. mb C1 C : CadenaNv[X]. mb C C1 : CadenaNv[X]. eq (C1 C2) C3 = C1 (C2 C3). eq * C1 = C1. eq C1 * = C1. Tipos Lineales 18
19 Cadenas II op long : Cadena[X] -> MachineInt. op caracter : MachineInt Cadena[X] -> Elt?[X]. op pos-car : Elt.X Cadena[X] -> MachineInt. op subcadena : MachineInt MachineInt Cadena[X] -> Cadena[X]. op pos-subc : Cadena[X] Cadena[X] -> MachineInt. op _<_ : Cadena[X] Cadena[X] -> Bool. ops pref? suf? subc? : Cadena[X] Cadena[X] -> Bool.... endfm) Tipos Lineales 19
20 Implementación I Para la implementación segura de tipos en un lenguaje de programación es necesario que dicho lenguaje disponga de algún mecanismo de abstracción que permita la ocultación y proteja las estructuras ocultas: Módulos de biblioteca (Modula-2 y C) Interfaz + Implementación Clases (Java) Control de visibilidad para cada componente Tipos Lineales 20
21 Implementación II En lenguajes declarativos, que incorporan el tipo lista como tipo predefinido, los tipos lineales se representan sobre listas implementando sólo las operaciones propias de cada tipo lineal. En lenguajes imperativos (Pascal, Modula2, C, C++), que no permiten la definición directa de estructuras recursivas, hay que utilizar una combinación de registro y puntero a registro para representar los pares (Elt,Lista). Tipos Lineales 21
22 Implementaciones Imperativas I MODULA-2 TYPE Lista = POINTER TO Nodo1; Nodo1 = RECORD ult :Telem; sig :Lista END; C typedef struct Nodo1* Lista; struct Nodo1 {Telem ult; Lista sig}; JAVA class Lista { private Object ult; private Lista sig;... } Tipos Lineales 22
23 Implementaciones Imperativas II En principio, un tipo lineal se puede representar como un puntero a un registro (el último elemento de la estructura). Por cuestiones de eficiencia algunos tipos lineales se definen como registros que contienen varios punteros: La implementación de colas se puede mejorar utilizando un puntero adicional al primer elemento de la cola. La implementación de anillo se puede mejorar utilizando un puntero adicional en cada registro al elemento anterior y conectando el último elemento con el primero y viceversa, para facilitar los giros. Tipos Lineales 23
24 Implementaciones Imperativas III Las operaciones se pueden implementar como funciones o como procedimientos que transforman un argumento. Las operaciones de consulta se suelen implementar como funciones. Las operaciones de transformación (constructoras y operaciones de eliminación de elementos) se implementan como procedimientos que modifican un argumento. Tipos Lineales 24
Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos.
Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos. Con relación a la Estructura LISTA Indicar objetos reales que se puedan modelar con dicha estructura. Listas de Ordenes de visitas
UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.
Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.
Diseño de Pilas y Colas
Diseño de Pilas y Colas Recordamos qué era una Pila? TAD Pila(α) Observadores básicos vacía?: pila(α) bool tope: pila(α) p α (~ vacía?(p)) Generadores vacía: pila(α) apilar: α pila(α) pila(α) Otras Operaciones
UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.
Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.
Tema 8. Listas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz
Tema 8. Listas 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
Clasificación de Grafos
Grafos Clasificación de Grafos Los grafos se utilizan en aplicaciones muy diversas (redes de comunicaciones, redes de transporte, circuitos, planificación de tareas) cada una de las cuales utiliza una
Guía rápida sobre ejecución de especificaciones algebraicas en Maude bajo el entorno Eclipse para estudiantes de Estructuras de Datos.
Guía rápida sobre ejecución de especificaciones algebraicas en Maude bajo el entorno Eclipse para estudiantes de Estructuras de Datos. Actualizado para poder utilizar la herramienta de testing. 1. Introducción
Práctica 2. TAD pila
Objetivos. Práctica. TAD pila Se trata de construir el TAD PILA con dos implementaciones (una acotada y otra no acotada sin cabecera) que compartirán el mismo módulo de definición. Haciendo importación
Estructura de datos Colas
Estructura de Datos Estructura de datos Colas Temario Unidad II 2.1 Definición y operaciones 2.2 Implementación estática 2.3 Implementación dinámica 2.4 Colas de prioridad 2.5 Casos de estudio 1 Definición
Estructuras Dinámicas de datos.
Estructuras Dinámicas de datos. Las estructuras dinámicas de datos son estructuras que crecen a medida que ejecuta un programa. Una estructura dinámica de datos es una colección de elementos llamadas nodos
Estructura de datos. Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.
1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Estructura de datos Licenciatura en Informática IFM - 0411 3-2-8 2.- HISTORIA DEL
LISTAS ENLAZADAS FUNDAMENTOS TEORICOS
LISTAS ENLAZADAS FUNDAMENTOS TEORICOS Una lista enlazada es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un «enlace»
TIPO DE DATO ABSTRACTO (TDA)
TIPO DE DATO ABSTRACTO (TDA) Ing. Eduard Antonio Lozano Córdoba Nota: Toda la información fue copiada de: Libros físicos e Internet Actividad Extra Clases #include #include int binario(int
Estructura de datos y de la información Boletín de problemas - Tema 10
Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico
Listas, Pilas y Colas
Ejercicios de Abstracción 1) Realizar un procedimiento que cuente la cantidad de elementos de una cola. Lo mismo para una pila y una lista. Las estructuras deben quedar en el estado original. 2) Realizar
2. ESTRUCTURAS BÁSICAS
2. ESTRUCTURAS BÁSICAS En el computador un conjunto (no vacío) de datos se almacenan en memoria; el área de memoria se denomina por el elemento X k ; esto es una celda, una unidad de memoria direccionable;
UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS
UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS Curso 2008-09 Examen parcial APELLIDOS: NOMBRE: 1. (0.5 puntos) Enumera las características de un algoritmo
Tema 9: Declaraciones de tipos y clases
Tema 9: Declaraciones de tipos y clases Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla
Listas enlazadas. Programación de Sistemas
Listas enlazadas Programación de Sistemas 1 Estructuras de datos Abstracción que representa un conjunto de datos en un programa con el objeto de facilitar su manipulación Diferentes estructuras de datos
Profesor: José Miguel Rubio L.
Profesor: José Miguel Rubio L. Magíster en Ingeniería Informática Ingeniero Civil en Informática Licenciado en Ciencias de la Ingeniería Técnico en Programación Oficina: 3-20 e-mail 1: jose.rubio.l@ucv.cl
Programación Declarativa Haskell Informática Sistemas Curso Pepe Gallardo Universidad de Málaga. Tema 8. Listas
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 8. Listas 8.1 Secuencias aritméticas 8.2 Algunas funciones predefinidas 8.3 Listas por comprensión
Implementación de las Clases Pila, Cola, Lista y Arbol
1/1 Implementación de las Clases Pila, Cola, Lista y Arbol Josefina Sierra Santibáñez 28 de noviembre de 2017 2/1 Implementación de Estructuras de Datos Implementaremos cada estructura de datos en dos
ANÁLISIS SEMÁNTICO VERIFICACIÓN DE TIPOS
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Programación de sistemas Listas enlazadas
Programación de sistemas Listas enlazadas Departamento de Ingeniería Telemática 1 Contenidos *** Introducción a los genéricos Estructuras de datos Listas enlazadas La clase Node La clase LinkedList Ventajas
Tema 9: Declaraciones de tipos y clases
Tema 9: Declaraciones de tipos y clases Informática (2016 17) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2 / 41 Tema 9:
Concepto de Recursión. Características de algoritmos recursivos. Ejemplos
RECURSION Temario Concepto de Recursión Características de algoritmos recursivos Ejemplos RECURSION Metodologías para resolver problemas: 1. Diseño Top Down 2. Recursión 3. Abstracción de Datos 4. Diseño
Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)
Práctico 4 Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Clasificación de ejercicios: (I) Imprescindibles (R) Recomendados (C) Complementarios Árboles balanceados (AVL)
Tema 3. Patrones y Definiciones de Funciones
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 3. Patrones y Definiciones de Funciones 3.1 Comparación de Patrones Patrones constantes Patrones
Tema 7. El sistema de clases
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 7. El sistema de clases 7.1 Funciones Sobrecargadas Clases e Instancias 7.2 Algunas Clases
Programación Funcional Haskell Clase 22
Programación Funcional Haskell Clase 22 José Raymundo Marcial Romero rmarcial@fi.uaemex.mx BUAP c José Raymundo Marcial Romero. Clase Número 22 p.1/?? Temas de la clase Tipos Numéricos de Haskell Tipos
PILAS Fundamentos
Alg. y Estr. Datos-I / Fund. Progr.-II (R. Ferrís, J. Albert) 11 PILAS 11.1 Fundamentos En este tema y en el siguiente se analizarán las estructuras de datos lineales pilas y colas. Las pilas y las colas
Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1.
Ejercicios Resueltos del Práctico 4 Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1. 1 2 struct NodoLista { 3 int elem ; 4 NodoLista * sig ;
EDA. Tema 8 Colas de Prioridad: Heaps
EDA. Tema 8 Colas de Prioridad: Heaps Natividad Prieto Sáez. DSIC EDA, T-8. Curso 02/03. N.Prieto p.1/55 Objetivos Estudio de las definiciones asociadas a las Colas de Prioridad: Especificación: operaciones
(1) Recordemos qué es una pila...
(1) Recordemos qué es una pila... TAD Pila(α) observadores básicos vacía? : pila(α) bool tope : pila(α) p α desapilar : pila(α) p pila(α) generadores vacía : pila(α) apilar : α pila(α) pila(α) otras operaciones
Universidad de Alcalá Departamento de Ciencias de la Computación
Ejercicio 1.- Extender la especificación PILA[ELEMENTO] del tipo pila visto en clase añadiendo las siguientes operaciones (pueden ser parciales): contar: pila natural, para ver cuántos elementos tiene
Implementaciones de pilas, colas y afines. Memoria dinámica.
Implementaciones de pilas, colas y afines. Memoria dinámica. 1 1 Departamento de Computación, FCEyN, Universidad de Buenos Aires, Buenos Aires, Argentina Algoritmos y Estructuras de Datos II, segundo cuatrimestre
EJERCICIO 2 (3 PUNTOS) A) Sea el árbol binario AVL de la figura siguiente: B) Dada la estructura de la figura siguiente:
ASIGNATURA TITULACIÓN APELLIDOS ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN EJERCICIO 1 (3 PUNTOS) GRUPO CURSO CONVOCATORIA NOMBRE 23 / 24 EXTRAORDINARIA- SEPTIEMBRE CALIFICACIÓN Dado el tipo abstracto de
Manual de turbo pascal
Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de
Tema 6: Estructuras de datos recursivas
Tema 6: Estructuras de datos recursivas Índice 1 Listas jerárquicas...2 2 Árboles binarios... 4 3 Árboles genéricos...7 4 Referencias...10 1. Listas jerárquicas Las listas tienen la propiedad de la clausura
Pilas. Uso (I) * 2 = * + Transformación de expresiones aritméticas de notación infija a postfija. Ejemplo:
Pilas. Uso (I) Transformación de expresiones aritméticas de notación infija a postfija. Ejemplo: 6 + 3 * 2 = 6 3 2 * + Se realiza en una sola pasada, usando una pila donde se van apilando los operadores.
Procesadores 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,
Estructura de Datos y de la Información
Universidad Rey Juan Carlos Curso 2009/10 Ingeniería Técnica en Informática de Gestión Estructura de Datos y de la Información Examen Final Junio 2010 Fecha: 24-6-2010 Soluciones Ejercicio 1. (Puntuación
Tema 3. Patrones y Definiciones de Funciones
Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 3. Patrones y Definiciones de Funciones 3.1 Comparación de Patrones Patrones constantes Patrones para listas Patrones
UNIDAD 9. DATOS COMPLEJOS PILAS
UNI 9. TOS OMPLEJOS PILS Una pila es una lista de elementos en la que se pueden insertar y eliminar elementos sólo por uno de los extremos. omo consecuencia, los elementos de una pila serán eliminados
Aplicación de la Inducción Matemática Programación Funcional. Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca
Aplicación de la Inducción Matemática Programación Funcional Julio Ariel Hurtado Alegría Departamento de Sistemas Universidad del Cauca Motivación Programación Imperativa Declarativa Procedimental Ejemplo:
Universidad de Guadalajara Centro universitario de los Altos Licenciatura en Ingeniería en Computación
1. Identificación del curso Programa de estudios por competencias Estructura de Datos I Programa educativo: Ing. En Computación Unidad de aprendizaje: Estructura de datos I Departamento de adscripción:
Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades:
Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades: La prueba es individual y sin material. La duración es 3 horas.
ESTRUCTURAS DINÁMICAS DE DATOS (PILAS)
200 UNAN LEON Departamento de Computación Ingeniería en Sistema y Telemática Docente: Ing. Juan Carlos Antón S. Asignatura: Algoritmo y Estructuras de Datos ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) Pilas
Complejidad de algoritmos recursivos
Tema 3. Complejidad de algoritmos recursivos 1. INTRODUCCIÓN... 1 CLASIFICACIÓN DE FUNCIONES RECURSIVAS... 1 DISEÑO DE FUNCIONES RECURSIVAS... 2 2. VENTAJAS E INCONVENIENTES DE LA RECURSIVIDAD... 4 3.
4. Pilas ESTRUCTURAS DE DATOS 1
4. Pilas Una Pila es una colección de elementos homogéneos dispuestos en orden tal que se recuperan en orden inverso a como se introdujeron. La extracción e inserción de elementos en la Pila se realiza
Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica.
EQUIVALENCIAS BÁSICAS ENTRE PASCAL Y C A continuación se presentan algunas equivalencias básicas entre estos lenguajes de programación : Operadores en lenguaje C: Operador Descripción % Módulo = Asignación
Tipos Recursivos de Datos
1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),
Segundo Parcial de Programación 2 7 de junio de 2017
Instituto de Computación. Facultad de Ingeniería. Universidad de la República Segundo Parcial de Programación 2 7 de junio de 2017 Problema 1 (30 puntos) Considere un TAD T que permita almacenar a lo sumo
SEMINARIO 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
Conceptos de Programación Orientada a Objetos
Paradigmas de programación Prog. orientada a objetos Conceptos de Programación Orientada a Objetos Abstracción de Programación estructurada Programación imperativa 2 Programación estructurada (I) Programación
El sistema de clases de Haskell. Introducción
Capítulo 5. El sistema de clases de Haskell 56 El sistema de clases de Haskell Introducción Función monomórfica: sólo se puede usar para valores de un tipo concreto not :: Bool Bool not True = False not
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 3: ESTRUCTURAS DINÁMICAS LINEALES. LISTAS ENLAZADAS, PILAS Y COLAS
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 3: ESTRUCTURAS DINÁMICAS LINEALES. LISTAS ENLAZADAS, PILAS Y COLAS ÍNDICE Listas enlazadas Pilas Colas DEFINICIÓN DEL TIPO LISTA
Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México
Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Unidad Académica Profesional Tianguistenco Ingeniería de Software Estructura de Datos
Estructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 3: El TAD Lista lineal Prof. Montserrat Serrano Montero ÍNDICE El TAD lista lineal Implementación con estructuras
11. PILAS Introducción Fundamentos
11. PILAS 11.0 INTRODUCCIÓN... 31 11.1 FUNDAMENTOS... 31 11.2. REPRESENTACIÓN DE LAS PILAS EN C++... 32 Implementación mediante estructuras estáticas... 36 Implementación mediante estructuras dinámicas...
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
Generación de Código Intermedio
Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede
GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:
Cuestionario Modulo 1.1 GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo: 1001 0110. 2. qué es Dato? Definición: Es toda
Evolución de los Lenguajes de Programación. Dr. Oldemar Rodríguez Escuela de Informática Universidad Nacional
Evolución de los Lenguajes de Programación Dr. Oldemar Rodríguez Escuela de Informática Universidad Nacional Qué es un Paradigma de programación? Un paradigma de programación representa un enfoque particular
Unidad Nº V Listas Enlazadas
Instituto Universitario Politécnico Santiago Mariño Unidad Nº V Listas Enlazadas Lista Enlazadas Es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta
1. ESTRUCTURA DE UN PROGRAMA PASCAL Todo programa escrito en lenguaje Pascal, del más simple al más complejo, tiene la siguiente estructura:
1. ESTRUCTURA DE UN PROGRAMA PASCAL Todo programa escrito en lenguaje Pascal, del más simple al más complejo, tiene la siguiente estructura: PROGRAM Nombre_del_programa; ZONA de DECLARACIONES ZONA de INSTRUCCIONES
Lenguajes de Programación. Capítulo 4. Expresiones.
Lenguajes de Programación. Capítulo 4. Expresiones. Carlos Ureña Almagro Curso 2011-12 Contents 1 Introducción 2 2 Literales 5 2.1 Literales tipos primitivos......................................... 5
Estructura de datos y algoritmos. Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES
Estructura de datos y algoritmos Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES 4.1 Introducción 4.2 Ejemplos de TDA dinámicos lineales 4.3 Pilas 4.3.1
Tema 2. Tipos y Estructuras Básicas
Tema 2. Tipos y Estructuras Básicas 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
Solución práctico 6 Tipos Abstractos de Datos Lista, Pila y Cola
Objetivos Trabajar sobre el Tipo Abstracto de Datos Lista, reforzando el desacople entre especificación e implementación. Retomar las implementaciones vistas, como ser Listas Doblemente Encadenadas, Listas
Tecnó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
LISTAS DOBLES y multiples
LISTAS DOBLES y multiples Temas Listas doblemente enlazadas Características y Operaciones Ejemplos Lista múltiples enlaces LISTAS DOBLEMENTE ENLAZADAS y MÚLTIPLE ENLACES Suponga el siguiente problema:
Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad. Guillermo Román Díez
Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción a la Recursión
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:
Nombre y apellidos: Nota: 1. Ejercicio (3 puntos) a) Qué estructura de datos utilizarías para transformar la siguiente expresión a su equivalente expresión postfija? Argumenta tu decisión. Ej. entrada:
Programación. Orienta a Objetos con C++
Programación Orienta a Objetos con C++ Objetivo El alumno comprenderá los conceptos sobre cuales se rige la programación orientada a objetos mediante una base teórica y un conjunto de prácticas, enfocando
Introducción a la Programación Genérica
Introducción a la Programación Genérica Alberto Pardo Instituto de Computación Facultad de Ingeniería Universidad de la República http://www.fing.edu.uy/inco/cursos/proggen Objetivo del curso Introducción
324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso 2015-2
324 MR Versión 1 Prueba Integral 1/3 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: Computación II CÓDIGO: 324 MOMENTO: Prueba Integral FECHA DE APLICACIÓN:
INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación
INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.
TAD Lineales: Pila, Cola y Lista
TAD Lineales: Pila, Cola y Lista Objetivos Conocer los TAD lineales, su funcionamiento y aplicaciones Conocer la especificación de cada uno de ellos Saber realizar implementaciones alternativas Saber usar
Segundo parcial de Programación 2
Generalidades: Segundo parcial de Programación 2 a. La prueba es individual y sin material. b. La duración es 3hs. c. Sólo se contestan dudas acerca de la letra. 8 de Julio de 2016 d. Escriba las hojas
6. El TDA Lista Implementación con listas enlazadas. es de tipo genérico T. Pueden existir elementos repetidos (a diferencia de los conjuntos).
6. El TDA Lista 6.1. Definición 6.2. Operaciones del TDA 6.3. Implementación con vectores 6.4. Implementación con listas enlazadas 6.5. Comparativa Bibliografía: -Weiss - Aho, Hopcroft y Ullman 6.1. Definición
Estructura de Datos. Listas Enlazadas
Estructura de Datos Listas Enlazadas Conceptos de Lista enlazada Una lista enlazada es una secuencia de nodos que se interconectan mediante sus campos de enlace. Nodo: un objeto creado desde una clase
Tema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés
Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Índice general:. Modelo y Aplicación de Lista con Punto de Interés
Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.
Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los
Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs)
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs) Prof. Montserrat Serrano Montero ÍNDICE Tipos de datos El tipo abstracto
Informática Haskell Matemáticas Curso Pepe Gallardo Universidad de Málaga. Tema 8. Listas
Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 8. Listas 8.1 Secuencias aritméticas 8.2 Algunas funciones predefinidas 8.3 Listas por comprensión Ejemplo: QuickSort
Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 1: Recursividad Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Ejemplos recursivos Recursividad
PRÁCTICA Nº 5: 2 sesiones (del 11 de Abril al 17 de Abril de 2003) Listas con punto de interés para la composición de melodías musicales
PRÁCTICA Nº 5: 2 sesiones (del 11 de Abril al 17 de Abril de 2003) Listas con punto de interés para la composición de melodías musicales 0. OBJETIVOS El objetivo de esta práctica es la implementación del
Modelo de Orientación a Aspectos
Modelo de Orientación a Aspectos Noviembre, 2010 Ing. Sahyra Yépez Agenda Qué es el Modelo Orientado a Aspectos? Qué es un Aspecto? Programación Orientada a Aspectos Funcionamiento de POA Características
CONCEPTOS BÁSICOS. Prof. Ing. M.Sc. Fulbia Torres
CONCEPTOS BÁSICOS ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD I CONCEPTOS BÁSICOS Datos. Información. Estructuras de Datos. Operaciones sobre una estructura. Perspectivas o niveles de datos. Implementación
Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I
Tema 4: Gramáticas independientes del contexto Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación.
Tipos de datos algebraicos
Tipos de datos algebraicos Taller de Álgebra I Segundo cuatrimestre de 2013 Programación funcional Recordemos que un tipo de datos es un conjunto dotado con una serie de operaciones sobre los elementos
8- LEX-Expresiones regulares
8- LEX-Expresiones regulares Objetivos: Utilizar la herramienta KEX para trabajar con expresiones regulares Recursos: Maquina virtual Linux distribución Bodhi LXterminal y FLEX Introducción Flex le permite
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 1: RECURSIÓN
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 1: RECURSIÓN ÍNDICE Definición Conceptos básicos Ejemplos recursivos Recursión mútua Recursión e iteración DEFINICIÓN Técnica
Lenguajes de Programación I
Lenguajes de Programación I Verificación de Tipos Ernesto Hernández-Novich Copyright c 2006-2010 Verificación de Tipos Proceso que permite asegurar que un programa obedece las reglas de compatibilidad
Programación en Lenguaje C
Lenguaje de programación C Programación en Lenguaje C Introducción El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo
APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.
APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido
INDICE 1.1. Información y Significado 1.2. Arreglos en C 1.3. Estructura en C 1.4. Clases en C++ 2. La Pila 2.1. Definición y Ejemplos
INDICE Prefacio xiii 1. Introducción a las Estructuras de datos 1 1.1. Información y Significado 1 Enteros binarios y decimales 2 Números reales 4 Cadenas de caracteres 5 Hardware y software 6 Concepto
Tema 6 Patrones de Diseño. Programación Orientada a Objetos Curso 2010/2011
Tema 6 Patrones de Diseño Programación Orientada a Objetos Curso 2010/2011 Contenido Introducción a los patrones de diseño. Patrón del Método plantilla. Patrón Composición. Patrón Estrategia. Clases anónimas