Especificación de TAD. Lección 2
|
|
|
- Sofia Peralta Botella
- hace 9 años
- Vistas:
Transcripción
1 Especificación de TAD Lección 2
2 Esquema Características generales de una especificación Especificación algebraica Especificación no formal Lectura recomendada: sección 1.3 del libro de Z.J. Hernández et al. de la bibliografía. Lección 2: Especificación de TAD 2
3 Definición de TAD Un Tipo Abstracto de Datos es un conjunto de valores y de operaciones definidos mediante una especificación independiente de cualquier implementación. TAD = valores + operaciones Lección 2: Especificación de TAD 3
4 Programación con TAD s Pasos en la programación con TAD: 1. Especificación del tipo 2. Implementación del tipo 3. Uso del tipo 1. Especificación del TAD: Establecer la interfaz con el usuario del tipo ( lo que necesita saber el usuario-programador ) Decir qué es el TAD sin decir cómo se implementa Decidir la lista de operaciones necesarias y especificarlas para cada operación describir: información de entrada, información de salida, y el comportamiento o efecto de la operación Lección 2: Especificación de TAD 4
5 Especificación de un TAD La especificación de un TAD consiste en establecer las propiedades que lo definen. Una especificación útil debe ser: Precisa (decir lo imprescindible) General (adaptable a diferentes contextos) Legible (para todos y que todos entiendan lo mismo) No ambigua (evitar problemas de interpretación) La especificación define un único tipo, es decir, define totalmente su comportamiento Lección 2: Especificación de TAD 5
6 Especificación de TAD Alternativas: Especificaciones formales especificación algebraica Precisa, breve, y sin ambigüedades Sintaxis específica Verificación formal de TAD s Especificaciones no formales Generalmente expresada en lenguaje natural También deberá ser precisa, general, legible, no ambigua, y definir totalmente su comportamiento Lección 2: Especificación de TAD 6
7 Especificación Algebraica Técnica formal para especificar TAD Objetivo: Definir un tipo de datos sin ambigüedades (conjunto de valores + operaciones permitidas) Ventajas: Unanimidad de la interpretación Definir tipos independientemente de cualquier posible representación Razonar corrección representación/implementación Deducción de propiedades satisfechas por implementaciones correctas (verificación formal) Generación automática de código a partir de la especificación algebraica Lección 2: Especificación de TAD 7
8 Ejemplo de especificación algebraica espec booleanos género bool operaciones verdad: bool falso: bool _: bool bool _ _, _ _: bool bool bool Una especificación tendrá una parte sintáctica conjunto de valores (realmente, es el NOMBRE del tipo) Lección 2: Especificación de TAD 8
9 Ejemplo de especificación algebraica espec booleanos género bool operaciones verdad: bool falso: bool _: bool bool _ _, _ _: bool bool bool operaciones Una especificación tendrá una parte sintáctica Lección 2: Especificación de TAD 9
10 Ejemplo de especificación algebraica ecuaciones b: bool; fespec verdad = falso falso = verdad b verdad = verdad b falso = b b verdad = b b falso = falso propiedades de las operaciones y una parte semántica Lección 2: Especificación de TAD 10
11 Sintaxis Especificación Algebraica Una especificación algebraica consta de: SIGNATURA, define: parte sintáctica GENEROS: nombres de los nuevos tipos Nombres de las OPERACIONES PERFILES de las operaciones Dominio o aridad Rango o coaridad Conjunto de ECUACIONES parte semántica Lección 2: Especificación de TAD 11
12 Sintaxis Especificación Algebraica espec boolnat géneros booleano, natural operaciones verdad,falso: booleano _: booleano booleano _ _, _ _: booleano booleano booleano 0: natural suc: natural natural _+_, _*_: natural natural natural _ _, _>_: natural natural booleano fespec Símbolo _ indica la posición de los argumentos respecto al nombre de la operación Operaciones prefijas sin paréntesis Operaciones infijas Lección 2: Especificación de TAD 12
13 Semántica Especificación Algebraica espec naturales género natural operaciones 0: natural suc: natural natural _+_: natural natural natural ecuaciones x,y: natural x+0 = x x+suc(y) = suc(x+y) fespec ECUACIONES: término bien formado de los géneros de las variables Lección 2: Especificación de TAD 13
14 Sintaxis Especificación Algebraica OPERACIONES: Clasificación en operaciones: generadoras, modificadoras, u observadoras Notación funcional Toma como parámetros 0 ó N valores (dominio o aridad) Produce un solo valor resultado (rango o coaridad) Las operaciones 0-arias se denominan CONSTANTES de su tipo resultado Lección 2: Especificación de TAD 14
15 Ejemplo de fechas: Especificación algebraica espec fechas usa enteros, booleanos género fecha operaciones parcial crear: entero entero entero fecha día: fecha entero mes: fecha entero año: fecha entero iguales: fecha fecha booleano anterior: fecha fecha booleano posterior: fecha fecha booleano dominios de definición d,m,a: entero; crear(d,m,a) está definida si y solo si 1 d 31 y 1 m 12, y además d, m y a componen una fecha válida, es decir el valor de día d es adecuado para el mes m y el año a, según las reglas del calendario gregoriano Lección 2: Especificación de TAD 15
16 Ejemplo de fechas: Especificación algebraica ecuaciones d,d1,d2,m,m1,m2,a,a1,a2: entero; f1,f2:fecha dia(crear(d,m,a))=d mes(crear(d,m,a))=m año(crear(d,m,a))=a iguales(crear(d1,m1,a1),crear(d2,m2,a2))= =(d1=d2) (m1=m2) (a1=a2) anterior(crear(d1,m1,a1),crear(d2,m2,a2))= = (a1<a2) ((a1=a2) (m1<m2)) ((a1=a2) (m1=m2) (d1<d2)) posterior(f1,f2)= (iguales(f1,f2) anterior(f1,f2)) fespec AND: OR: NOT: Lección 2: Especificación de TAD 16
17 Verificación formal de TAD Especificación formal de TAD: Se puede demostrar que la especificación es correcta Se puede demostrar la corrección de una implementación a partir de su especificación la implementación es fiel a la especificación Por tanto se puede demostrar la corrección de los programas que utilicen el TAD Se puede generar código de implementación del TAD (prototipo) a partir de la especificación Lección 2: Especificación de TAD 17
18 Especificación no formal de TAD Especificaciones no formales de TAD símil contrato público Generalmente expresadas en lenguaje natural También deben ser precisas, generales, legibles, no ambiguas, y definir totalmente el comportamiento del TAD y sus operaciones Lección 2: Especificación de TAD 18
19 Especificación no formal de TAD Describir el conjunto de valores y operaciones del TAD, y establecer todas las propiedades que lo definen, de forma independiente de cualquier posible representación o implementación del TAD Sintaxis parecida a la vista para las especificaciones algebraicas Notación funcional: Toma como parámetros 0 o N valores (dominio o aridad) Produce un solo valor resultado (rango o coaridad) Pero con diferencias: Se dará un nombre a cada uno de los parámetros del dominio, y sin la sección de ecuaciones (parte semántica: descripciones textuales) Una especificación no formal constará de: parte sintáctica: SIGNATURA, que define GENEROS: nombres de los nuevos tipos Nombres de las OPERACIONES PERFILES de las operaciones parte semántica: Descripciones textuales escritas en lenguaje natural pero de forma precisa, general, legible, y no ambigua Lección 2: Especificación de TAD's 19
20 Especificación no formal de TAD parte sintáctica: espec nombreespecificación [ usa especificación1, especificación2, ] {aquí una parte de la especificación que se verá más adelante}... género nombregénero1, operaciones [parcial] nombreoperación : [ dominio ] rango Disponible en el material de clase: resumen (chuleta) de la notación no formal que se utilizará en la asignatura para especificar TAD [parcial] nombreoperación _ : géneroarg nombrearg rango [parcial] _ nombreop _ : genarg1 nomarg1, genarg2 nomarg2 rango... fespec Donde: [ ] Significa que lo que está entre los corchetes es opcional, puede que aparezca o no Dominio es una lista de elementos separados por, y donde cada elemento describe un argumento de la operación, indicando el género y nombre del argumento Rango es un género El símbolo _ indica la posición de los argumentos respecto al nombre de la operación. Se utiliza para indicar operaciones con notación prefija sin paréntesis o con notación infija (ejemplo: _, _ _. ) Lección 2: Especificación de TAD 20
21 Especificación no formal de TAD parte semántica: No debe haber detalles de posibles implementaciones La especificación del TAD es independiente de cualquier posible representación o implementación del TAD Descripciones textuales escritas en lenguaje natural pero de forma precisa, general, legible, y no ambigua: A. DESCRIPCION del TAD: describiendo el conjunto de valores que representa el TAD y las propiedades que lo definen B. PARA CADA OPERACIÓN: junto a su perfil debe describirse completamente: 1. Información de entrada y los prerrequisitos que deban cumplirse para usar la operación (precondición) 2. Comportamiento o efecto de la operación al aplicarse sobre las entradas e indicando qué resultado se genera (poscondición) 3. Situaciones indeseadas o de error: Cuando existen casos para los cuales no existe un valor válido que pueda representar el resultado de la operación Se considerarán operaciones parciales y se indicarán en la especificación Lección 2: Especificación de TAD 21
22 Especificación no formal de TAD partes sintáctica y semántica: espec nombreespecificación [ usa especificación1, especificación2, ] {aquí una parte de la especificación que se verá más adelante}... género nombregénero1, {descripción del TAD} operaciones [parcial] nombreoperación : [ dominio ] rango {Descripción del dominio y el rango de la operación. Parcial: descripción de las situaciones que hacen la operación parcial}... [parcial] nombreoperación _ : géneroarg nombrearg rango {Descripción del dominio y el rango de la operación. Parcial: descripción de las situaciones que hacen la operación parcial}... [parcial] _ nomop _ : genarg1 nomarg1, genarg2 nomarg2 rango {Descripción del dominio y el rango de la operación. Parcial: descripción de las situaciones que hacen la operación parcial} fespec Disponible en el material de clase: resumen (chuleta) de la notación no formal que utilizaremos para especificar TAD Lección 2: Especificación de TAD 22
23 Ejemplo de fechas: Especificación no formal espec fechas usa enteros, booleanos género fecha {(Descripción del TAD:) Los valores del TAD fechas representan fechas válidas según las reglas del calendario gregoriano} operaciones parcial crear: entero d, entero m, entero a fecha {Dados los tres valores enteros, se obtiene una fecha compuesta con los tres valores dados usados como día, mes y año respectivamente. Parcial: 1 d 31 y 1 m 12 y además deben formar una fecha válida según el calendario gregoriano.} día: fecha f entero {Dada una fecha f, se obtiene el entero que corresponde al día en la fecha f} mes: fecha f entero {Dada una fecha f, se obtiene el entero que corresponde al mes en la fecha f} año: fecha f entero {Dada una fecha f, se obtiene el entero que corresponde al año en la fecha f} Lección 2: Especificación de TAD's 23
24 Ejemplo de fechas: Especificación no formal iguales: fecha f1, fecha f2 booleano {Dadas dos fechas f1 y f2, se obtiene un booleano con valor verdad si y solo si la fecha f1 es igual que la fecha f2, es decir, corresponden al mismo día, mes y año.} anterior: fecha f1, fecha f2 booleano {Dadas dos fechas f1 y f2, se obtiene un booleano con valor verdad si y solo si la fecha f1 es cronológicamente anterior a la fecha f2.} posterior: fecha f1, fecha f2 booleano {Dadas dos fechas f1 y f2, se obtiene un booleano con valor verdad si y solo si la fecha f1 es cronológicamente posterior a la fecha f2.} fespec Lección 2: Especificación de TAD 24
25 Ejemplo de fechas: Especificación no formal Algún comentario final (pensando en implementación): Sobre las operaciones parciales: Los usuarios del TAD deberán asegurarse de que se cumplan los prerrequisitos (es decir, que los argumentos tengan valores dentro del dominio de definición) antes de utilizar la operación No obstante, la implementación deberá ser robusta, es decir, deberá protegerse frente a valores inconsistentes o que no cumplan los prerrequisitos (tratamiento de errores) Mecanismos de protección frente a errores: Implementación dependiente del lenguaje de programación a utilizar Manejo de excepciones Parámetros de salida de error en cada operación En la especificación indicar las situaciones de error como información adicional para el implementador del TAD y para el usuario del TAD Lección 2: Especificación de TAD's 25
26 Ejercicio: Diseñar un programa que lea una secuencia de enteros de un fichero, mayores que 0, y al acabar escriba en pantalla cada entero leído del fichero junto con su frecuencia de aparición (número total de apariciones del número en el fichero), siguiendo el orden de frecuencias decrecientes. Podemos plantear una solución dividida en 2 módulos: El modulo principal que interactuará con el usuario se encargará de: Preguntar y obtener el nombre del fichero a leer Leer el contenido del fichero y generar los resultados Mostrar los resultados al usuario (números y su frecuencia ordenados) Un modulo con operaciones que permitan almacenar los enteros leídos, junto el número de veces que aparecen, e interrogar sobre los resultados que se necesitan TAD tabla Lección 2: Especificación de TAD 26
27 Tablas de frecuencia: Especificación no formal espec tablas usa naturales, enteros género tabla {DESCRIPCION: Los valores del TAD tablas de frecuencia representan colecciones de números enteros tales que: - no se almacenan enteros repetidos, pero si se registra cuántas veces se ha introducido cada entero (su frecuencia) - las operaciones permiten obtener la información de un entero o su frecuencia según su puesto en el orden decreciente por valores de frecuencia} operaciones inicializar: tabla {Devuelve una tabla t vacía, es decir, que no contiene datos para ningún número entero} añadir: tabla t, entero e tabla {Dada una tabla t, si e no está en t, devuelve la tabla t resultante de añadir e a t con número de apariciones igual a 1; si e está en t, devuelve la tabla resultante de incrementar en 1 el número de apariciones de e (su frecuencia) en t} Lección 2: Especificación de TAD's 27
28 Tablas de frecuencia: Especificación no formal total: tabla t natural {Dada una tabla t, devuelve el número total de enteros para los que contiene información} parcial infoent: tabla t, natural n entero {Dada una tabla t y un número natural n, devuelve el entero que corresponde al n-ésimo entero en la tabla t según el orden en número de apariciones decreciente. Parcial: la operación no está definida si total(t)< n} parcial infofrec: tabla t, natural n natural {Dada una tabla t y un número natural n, devuelve el natural que corresponde al número de apariciones correspondientes al n-ésimo entero en la tabla t según el orden en número de apariciones decreciente. Parcial: la operación no está definida si si total(t)< n} fespec Lección 2: Especificación de TAD's 28
Tipos Abstractos de Datos (TAD) Lección 1
Tipos Abstractos de Datos (TAD) Lección 1 Esquema Paradigmas de programación Definición de TAD Programación con TAD Ventajas de la programación con TAD Lectura recomendada: secciones 1.1 y 1.2 del libro
Los Tipos Abstractos de Datos. Estructuras de Datos y Algoritmos 03/04
Los Tipos Abstractos de Datos Estructuras de Datos y Algoritmos 03/04 Qué son los TAD s? Metodología de programación con TAD s Especificación Algebraica de TAD s Qué son los TAD s? Con los lenguajes de
Estructuras de Datos II (I.T. Informática de Gestión y Sistemas) Boletín nº 1 Tipos Abstractos de Datos: especificaciones algebraicas
Estructuras de Datos II (I.T. Informática de Gestión y Sistemas) Boletín nº 1 Tipos Abstractos de Datos: especificaciones algebraicas Ejercicios resueltos ER1. TAD Figura de trazos Se desea representar
Algoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
Tipos Abstractos de Datos
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
SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
UNIDAD 6 Tipos Abstractos de Datos (TAD) Interfaz e Implementación. Tipos de unidades. Creación y uso de unidades para
Tipos Abstractos de Datos (TAD) Concepto. Abstracción, Ventajas. Encapsulamiento, Interfaz e Implementación. Tipos de unidades. Creación y uso de unidades para implementar TADs. Abstracción: Concepto Simplificación
TAD genéricos. Lección 4
Lección 4 Esquema Concepto de genericidad TAD genéricos Implementación en C++ Lectura recomendada: sección 1.4 del libro de Z.J. Hernández et al. de la bibliografía. Lección 4: TADs genéricos 2 Concepto
2. Tipos abstractos de datos TEMA 3: SEMÁNTICA AXIOMÁTICA. 2. Tipos abstractos de datos. 2. Tipos abstractos de datos. 2. Tipos abstractos de datos
TEMA 3: SEMÁNTICA AXIOMÁTICA 1. Semántica axiomática de un lenguaje de programación Para poder utilizar tipos estructurados en los programas, será necesario tenerlos definidos como Tipos Abstractos de
AMBIENTES DE COMPILACION
AMBIENTES DE COMPILACION Los compiladores a menudo producen como resultado del análisis semántico, una forma de representación intermedia del código fuente. Hoy en día, es cada vez más común que, en ambientes
Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional
CAPÍTULO IV: Programación Funcional 4.1 Introducción a la Programación Funcional 1 Programación Funcional Paradigma diferente a los imperativos, que se aleja de la máquina de von Neumann Basado en funciones
Unidad 1. Análisis de Algoritmos. Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1
Unidad 1 Análisis de Algoritmos Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1 GENERALIDADES Qué se necesita para escribir un programa eficiente? Para diseñar programas eficientes
Concepto. Ventajas. Abstracción, Encapsulamiento, Interfaz e Implementación. Tipos de unidades. Creación y uso de unidades para implementar TADs.
Tipos Abstractos de Datos (TAD) Concepto. Ventajas. Abstracción, Encapsulamiento, Interfaz e Implementación. Tipos de unidades. Creación y uso de unidades para implementar TADs. Abstracción: Concepto Simplificación
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. Generales ALGORITMOS
Conceptos 1 Generales ALGORITMOS Que es un Algoritmo? 2 Es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos
SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º, Año 2003/2004 SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Contenidos: 1. Descripción general de Maude 2. Comandos básicos 3. Formato
Tema 01: Abstracción en los lenguajes de programación y tipo abstracto de dato (TAD)
Tema 01: Abstracción en los lenguajes de programación y tipo abstracto de dato (TAD) M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom (Prof.
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
obtenidos a partir de los objetos que manipula. un nuevo paradigma de programación, La POO es Clases su forma de módulo.
(a) definición (b) elementos y notación (c) modelo de computación (d) ejecución de un sistema (e) exportación selectiva Clases Programación Orientada a Objetos DCIC UNS 2002 47 La POO es un nuevo paradigma
Programación TADs Colecciones Conjuntos, Diccionarios y Tablas
Programación 2 8 - TADs Colecciones Conjuntos, Diccionarios y Tablas 1 El TAD SET (Conjunto) En el diseño de algoritmos, la noción de conjunto es usada como base para la formulación de tipos de datos abstractos
El TAD Árbol. El TAD Árbol
Objetivos! Presentar el árbol como estructura de datos jerárquica! Estudiar diferentes variantes de árboles, tanto en su especificación como en su implementación Contenidos 3.1 Concepto, definiciones y
Prof. María Alejandra Quintero. Informática Año
Prof. María Alejandra Quintero Informática Año 2014-2015 Es la acción de escribir programas de computación con el objetivo de resolver un determinado problema. Implica escribir instrucciones para indicarle
Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down).
PLANTEMAIENTO DEL PROBLEMA Identificación de entradas y salidas Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a la resolución de un problema dado y
Tema II: Introducción al Lenguaje Funcional
Tema II: Introducción al Lenguaje Funcional Características de Haskell Lenguaje funcional de o. superior fuertemente tipificado. Clasifica los entes de un programa en: objetos (constantes y funciones)
Tipos de Datos Abstractos TDA
1 O Historia El origen del concepto de tipo de dato abstracto se remonta al tipo class en el lenguaje SIMULA 67 (Birtwistle et al. 1973). Desde entonces se han desarrollado varios lenguajes que manejan
Ejemplos de aplicación del TAD pila
Ejemplos de aplicación del TAD pila 1. Evaluación de expresiones postfijas Una expresión aritmética en notación postfija (o notación polaca inversa) es una secuencia formada por símbolos de dos tipos diferentes:
Tema 2. Concepto de Algoritmo
Tema 2. Concepto de Algoritmo Objetivos Definir el concepto de algoritmo Resolver problemas sencillos mediante el diseño de un algoritmo Conocer los tipos de datos elementales y las operaciones sobre ellos
INSTITUTO NACIONAL SUPERIOR DEL PROFESORADO TÉCNICO - TÉCNICO SUPERIOR EN INFORMÁTICA APLICADA - PROGRAMACIÓN I
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS La principal razón para que las personas aprendan lenguajes de programación es utilizar una computadora como una herramienta para la resolución de problemas. Cinco
Lógica de predicados
Lógica de predicados Cálculo de predicados Hay ciertos argumentos que parecen ser perfectamente lógicos y que no pueden ser especificados usando cálculo proposicional. Ejemplos: Todos los gatos tienen
Cálculo de predicados. Lógica de predicados. Cálculo de predicados. Cálculo de predicados 08/06/2011
Lógica de predicados Hay ciertos argumentos que parecen ser perfectamente lógicos y que no pueden ser especificados usando cálculo proposicional. Ejemplos: Todos los gatos tienen cola Tomás es un gato
LENGUAJES Y GRAMÁTICAS
LENGUAJES Y GRAMÁTICAS Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 20 de septiembre de 2008 Contenido Lenguajes y Gramáticas Gramáticas Gramáticas
Guía para la documentación de proyectos de software
Estructura y contenido Guía para la documentación de proyectos de software Organización de Computadoras Universidad Nacional del Sur 2017 1. Definiciones y especificación de requerimientos Los requerimientos/requisitos
1. Corrección de un programa TEMA 2: ESPECIFICACIÓN Y CORRECCIÓN DE ALGORITMOS. 1. Corrección de un programa. 1. Corrección de un programa
Uno de los grandes problemas de la programación es la escritura de programas totalmente correctos. Al implementar un programa siempre se introducen errores. Técnicas de detección de errores: Mediante pruebas:
ESTRUCTURAS DE DATOS TEORÍA 2016/2017 PILAS
ESTRUCTURAS DE DATOS TEORÍA 2016/2017 PILAS 1 PILAS Una pila P es una estructura lineal tal que las inserciones, las consultas y las eliminaciones solo se permiten en un único punto. La pila puede no tener
Guía 2: Listas, recursión e inducción
Introducción a los Algoritmos - 2do cuatrimestre 2014 Guía 2: Listas, recursión e inducción Docentes: Walter Alini, Luciana Benotti En esta guía comenzaremos a trabajar con listas Para familiarizarnos
Repaso de Lógica de Primer Orden
Repaso de Lógica de Primer Orden IIC3260 IIC3260 Repaso de Lógica de Primer Orden 1 / 29 Lógica de primer orden: Vocabulario Una fórmula en lógica de primer orden está definida sobre algunas constantes
Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28
Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes
TEMA 1: Algoritmos y programas
TEMA 1: Algoritmos y programas 1.1.-Introducción La razón principal para utilizar un ordenador es para resolver problemas (en el sentido más general de la palabra), o en otras palabras, procesar información
3.6 Introducción a Maude
3-64 CAPÍTULO 3. MÉTODO ALGEBRAICO DE ESPECIFICACIÓN. 3.6 Introducción a Maude Maude es un lenguaje que permite la ejecución simbólica de especificaciones algebraicas dadas mediante ecuaciones y pertenencias,
Tipos Abstractos de Datos
Unidad 6 Tipos Abstractos de Datos Tipos Abstractos de Datos (1) Un Tipo Abstracto de Datos (TAD) es una colección de valores más un conjunto de operaciones que sobre esos valores pueden realizarse, definidas
Lógica de primer orden: Repaso y notación
Lógica de primer orden: Repaso y notación IIC3263 IIC3263 Lógica de primer orden: Repaso y notación 1 / 29 Lógica de primer orden: Vocabulario Una fórmula en lógica de primer orden está definida sobre
Árboles y esquemas algorítmicos. Tema III
Árboles y esquemas algorítmicos Tema III Bibliografía Tema III (lecciones 15 a 22) del libro Campos Laclaustra, J.: Estructuras de Datos y Algoritmos, Prensas Universitarias de Zaragoza, Colección Textos
Tema 1: Sintaxis y Semántica de la Lógica Proposicional
Tema 1: Sintaxis y Semántica de la Lógica Proposicional Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Lógica y Computabilidad Curso 2010 11 LC, 2010 11 Lógica Proposicional
Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Guía práctica de estudio 05: Pseudocódigo
Guía práctica de estudio 05: Pseudocódigo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Autorizado por: M.C. Alejandro Velázquez Mena Guía
Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos
Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos
Introducción a c++ Introducción a la programación EIS Informática III
Introducción a c++ Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras. Pueden usarse para crear programas
Examen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 31 de agosto de 2012 Disponer sobre la mesa en lugar visible un documento de identificación
Examen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 7 de septiembre de 2017 Se debe disponer sobre la mesa en lugar visible un documento
[TEMA #2. ETAPAS Y TÉCNICAS PARA EL DESARROLLO DE PROBLEMAS CON AYUDA DEL COMPUTADOR.]
La resolución de un problema mediante una computadora consiste en el proceso que a partir de la descripción de un problema, expresado habitualmente en lenguaje natural y en términos propios del dominio
Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:
Clase teórica 2 Algoritmos en C Página 1 de 6 TIPOS DE DATOS Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación: Por el momento nuestro
MODELOS DE KRIPKE. Lógicas para la Informática y la Inteligencia Artificial
enero, 2007 MODELOS DE KRIPKE Lógicas para la Informática y la Inteligencia Artificial Ana de la Viuda López Departamento de Informática y Automática Universidad de Salamanca TABLA DE CONTENIDOS TABLA
Práctica 01 - Preprocesamiento básico para un código fuente en lenguaje C Compiladores - Profr. Edgardo Adrián Franco Martínez
2 Contenido Introducción Análisis léxico Funciones del analizador léxico Preprocesamiento básico de un código fuente de C Manejo de búferes 3 Introducción Para la construcción de todo traductor, compilador
16 Análisis sintáctico I
2 Contenido Recordando la estructura de un compilador Recordando el análisis léxico l análisis sintáctico Comparación con el análisis léxico l Rol del Parser Lenguajes de programación Gramáticas structura
2. Desarrolla una especificación informal genérica para el TAD árbol binario. Incluir operaciones para crear y modificar el árbol.
1. Escribe una especificación informal para los distintos métodos de ordenación que conozcas. La especificación debe ser genérica, es decir trabajar con elementos de cualquier tipo. En qué se diferencia
A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -
Trabajo práctico Nº 7 (Resolución de problemas Estructura: pila y cola). Realiza el programa de cada situación problemática. 1- Cargar en una pila n letras del abecedario.(n debe ser menor a 30) 2- En
PRACTICA 5: Autómatas Finitos Deterministas
E. T. S. DE INGENIERÍA INFORMÁTICA Departamento de Estadística, I.O. y Computación Teoría de Autómatas y Lenguajes Formales PRACTICA 5: Autómatas Finitos Deterministas 5.1. Requisito de codificación Cada
ALGEBRA DE BOOLE George Boole C. E. Shannon E. V. Hungtington [6]
ALGEBRA DE BOOLE El álgebra booleana, como cualquier otro sistema matemático deductivo, puede definirse con un conjunto de elementos, un conjunto de operadores y un número de axiomas no probados o postulados.
A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -
Trabajo práctico Nº 7 (Resolución de problemas Estructura: pila y cola). Realiza el programa de cada situación problemática. 1- Cargar en una pila n letras del abecedario.(n debe ser menor a 30) 2- En
Tema 3: Tipos y clases
Tema 3: 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 / 32 IM Tema 3: Tipos y clases
Algoritmos y Estructuras de Datos Ingeniería en Informática
2.1.Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas
GRAMATICAS LIBRES DEL CONTEXTO
GRMTICS LIBRES DEL CONTEXTO Estas gramáticas, conocidas también como gramáticas de tipo 2 o gramáticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto.
Universidad Autónoma del Estado de México Facultad de Medicina
Universidad Autónoma del Estado de México Facultad de Medicina Licenciatura en Bioingeniería Médica Unidad de Aprendizaje: Algoritmos y programación básica Unidad 3: Estructuras de control de flujo en
ESTRUCTURAS DE DATOS Y ALGORITMOS
ESTRUCTURAS DE DATOS Y ALGORITMOS CURSO 2009 PRÁCTICO 8 Nota: al igual que en los prácticos 6 y 7, en los problemas que siguen se usarán los tipos lista y árbol binario, como tipos abstractos, cada uno
Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Exámenes
Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Exámenes Introducción El ejercicio consiste en la implementación de una aplicación para la creación, edición, resolución y corrección de exámenes.
Procesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre
Procesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre Escuela Politécnica Superior de Córdoba Universidad de Córdoba Curso académico: 2016-2017
Lenguajes de Programación Programación funcional
Lenguajes de Programación Programación funcional Roberto Bonvallet Departamento de Informática Universidad Técnica Federico Santa María Concepto de función En el paradigma imperativo: Una función es una
Diagramas de interacción
Tema 6: Diagramas de Interacción Diagramas de interacción Los diagramas de interacción son diagramas que describen cómo grupos de objetos colaboran para conseguir algún fin. Estos diagramas muestran objetos,
MODELO DE REQUISITOS
Capítulo 2 MODELO DE REQUISITOS 2.1 Introducción Un modelo, en el desarrollo de software, define cómo solucionar los problemas que aparecen en el desarrollo de una aplicación. Para desarrollar el software,
SUBPROGRAMAS. Los subprogramas pueden ser invocados varias veces desde diferentes partes del programa.
SUBPROGRAMAS Los subprogramas son un conjunto de instrucciones que realizan una labor específica y se comportan de manera independiente en un programa. Los subprogramas facilitan: Descomponer la complejidad
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
Tema 3: Tipos y clases
Tema 3: 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 Tema 3: Tipos y clases
Tema 3: Tipos y clases
Tema 3: Tipos y clases Programación declarativa (2010 11) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Tema 3: Tipos y clases
Modelos De Computación. Guía Modelos de Computación. Tema I: Lenguajes y Gramáticas
Guía Modelos de Computación Tema I: Lenguajes y Gramáticas Introducción La sintaxis de un lenguaje natural, esto es, la de los lenguajes hablados, como el inglés, el español, el alemán o el francés, es
Unidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
