Especificación de Problemas
|
|
- Juan Francisco Rico Núñez
- hace 6 años
- Vistas:
Transcripción
1 Especificación de Problemas Eduardo Bonelli Departamento de Ciencia y Tecnología, UNQ ebonelli@unq.edu.ar 12 de septiembre de 2007
2 Especificación de Problemas Ejemplos
3 Ejemplo de Problema ordenar, en orden creciente, una lista de 3 números enteros Posible dato de entrada [7,1,-3] Posible dato de salida [-5,6,7] Nota: El dato de salida [-5,6,7] es una salida válida aunque no para el dato de entrada [7,1,-3]
4 Qué es un problema? Un problema se describe o especifica exhibiendo: 1. Cuáles son los posibles datos de entrada 2. Cuáles son los posibles datos de salida o resultados 3. Cuáles son las condiciones que debe satisfacerse para que una salida particular sea aceptable para una cierta entrada relación entre datos de entrada y datos de salida Vamos a dar un ejemplo usando listas
5 Ejemplo de especificación de problema Entrada (s): listas de enteros de longitud 3 Salida (t): listas de enteros de longitud 3 Relación de E/S: 1. t es permutación de s 2. Para todo 1 i, j s tal que i < j se cumple que t(i) t(j)
6 Partes de una especificación 1. Encabezado 2. Precondición 3. Poscondición
7 Partes de una especificación - Encabezado problema nombre(parametros) = nombreres:tipores Nombre Parámetros nombreres tipores Nombre del problema Nombre y tipo de cada parámetro Nombre del resultado Tipo del resultado Ejemplo: problema ordenar (s:[int]) = t:[int]
8 Partes de una especificación - Precondición Se refiere a los parámetros de la especificación (i.e. la entrada) Establece condiciones que el usuario (de la especificación) debe cumplir Es lo que requiere el método, programa, algoritmo para hacer su tarea Ejemplo: la lista de entrada s tiene longitud 3
9 Partes de una especificación - Poscondición Condición sobre el resultado Establece condiciones que el programador (o quien construya la solución) debe cumplir Es lo que el método, programa, algoritmo asegura después de su ejecución, siempre que se cumple la precondición Ejemplo: la salida t es una permutación, ordenada de la lista de entrada s
10 Ejemplo completo de especificación problema ordenar(s:[int]) = t:[int] requiere: length s == 3 asegura: perm(s, t) y para todo 1 i,j length s con i < j se cumple que t(i) t(j)
11 Especificación de Problemas Ejemplos
12 Ejemplos de especificaciones Vamos a exhibir una serie de ejemplos de especificaciones de problemas El objetivo es familiarizarse con Formato de presentación Lenguaje de especificación
13 Raíz cuadrada problema raizcuadrada(x:float) = res:float requiere: x >= 0 asegura: res^2 == x
14 Raíz cuadrada Qué sucede si el usuario de la función raizcuadrada, por error, le pasa un número negativo como argumento? En ese caso el contrato entre usuario y programador queda anulado raizcuadrada puede devolver un resultado sin sentido raizcuadrada puede colgarse raizcuadrada puede devolver un error Una alternativa: especificación defensiva
15 Especificación defensiva Puede que el usuario tenga previsto usar la función en un ambiente hostil En ese caso es de preferencia una especificación que se defiende de argumentos erróneos problema raizcuadradadefensiva(x:float) = res:float requiere: nada asegura: (x<0 && se reporta error) (x>=0 && res^2 == x)
16 Mínimo Obtener el mínimo entre dos números reales problema min(x,y:float) = res:float requiere: nada asegura: (res <= x && res <= y) Es correcta la especificación?
17 Mínimo Obtener el mínimo entre dos números reales problema min(x,y:float) = res:float requiere: nada asegura: (res = x res = y) && (res <= x && res <= y)
18 Mínimo - Solución min x y x<=y = x otherwise = y
19 Máximo común divisor Obtener el máximo común divisor de dos números enteros problema mcd(x,y:int) = res:int requiere: nada asegura: (res x && res y) && ( z:int)((z x && z y) => z <= res) aux: (u,v:int):bool = v mod u == 0 Observar el uso de la cláusula aux para definir funciones auxiliares
20 Máximo común divisor - Solución mcd x y x==y = x x>y = mcd (x-y) y x<y = mcd x (y-x)
21 Lookup Buscar un elemento en una lista problema lookup(el:a,lista:[a]) = res:bool requiere: elem el lista asegura: (res <=> elem el lista) Obs: elem es una función de Haskell que determina si el primer argumento es un elemento de la lista dada como segundo argumento Es correcta?
22 Lookup Buscar un elemento en una lista problema lookup(el:a,lista:[a]) = res:bool requiere: nada asegura: (res <=> elem el lista)
23 Mínimo elemento de una lista de enteros Obtener el mínimo elemento de una lista de enteros problema minlistint(l:[int]) = res:int requiere: nada asegura: ( y:int)(elem y l => res <= y) Es correcta?
24 Mínimo elemento de una lista de enteros Obtener el mínimo elemento de una lista de enteros problema minlistint(l:[int]) = res:int requiere: nada asegura: ( y:int)(elem y l => res <= y) && elem res l Si la lista es vacía?
25 Mínimo elemento de una lista de enteros Obtener el mínimo elemento de una lista de enteros problema minlistint(l:[int]) = res:int requiere: length l > 0 asegura: ( y:int)(elem y l => res <= y) && elem res l
26 Indice del máximo elemento de una lista de enteros problema maxindinlistint(l:[int]) = res:int requiere: length l > 0 asegura: 0 <= res < length l && ( i:int)(elem i [0..(length l)-1] => l!!i <= res) Es correcta?
27 Indice del máximo elemento de una lista de enteros problema maxindinlistint(l:[int]) = res:int requiere: length l > 0 asegura: 0 <= res < length l && ( i:int)(elem i [0..(length l)-1] => l!!i <= l!!res)
28 Indice del primer máximo elemento de una lista de enteros Variante del ejemplo anterior problema fstmaxindinlistint(l:[int]) = res:int requiere: length l > 0 asegura: 0 <= res < length l && ( i:int)(elem i [0..(length l)-1] => (l!!i < l!!res (l!!i == l!!res && i >= res)) )
29 Ejercicio Grupos de dos 20 minutos Parte a Parte b Especificar el problema problema prefijo(p:[a],l:[a]) = res:bool que retorna verdadero en caso de que p sea prefijo de l. Especificar el problema problema maxsumprefijo(l:[int]) = res:[int] que retorna un prefijo de l tal que la suma de sus elementos sea mayor que la de cualquier otro prefijo. El resultado res no tiene por qué ser único
30 Ejercicio - Una respuesta posible problema prefijo(p:[a],l:[a]) = res:bool requiere: nada asegura: ( l :[a])(p++l == l) problema maxsumprefijo (l:[int]) = res:[int] requiere: nada asegura: prefijo(res,l) && ( p :[Int])(prefijo(p,l) => sum p <= sum l)
Especificación de programas. Algoritmos y Estructuras de Datos I. Correctitud de ciclos
Especificación de programas Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Simulacro Coloquio Final - clase 1 Sean dos programas, cada uno recibe
Más detallesPráctica 4 Especificación de problemas
Práctica 4 Especificación de problemas Algoritmos y Estructura de Datos I Primer Cuatrimestre 2011 Ejercicio 1. Las siguientes especificaciones no son correctas. Indicar por qué, y corregirlas para que
Más detallesIntroducción a la Computación
Introducción a la Computación Primer Cuatrimestre de 2012 Corrección de Algoritmos 1 Especificación, algoritmo y programa Especificación de un problema: Qué problema tenemos? Lenguaje formal (ej. lógica
Más detallesArreglos. Algoritmos y Estructuras de Datos I. Arreglos en C++ Arreglos y listas
Arreglos Algoritmos y Estructuras de Datos I Primer cuatrimestre 2007 Teórica de imperativo 3 Algoritmos de búsqueda secuencias de una cantidad fija de variables del mismo tipo se declaran con un nombre,,
Más detallesEspecificación Clase 2
Especificación Clase 2 Lenguaje de especificación Departamento de Computación, FCEyN, Universidad de Buenos Aires. 27 de marzo del 2015 Menú del día Especificación Repaso del lenguaje de especificación
Más detallesManos a la obra: Recursión, división y listas
Manos a la obra: Recursión, división y listas Taller de Álgebra I Cuatrimestre de verano de 2015 Calentando motores La clase pasada vimos ejemplos de definiciones recursivas. Hoy vamos a continuar con
Más detallesLaboratorio 4 Tema 6. Procedimientos: Acciones, Funciones y Pase de Parámetros
Laboratorio 4 Tema 6. Procedimientos: Acciones, Funciones y Pase de Parámetros Procedimientos El paradigma de programación basado en procedimientos se basa en la posibilidad de crear procedimientos computacionales
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 detallesPráctica N o 1 - Programación Funcional
Práctica N o 1 - Programación Funcional Para resolver esta práctica, recomendamos usar el Hugs 98, de distribución gratuita, que puede bajarse de http://www.haskell.org/hugs/. Ejercicio 1 Dado el siguiente
Más detallesProgramación Funcional
Alberto Pardo Marcos Viera Instituto de Computación, Facultad de Ingeniería Universidad de la República, Uruguay Operaciones sobre listas Listas El tipo de las listas es uno de los más usados en PF Su
Más detallesComplejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande
Complejidad computacional Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Algoritmos - clase 10 Introducción a la complejidad computacional y
Más detallesAlgoritmos y Estructuras de Datos I. Algoritmos y Estructuras de Datos I. Algoritmos y Estructuras de Datos I. Algoritmos y Estructuras de Datos I
Algoritmos y Estructuras de Datos I Algoritmos y Estructuras de Datos I Objetivo: Aprender a programar en lenguajes imperativos. Primer cuatrimestre de 2017 Departamento de Computación - FCEyN - UBA Especificación
Más detallesInformática de 1 o de Matemáticas. Ejercicios de Introducción a Haskell. Ejercicio 1 Consideremos la siguiente definición:
Ejercicios de Introducción a Haskell Informática de 1 o de Matemáticas Ejercicio 1 Consideremos la siguiente definición: doble x = x + x El valor de doble(doble 3) se puede calcular usando distintos métodos
Más detallesTrabajo Práctico 4: Testing Funcional
Trabajo Práctico 4: Testing Funcional 1) Explique claramente cuáles son los objetivos de la Validación y de la Verificación. Qué técnicas usaría para llevar a cabo cada una de estas actividades? 2) Qué
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 detallesListas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015
Listas y Recursión Taller de Álgebra I Primer Cuatrimestre de 2015 Un nuevo tipo: Listas Tipo Lista Las listas pueden contener elementos de cualquier tipo (incluso listas) [1] :: [Integer] [1, 2] :: [Integer]
Más detallesInformá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
Más detallesTema 13: Aplicaciones de programación funcional
Tema 13: Aplicaciones de programación funcional 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
Más detallesEsquema. Condicionales. Ejemplo de condicional. Demostración. P { if (B) uno else dos } Q. P { while (B) cuerpo } Q
Esquema Teórica Imperativo 2 Estructuras de control Instrucción de asignación P{v=e Q // estado 1; vale P: true v:=e; // vale Q: v == e@1 && para toda vi: vi == vi@1 Instrucciones de Control de Flujo P
Más detallesDivisibilidad y congruencia
Divisibilidad y congruencia Taller de Álgebra I Verano 2017 Algoritmo de la división Teorema Dados a, d Z, d 0, existen únicos q, r Z tales que a = qd + r, 0 r < d. Idea de la demostración: (caso a 0,
Más detalles1.1 Define un operador ( ) que devuelva True si y solo si tan solo uno de sus argumentos es True. Por ejemplo:? (3 > 2) (2 > 5)
1 Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Práctica 1 1.1 Define un operador ( ) que devuelva True si y solo si tan solo uno de sus argumentos es True. Por ejemplo:?
Más detallesSlide 1. ordenación de tres números en forma. creciente.
Slide 1 Slide 2 EsTriangulo := (a < b+c) and (b < a+c) and (c < a+b) ; EsEquilatero := (a = b) and (b = c); EsIsosceles := (a = b) and (a c) or (a = c) and (a b) or (b = c) and (a b); EsEscaleno
Más detallesTipos en Haskell. Cecilia Manzino
Tipos Tipo: conjunto de valores asociados a operaciones. Ejemplos: enteros, caracteres, booleanos, funciones de enteros a enteros. Sirven para: detectar errores antes de la evaluación especificar programas
Más detallesn! = 1 2 n 0! = 1 (n+1)! = (n + 1) n!
Capítulo 3 Recursión La recursión es un estilo autoreferencial de definición usado tanto en matemática como en informática. Es una herramienta de programación fundamental, particularmente importante para
Más detalles5. ESTRUCTURAS DE REPETICIÓN
5. ESTRUCTURAS DE REPETICIÓN Las estructuras de repetición, permiten la ejecución de una lista o secuencia de instrucciones () en varias ocasiones. El número de veces que el bloque
Más detallesAritmética en Haskell
Aritmética en Haskell Taller de Álgebra I Primer cuatrimestre de 2014 Algoritmo de división Para obtener el cociente y resto entre dos números enteros, tenemos las funciones div y mod, respectivamente.
Más detallesALGORITMICA Y PROGRAMACION POR OBJETOS I
ALGORITMICA Y PROGRAMACION POR OBJETOS I Nivel 1 Problemas, Soluciones y Programas Marcela Hernández Hoyos Solucionar un Problema = Construir un Programa Problema Programador Herramientas y Lenguajes Análisis
Más detallesProgramació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
Más detallesDivide-y-vencerás, backtracking y programación dinámica
Divide-y-vencerás, backtracking y programación dinámica Diseño y Análisis de Algoritmos Cátedra de Programación Carrera de Ingeniería de Sistemas Prof. Isabel Besembel Carrera Noviembre, 2012 Prof. Isabel
Más detallesPráctica 5. Contenido: Subprogramas (funciones y procedimientos). Parámetros por valor y por referencia.
CI-2125 Computación I Práctica 5 Contenido: Subprogramas (funciones y procedimientos). Parámetros por valor y por referencia. 1. Especifique y escriba el diagrama de flujo de una función de nombre mcd,
Más detallesPara entender la recursividad primero tenemos que entender la recursividad
Para entender la recursividad primero tenemos que entender la recursividad Funcional Clase 1 Matias Reparaz, Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 20 de Septiembre
Más detallesLenguajes de programación. Algoritmos y Estructuras de Datos I. Lenguajes compilados. Lenguajes compilados
Lenguajes de programación Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Teórica - clase 3 Introducción a la programación imperativa Las computadoras
Más detallesAlgoritmos y Estructuras de Datos: Introducción a la Recursión de Programas. Guillermo Román Díez
Algoritmos y Estructuras de Datos: Introducción a la Recursión de Programas Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción
Más detallesPráctico 2: Especificación, derivación y verificación de programas funcionales
Práctico 2: Especificación, derivación y verificación de programas funcionales Algoritmos y Estructuras de Datos I 1 er cuatrimestre 2015 Esta guía tiene como objetivo obtener las habilidades necesarias
Más detallesEl 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
Más detallesTipos paramétricos y recursivos
Tipos paramétricos y recursivos Taller de Álgebra I Verano 2017 Tipos paramétricos Tipos paramétricos Podemos hacer que los constructores de un tipo de datos reciban parámetros. A los tipos construidos
Más detallesDivisibilidad y congruencia
de los ejercicios de la clase 8 Divisibilidad y congruencia Taller de Álgebra I Segundo cuatrimestre de 2016 Introducción A continuación les presentamos algunas soluciones para los ejercicios de la clase
Más detallesGuardas y Tipos de datos
Guardas y Tipos de datos Taller de Álgebra I 1er Cuatrimestre 2017 Definiciones de funciones por casos Podemos usar guardas para definir funciones por casos: f (n) = { 1 si n = 0 0 si no f n n == 0 = 1
Más detallesAlgoritmos de Búsqueda
Introducción a la Computación Algoritmos de Búsqueda Esteban E. Mocskos (emocskos@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, UBA CONICET 11/10/2017 E. Mocskos (UBA CONICET) Algoritmos de Búsqueda
Más detallesPRÁCTICO N o 7. Lenguaje de Diseño (Tercera Parte): Modularización. Ejercicio 1: Teniendo en cuenta la resolución del ejercicio 7 del Práctico 6:
PRÁCTICO N o 7 Lenguaje de Diseño (Tercera Parte) Modularización Ejercicio 1 Teniendo en cuenta la resolución del ejercicio 7 del Práctico 6 a Analice su solución identificando las distintas tareas que
Más detallesBloque 1. Conceptos y técnicas básicas en programación
Bloque 1. Conceptos y técnicas básicas en programación 1. Introducción 2. Datos y expresiones. Especificación de algoritmos 3. Estructuras algorítmicas básicas 4. Iteración y recursión 5. Iteración y recursión
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 detallesCriterios de evaluación. Tema 1. Matemáticas. 6º Primaria
Criterios de evaluación. Tema 1. Matemáticas. 6º Primaria Leer, escribir y descomponer números de hasta nueve cifras Aproximar números naturales a distintos órdenes. Comparar y ordenar números de hasta
Más detallesPartes de un Tipo Abstracto de Datos. Introducción a la Computación (Matemática) TAD Fecha
Partes de un Tipo Abstracto de Datos Introducción a la Computación (Matemática) Primer Cuatrimestre de 2015 Tipos Abstractos de Datos Parte pública: Disponible para el usuario externo. Nombre y tipos paramétricos
Más detallesDemostrando cotas inferiores: Arboles de decisión
Demostrando cotas inferiores: Arboles de decisión De la misma forma que la técnica basada en la mejor estrategia del adversario, vamos a utilizar los árboles de decisión para establecer una cota inferior
Más detallesIntroducción a la computación. Carlos Lopez Pombo
Introducción a la computación Carlos Lopez Pombo Estado Se denomina estado en un modelo de cómputo a un punto en la ejecución de un programa en dicho modelo. En el modelo de Von Neumann esto responde al
Más detallesUNIDAD 1. Números naturales y enteros 1º ESO. Contenidos, objetivos y criterios de evaluación DEPARTAMENTO DE MATEMÁTICAS
UNIDAD 1 Números naturales y enteros 1º ESO Contenidos, objetivos y criterios de evaluación ÍNDICE DE LA UNIDAD 1. Los números naturales. Definición y propiedades. 2. Un ejemplo de sistema de numeración.
Más detallesa) Si ch tiene el valor X y numero el valor 5, cuál sería el efecto de ejecutar cada una de las siguientes llamadas al procedimiento:
RELACION 2 DPTO. LENGUAJES Y CIENCIAS DE LA COMPUTACIÓN ESCCUELA TÉCNICA SUPERIOR DE INGENIEROS EN TELECOMUNICACIONES UNIVERSIDAD DE MÁLAGA SUBALGORITMOS 1- Considera el siguiente procedimiento: Algoritmo
Más detallesUE#03 PROBLEMAS DE SOLUCIÓN DIRECTA FUNCIONES
UE#03 PROBLEMAS DE SOLUCIÓN DIRECTA FUNCIONES Índice Taxonomía de problemas Problemas como funciones Concepto de función Especificación de una función. Cláusulas PRE/POST Funciones de usuario en Java Parámetros
Más detallesAnálisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera
Análisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera RECURSIÓN La recursión es una técnica fundamental en el diseño de algoritmos, que está basada en la solución de versiones más pequeñas del
Más detallesAlgoritmos y Estructuras de Datos I. Algoritmos y Estructuras de Datos I. Algoritmos y Estructuras de Datos I. Algoritmos y Estructuras de Datos I
Algoritmos y Estructuras de Datos I Algoritmos y Estructuras de Datos I Objetivo: Aprender a programar en lenguajes imperativos. Segundo cuatrimestre de 2017 Departamento de Computación - FCEyN - UBA Especificación
Más detallesIntroducción a la Programación Orientada a Objetos DCIC - UNS 2018
2018 EJERCICIO 1. Procesar un número natural N a. Dadas las siguientes definiciones: PRACTICO N 3 Diseño de algoritmos iterativos y planteos recursivos Patrones de algoritmos Implementación en Java o La
Más detallesComplejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande
Complejidad computacional Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2015 Departamento de Computación - FCEyN - UBA Algoritmos - clase 10 Introducción a la complejidad computacional y
Más detallesInformática Haskell Matemáticas Curso Pepe Gallardo Universidad de Málaga. Temario
Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Temario 1 Introducción y semántica operacional 2 Tipos predefinidos 3 Patrones y Definiciones de Funciones 4 Funciones
Más detallesCurso de Estadística Básica
Curso de SESION 3 MEDIDAS DE TENDENCIA CENTRAL Y MEDIDAS DE DISPERSIÓN MCC. Manuel Uribe Saldaña MCC. José Gonzalo Lugo Pérez Objetivo Conocer y calcular las medidas de tendencia central y medidas de dispersión
Más detallesDISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE
DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE REPRESENTACIÓN DE ALGORITMOS PSEUDOCÓDIGO El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al
Más detallesAlgoritmos y Estructuras de Datos Curso 04/05. Ejercicios
35. 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 detalles23. Ordenación de vectores (tablas) Diego Gutiérrez
23. Ordenación de vectores (tablas) 1 O cómo evitar tener que buscar una aguja en un pajar Ordenación 3 Ordenación O cómo evitar tener que buscar una aguja en un pajar Cómo buscamos una palabra en un diccionario?
Más detallesTema 1. ORDENACIÓN, BÚSQUEDA E INTERCALACIÓN INTERNA (Algoritmos)
Tema 1. ORDENACIÓN, BÚSQUEDA E INTERCALACIÓN INTERNA (Algoritmos) 1. Declaraciones previas Para los algoritmos que aparecen a continuación se supone que se han realizado las siguientes declaraciones globales:
Más detallesTipos de datos y clases de tipos
Tipos de datos y clases de tipos Taller de Álgebra I Verano 2017 Tipos de datos Tipo de dato Un conjunto de valores a los que se les puede aplicar un conjunto de funciones. Ejemplos 1 Integer = (Z, {+,,,
Más detallesAbstracción de Datos y
Capítulo 3 Abstracción de Datos y Números El cómputo numérico ha sido tradicionalmente ignorado por la comunidad de Lisp. Hasta antes del Common Lisp nadie había ideado una estrategia detallada para ordenar
Más detallesPráctica 4. Contenido: Estructuras de control iterativas (while, do-while, for). Sentencias break y continue.
CI-2125 Computación I Práctica 4 Contenido: Estructuras de control iterativas (while, do-while, for). Sentencias break y continue. 1. Suponga que un estudiante cambia 5 barajitas en un día. Cada día siguiente
Más detallesSOLUCIONES DE LOS EJERCICIOS DE APLICACIÓN
SOLUCIONES DE LOS EJERCICIOS DE APLICACIÓN UNIDAD TEMÁTICA : ARITMÉTICA Y ÁLGEBRA Ejercicio de Aplicación. (Potencias y Raíces) En la cubierta de un portacontenedores, se sitúan un cierto número de contenedores
Más detallesBloque 1. Conceptos y técnicas básicas en programación
Bloque 1. Conceptos y técnicas básicas en programación 1. Introducción 2. Datos y expresiones. Especificación de algoritmos 3. Estructuras algorítmicas básicas 4. Iteración y recursión 5. Iteración y recursión
Más detallesQué es una computadora? Qué es un algoritmo? Bibliografía. Dispositivo para manipulación simbólica que ejecuta cualquier algoritmo.
Algoritmos y Estructuras de Datos I Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Especificación - clase 1 Introducción a la especificación
Más detallesAlgoritmo de Euclides y ecuaciones de congruencia
Algoritmo de Euclides y ecuaciones de congruencia Taller de Álgebra I Primer cuatrimestre de 2017 Algoritmo de Euclides El algoritmo de Euclides calcula el máximo común divisor entre dos números a, b Z.
Más detallesPráctica 8 Programación Funcional - Tipos Compuestos
Práctica 8 Programación Funcional - Tipos Compuestos Algoritmos y Estructura de Datos I Segundo Cuatrimestre 2010 1 Tipos Compuestos En los ejercicios de tipos compuestos NO TIENEN que definir los tipos
Más detallesOrdenamiento de un arreglo. Algoritmos y Estructuras de Datos I. Demostración. Cota inferior de complejidad tiempo para sorting
Ordenamiento de un arreglo Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Algoritmos - clase 12 Algoritmos de ordenamiento, segunda parte Tenemos
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 detallesEspecificación de TAD. Lección 2
Especificación de TAD Lección 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
Más detallesPrimer Cuatrimestre 2018 Resolución de Problemas y Algoritmos
Lenguaje de Diseño Primer Cuatrimestre 2018 Resolución de Problemas y Algoritmos 1 Programación Modular Programación Estructurada Programas fáciles de leer y modificar Técnicas de Diseños Dividir y Conquistar
Más detallesTema 2. Algoritmos y programas. Informática Grado en Física Universitat de València.
Francisco Grimaldo Moreno Ariadna Fuertes Seder Tema 2 Algoritmos y programas Informática Grado en Física Universitat de València Ariadna.Fuertes@uv.es Francisco.Grimaldo@uv.es 1 Concepto de algoritmo
Más detallesEstructuras de Datos. 14 de junio de Apellidos
Ejercicio 1) (3 puntos). Dado el TAD Pila de Números Enteros con las siguientes operaciones: boolean pilavacia (); void apilar (int x); int desapilar () throws PilaVacia; SE PIDE: Codificar un método estático
Más detallesProgramación imperativa. Algoritmos y Estructuras de Datos I. Lenguaje C. Segundo cuatrimestre de 2014
Programación imperativa Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 4 Modelo de cómputo: Un programa consta
Más detallesTema 2: Introducción a Scheme. Sesión 4: Introducción a Scheme (2)
Tema 2: Introducción a Scheme Sesión 4: Introducción a Scheme (2) Referencias DrRacket (http://racket-lang.org/) A brief tour of DrScheme (http://www.plt-scheme.org/software/drscheme/ tour/) Structure
Más detallesUNIDAD 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.
Más detallesEjercicios Scheme. Para cada función escriba su contrato, descripción, ejemplos y los tests necesarios, antes de su implementación.
Ejercicios Scheme Para cada función escriba su contrato, descripción, ejemplos y los tests necesarios, antes de su implementación. 1 Para soltar la mano 1. Represente la siguiente expresión en Scheme:
Más detallesDISEÑO ESTRUCTURADO. Herramientas de representación de algoritmos
DISEÑO ESTRUCTURADO Herramientas de representación de algoritmos DISEÑO ESTRUCTURADO Técnica para desarrollar algoritmos Fáciles de escribir Leer Verificar Modificar ALGORITMO ESTRUCTURADO Tiene un solo
Más detallesEstructuración del programa en partes más pequeñas y sencillas
Introducción Estructuración del programa en partes más pequeñas y sencillas Modularización Propósito único Identificable Reusable Mayor claridad: programación, depuración, etc. Construcción de librerías
Más detalles1) Indique los primeros elementos de los siguientes conjuntos numéricos: Números Naturales: IN = {
Clase-04 Temas: Operatoria entre números naturales (IN) y enteros (Z), múltiplos, divisores, mínimo común múltiplo (M.C.M.) y máximo común divisor (M.C.D.). 1) Indique los primeros elementos de los siguientes
Más detallesTema 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
Más detalles01. Identifica, en un conjunto de números, los que son enteros.
3.3.4 Criterios específicos de evaluación. 01. Identifica, en un conjunto de números, los que son enteros. 02. Coloca distintos números naturales y enteros en un diagrama que representa a los conjuntos
Más detallesEJERCICIOS DE POLINOMIOS
EJERCICIOS DE POLINOMIOS NOMBRE:... Nº:... º....- Escribe el grado, el número de términos y el nombre (monomio, binomio, trinomio, polinomio) que recibe cada una de las siguientes expresiones algebraicas:
Más detallesConjuntos y combinatoria
Conjuntos y combinatoria Taller de Álgebra I 2do Cuatrimestre 2017 Conjuntos type Definamos un renombre de tipos para conjuntos: type Set a = [a] Otra forma de escribir lo mismo pero más descriptivo. Podemos
Más detallesEjercicio 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 ;
Más detallesLista de problemas: ciclos y funciones en el lenguaje MATLAB
Lista de problemas: ciclos y funciones en el lenguaje MATLAB Esta lista de problemas está compuesta para probar si el estudiante tiene ciertas habilidades básicas de programación con arreglos, funciones
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 detallesTema 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
Más detallesTecnología de la Programación
Tecnología de la Programación Diseño por contrato David Cabrero Souto Facultad de Informática Universidade da Coruña Curso 2007/2008 Introducción Pruebas de unidad Especificación formal de las propiedades?
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 detallesAlgoritmos y Estructuras de Datos I. Especificar problemas versus definir funciones auxiliares. Auxiliares
Lenguaje de especificación Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Especificación - clase 3 Lenguaje de especificación Sirve para especificar
Más detallesIntroducción a la Computación (Matemática)
Introducción a la Computación (Matemática) Primer Cuatrimestre de 2016 Tipos Abstractos de Datos 1 Problema: Agenda Queremos programar una agenda de contactos. De cada persona nos interesa guardar: Nombre
Más detallesY LOS ELEMENTOS QUE FORMAN UN POLINOMIO. Nombre: Curso: Fecha: F Cómo es el polinomio, completo o incompleto?
REPASO Y APOYO OBJETIVO 1 3 RECONOCER EL GRADO Y LOS ELEMENTOS QUE ORMAN UN POLINOMIO Nombre: Curso: echa: Un polinomio es una expresión algebraica formada por la suma algebraica de monomios, que son los
Más detallesProgramación Dinámica
, Algoritmos y Programación 6 de Abril de 2010 Alejandro Deymonnaz Definiciones Divide and Conquer Deiniciones previas Problema recursivo Un problema recursivo es un problema que se puede resolver en base
Más detallesTema 2. Tipos predefinidos
Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 2. Tipos predefinidos 2.1 Tipos simples predefinidos El tipo Bool El tipo Int El tipo Integer
Más detalles