Especificación de TAD. Lección 2
|
|
- Sofia Peralta Botella
- hace 7 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
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 detallesTEMA I. Programación con Tipos Abstractos de Datos
TEMA I Programación con Tipos Abstractos de Datos 1 2 Lección 1 Tipos Abstractos de Datos (TAD) Indice 1. Concepto de abstracción 2. Deición de TAD 3. Programación con TAD 4. Ventajas de la programación
Más detallesTipos 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
Más detallesLos 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
Más detallesEstructuras 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
Más detallesAlgoritmos 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
Más detallesApuntes de Estructuras de Datos y Algoritmos
Apuntes de Estructuras de Datos y Algoritmos (Segunda edición, 2018) Javier Campos Departamento de Informática e Ingeniería de Sistemas Universidad de Zaragoza ii Tabla de contenidos Tabla de contenidos...
Más detallesTipos 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
Más detallesSISTEMAS 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
Más detallesUNIDAD 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
Más detallesTAD 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
Más detalles2. 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
Más detallesTema 3 Concepto y Especificación de Tipos Abstractos de Datos
Tema 3 Concepto y Especificación de Tipos Abstractos de Datos Pablo Sánchez Dpto. Matemáticas, Estadística y Computación Universidad de Cantabria Santander (Cantabria, España) p.sanchez@unican.es Pablo
Más detallesTablas multidimensionales. Lección 20
Tablas multidimensionales Lección 20 Tablas Multidimensionales Las tablas multidimensionales se definen como tipos funcionales que representan funciones cuyo dominio es el producto cartesiano de varios
Más detallesAMBIENTES 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
Más detallesTipo Abstracto de Dato
Tipo Abstracto de Dato Programación digital II Escuela de Sistemas Facultad de Ingeniería Profesor: Gilberto Diaz Tipos de Datos Con la aparición de los lenguajes de programación en los años 60 se definieron
Más detallesAlgoritmos. 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
Más detallesÁrboles Binarios de Búsqueda. Lección 13
Árboles Binarios de Búsqueda Lección 13 Árboles Binarios de Búsqueda Árboles binarios de búsqueda (abb s): El tipo de los elementos del árbol posee una relación de orden total ( ) Todo árbol vacío es un
Más detallesCAPÍ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
Más detallesFORMATO DEL FICHERO CON LA TABLA DE SÍMBOLOS
FORMATO DEL FICHERO CON LA TABLA DE SÍMBOLOS Para la corrección de la Práctica de Procesadores de Lenguajes, y como se indica en la especificación de la misma (http://dlsiisv.fi.upm.es/procesadores/practica.html),
Más detallesUnidad 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
Más detallesIntroducción a los Tipos Abstractos de Datos
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 un TAD Implementación
Más detallesConcepto. 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
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 detallesApuntes de Programación y estructuras de datos. Abstracción y modularidad
Apuntes de Programación y estructuras de datos. Abstracción y modularidad Nikos Mylonakis nicos@lsi.upc.edu Dept. Llenguatges i Sistemes Informátics Universitat Politécnica de Catalunya Barcelona April
Más detallesConceptos. 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
Más detallesSEMINARIO 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
Más detallesTema 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 edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof.
Más detallesBloque III: Estructuras de datos no lineales
Bloque III: Estructuras de datos no lineales ESTRUCTURAS DE DATOS 1 Tema 6: Conjuntos ESTRUCTURAS DE DATOS 2 Conjuntos: contenidos Introducción Especificación algebraica del TAD TipoConjunto Implementaciones
Más detallesTipos 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
Más detallesobtenidos 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
Más detallesProgramació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
Más detallesEl 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
Más detallesProf. 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
Más detallesEste 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
Más detallesTema 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)
Más detallesTipos 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
Más detallesDepartamento de Informática Universidad de Valladolid Campus de Segovia. TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs)
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 4: TIPOS ABSTRACTOS DE DATOS (TADs) TIPOS ABSTRACTOS DE DATOS (TADs) Introducción Un contraejemplo completo Metodología de la
Más detallesEjemplos 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:
Más detallesTema 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
Más detallesINSTITUTO 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
Más detallesLó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
Más detallesCá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
Más detallesLENGUAJES 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
Más detallesGuí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
Más detalles1. 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:
Más detallesESTRUCTURAS 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
Más detallesTema 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 edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras
Más detallesGuí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
Más detallesRepaso 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
Más detalles1. Los objetos conocidos, es decir, aquellos objetos de los cuales poseemos información total o parcial útil en la búsqueda de los objetos desconocido
3. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS CON EL COMPUTADOR El desarrollo de un programa que resuelva un problema dado es una tarea compleja, ya que es necesario tener en cuenta de manera simultánea muchos
Más detallesComponentes 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
Más detallesTEMA 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
Más detalles3.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,
Más detallesTipos 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
Más detallesLó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
Más detallesÁ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
Más detallesTema 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
Más detallesTodo 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
Más detallesLenguajes de Programación
Lenguajes de Programación Semántica Ma. Laura Cobo Departamento de Ciencias e Ingeniería de la Computación 2018 Prof. Ma. Laura Cobo Página 1 Semántica La clase pasada, vimos como definir la sintaxis y
Más detallesGuí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
Más detallesTipos 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
Más detallesIntroducció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
Más detallesExamen 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
Más detallesExamen 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
Más detalles[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
Más detallesUna 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
Más detallesRecursos compartidos y su especificación
ecursos compartidos y su especificación Lecturas: apuntes de especificación de la asignatura Manuel Carro Universidad Politécnica de Madrid 22 de noviembre de 2007 Este texto se distribuye bajo los términos
Más detallesMODELOS 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
Más detallesPrá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
Más detalles16 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
Más detalles2. 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
Más detallesA 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
Más detallesAbstracciones de diseño
Abstracciones de diseño Abstracciones de diseño Abstracción por parametrización Abstracción por especificación Especificación e implementación de TADs Abstracciones genéricos Abstracciones de control Abstracción
Más detallesPRACTICA 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
Más detallesALGEBRA 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.
Más detallesA 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
Más detallesTema 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
Más detallesTema 3: Tipos y clases
Tema 3: Tipos y clases Informática (2017 18) 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
Más detallesProgramación 1. Tema III. Diseño de programas que trabajan con estructuras de datos. Lección 11. Estructuración agregada de datos
Programación 1 Tema III. Diseño de programas que trabajan con estructuras de datos Lección 11. Estructuración agregada de datos 1 Objetivos de la lección : Conocer las características de las estructuras
Más detallesAlgoritmos 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
Más detallesGRAMATICAS 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.
Más detallesUniversidad 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
Más detallesESTRUCTURAS 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
Más detallesEjercicio 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.
Más detallesProcesadores 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
Más detallesLenguajes 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
Más detallesDiagramas 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,
Más detallesFunciones Segunda parte
Expresiones condicionales Matemática Discreta usando el computador 2011 Funciones Segunda parte Una expresión condicional utiliza una expresión de tipo Bool para decidir entre dos opciones Estructura if...then...
Más detallesMODELO 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,
Más detallesSUBPROGRAMAS. 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
Más detallesEstructura 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
Más detallesTema 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
Más detallesTema 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
Más detallesModelos 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
Más detallesUnidad 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
Más detalles