L ENGUAJE DE E SPECIFICACIÓN Algoritmos y Estructuras de Datos I Especificación – Práctica 2 AEDI Especificación – Práctica 2 1.

Slides:



Advertisements
Presentaciones similares
Capítulo 2 Algoritmos.
Advertisements

PROPIEDADES DE EXPONENTES, RADICALES
Números reales/El valor absoluto.
Programación II Recursividad
Estructuras de Repetición Algoritmos
Le propongo un juego….
2.1 – Expresiones algebraicas
OPERACIONES CON FUNCIONES
Tipo de Dato Abstracto Tipos de datos:
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Casos de estudio Estudiaremos tres problemas
L ENGUAJE DE E SPECIFICACIÓN Algoritmos y Estructuras de Datos I Especificación – Práctica 2 AEDI Especificación – Práctica 2 1.
2 Acciones y funciones 2.1 Concepto
APLICACIONES DE PILAS Estructuras de Datos.
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
ESTRUCTURAS DE CONTROL
EXPONENTES Y RADICALES
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
Programación en Matlab
SUCESIONES PROGRESIONES
Por Prof. Federico Mejía
FUNCIONES LOGICAS SI(PL;V_V;V_F)
A TRAVÉS DE LOS ESTÁNDARES DE EXCELENCIA EN MATEMÁTICAS Estándar 2:
ANALISIS MATEMÁTICO PARA ECONOMISTAS IV

TEMA Nº 1 Conjuntos numéricos.
Introducción al análisis de algoritmos
CC3001 Algoritmos y Estructuras de Datos
Descomposición Factorial Unidad 5
Material de apoyo Unidad 4 Estructura de datos
Unidad V: Estimación de
Ciclos (Loops, Repeticiones) Permiten ejecutar una secuencia de sentencias mas de una vez. Hay 2 tipos de loops:  WHILE repite la acción un número indefinido.
Ecuaciones diferenciales 1. Ecuaciones diferenciales de primer orden
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Planteos Recursivos Resolución de Problemas y Algoritmos
Recursividad (2 clases) 1. Nivelación Funciones Menú Vectores String
Apuntes de Matemáticas 3º ESO
NÚMEROS REALES.
1 Análisis de algoritmos Generalidades Agustín J. González 1er. Sem
Análisis de algoritmos Generalidades
Términos algoritmo diseñar algoritmo implementar algoritmo
INAOE CURSO PROPEDEUTICO PARA LA MAESTRIA EN ELECTRONICA
L ENGUAJE DE E SPECIFICACIÓN Algoritmos y Estructuras de Datos I Especificación – Práctica 2 AEDI Especificación – Práctica 2 1.
Reglas Básicas del Álgebra de Boole
Exponentes Enteros.
Fundamentos de Programación
LIC. JOSEPH RUITON RICRA
“CURSO PROPEDÉUTICO PARA EL MEJORAMIENTO DEL PENSAMIENTO MATEMÁTICO”
Análisis de Fourier.
Estructura: COLA Profesor: Ing. Erick López Ch. M.R.I.
Logaritmos.
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
CURSO DE MATEMATICAS TEMAS DE MATEMATICAS Matemáti cas 1 Matemá ticas 2 Matemá ticas 4 Matemá ticas 3 Calculo Diferencial Calculo Integral.
Lenguaje de Programación LISP
L ENGUAJE DE E SPECIFICACIÓN Algoritmos y Estructuras de Datos I Especificación – Práctica 4 AEDI Especificación – Práctica 4 1.
Sistemas de Ecuaciones
P y E 2014 Clase 4Gonzalo Perera1 Repaso de clase anterior Probabilidad condicional, independencia de sucesos. Distribución Binomial e Hipergeométrica.
3. Listas Lic. En C.C. Ann Margareth Meza Rodríguez.
ESTE TERMINO SE DEFINE COMO : UN PROCESO EN EL CUAL SE NOS DESCRIBE UN PROBLEMA (EN LENGUAJE NATURAL), LUEGO DE ESTO SE PLANTEAN POSIBLES RESOLUCIONES.
Introducción Matemática Nivelatoria
Ing. Haydeli del Rosario Roa Lopez
CONJUNTOS NUMÉRICOS. 1.Números Naturales 1.1 Consecutividad numérica 1.2 Paridad e imparidad 1.3 Números primos 1.4 Múltiplos y divisores 1.5 Mínimo Común.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
Potenciación La potenciación o exponenciación es una multiplicación de varios factores iguales, al igual que la multiplicación es una suma de varios.
FUNCIONES EXPONENCIALES Y LOGARÍTMICAS. 1. Funciones exponenciales. Una función exponencial es una función cuya expresión es siendo la base a un número.
Ciclos condicionales y exactos Estructura de control de ciclos
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA COORDINACIÓN DE MATERIAS PROPEDÉUTICAS INGENIERÍA EN SISTEMAS ENERGÉTICOS SUSTENTABLES.
1 Los números reales Los números racionales Los números irracionales
Transcripción de la presentación:

L ENGUAJE DE E SPECIFICACIÓN Algoritmos y Estructuras de Datos I Especificación – Práctica 2 AEDI Especificación – Práctica 2 1

E SPECIFICACIÓN DE PROBLEMAS Expresamos formalmente qué debe cumplir una función para ser solución al problema dado. No expresamos cómo solucionarlo Puede no haber solución al problema que planteamos. O tal vez, no sabemos escribirla. Recordemos que lo que queremos especificar es el contrato que debe cumplir la función para ser considerada solución del problema planteado. AEDI 2 Especificación – Práctica 2

E SPECIFICACIÓN DE PROBLEMAS N OTACIÓN problema nombre(parámetros) = salida { modifica: parámetro; requiere: expresión1; asegura: expresión2; -- DEFINICIÓN DE AUX – } AEDI 3 Especificación – Práctica 2

E JERCICIOS Especificar el problema de, dados dos enteros, devolver cualquiera de ellos. Especificar el problema de, dados dos enteros, devolver el máximo. AEDI 4 Especificaión – Práctica 2

O PERACIONES CON SECUENCIAS long(a) ó |a| indice(s,i) ó s[i] ó s i cab(s) cola(s) en(e,s) ó e en s ó e  s cons(e,s) ó e:s conc(s,t) ó s++t sub(s, e, f) ó s[e..f] cambiar (s, i, e) AEDI 5 Especificación – Práctica 2

O PERACIONES CON SECUENCIAS alguno(s) todos(s) sum(s) ó  s prod(s) ó  s AEDI 6 Especificación – Práctica 2

R ECORDANDO Para todo: (  selectores, condiciones) propiedad Equivale a todos([propiedad | selectores, condiciones]) Existe: (  selectores, condiciones) propiedad Equivale a alguno([propiedad | selectores, condiciones]) Nota: cuando decimos “propiedad” nos referimos a expresiones de tipo Bool. AEDI 7 Especificación – Práctica 2

S ECUENCIAS POR COMPRENSIÓN Notación: [expresión | selectores, condiciones] selectores: variable  secuencia (o <- ) variable va tomando el valor de cada elemento de secuencia en orden. condiciones : expresiones de tipo Bool Resultado Secuencia el valor de la expresión calculado para los elementos seleccionados por los selectores que cumplen las condiciones AEDI 8 Especificación – Práctica 2

U SANDO LISTAS POR COMPRENSIÓN [x | x  [5,7,4,2,8,6,4,5,8,2,7,4], x  4] = ? [x+y | x  a, y  b, x  y], qué indica esta expresión? Por ejemplo: a = [1,2,3] y b = [1,2,3]  ? Sea a una secuencia, obtener la secuencia inversa de a. Sea a una secuencia y n un natural, obtener la secuencia que queda de eliminar los primeros n elementos de a. AEDI 9 Especificación – Práctica 2

M ÁS EJERCICIOS CON SECUENCIAS Especificar el problema de, dadas dos listas de enteros, devolver la suma de las cabezas de cada una. Por ejemplo: a = [1,2,3] y b = [4,5,6]  = 5 Especificar el problema de, dadas dos listas de enteros, devolver la suma del primer elemento par de cada una. Por ejemplo: a = [1,2,3] y b = [4,5,6]  = 6 Especificar el problema de, dadas dos listas con números enteros (que posean igual longitud), devolver la suma elemento a elemento. Por ejemplo: a = [1,2,3] y b = [4,5,6]  [5,7,9] Variante: no requerir que sean de igual longitud y suponer que se devuelve la suma hasta que alguna se acaba. AEDI 10 Especificaión – Práctica 2

M ÁS EJERCICIOS CON SECUENCIAS Encontrar el índice (la posición) del menor elemento en una secuencia de números reales distintos no negativos. Especificar el problema de, dada una lista de enteros, devolver una que tenga los mismo elementos pero ordenada. AEDI 11 Especificaión - Práctica 2

R ECORDANDO Contar cuántas veces aparece x en la secuencia a aux cuenta(x: T, a: [T]): Int = long([y | y <- a, y == x]); Determinar si dos secuencias tienen los mismos elementos (sin importar el orden) aux mismos(a, b: [T]): Bool = |a| == |b| && (  c  a) cuenta(c,a) == cuenta(c,b); AEDI 12 Especificación – Práctica 2

E SPECIFICACIÓN DE PROBLEMAS E JERCICIO – SOLUCIÓN Especificar el problema de, dados dos enteros, devolver el máximo. problema mayor(a, b: Int) = result: Int{ asegura: result == (if (a > b) then a else b); } problema mayor(a, b: Int) = result: Int{ asegura: result == Beta(a > b)*a + Beta(a<=b)*b; } AEDI 13 Especificación – Práctica 2

E SPECIFICACIÓN DE PROBLEMAS E JERCICIO – SOLUCIÓN Especificar el problema de, dados dos enteros, devolver cualquiera de ellos. problema dameUno(a, b: Z) = result: Z{ asegura: (result == a) || (result == b); } AEDI 14 Especificación – Práctica 2

U SANDO LISTAS POR COMPRENSIÓN [x | x  [5,7,4,2,8,6,4,5,8,2,7,4], x  4] = [4,2,4,2,4] [x+y | x  a, y  b, x  y], qué indica esta expresión? Por ejemplo: a = [1,2,3] y b = [1,2,3]  [3,4,3,5,4,5] Sea a una secuencia, obtener la secuencia inversa de a: aux reverso(a:[T]):[T] = [x[|a|-i-1] | i<-[0..|a|)] Sea a una secuencia y n un natural, obtener la secuencia que queda de eliminar los primeros n elementos de s: aux quitarN(n:Int, a:[T]) = [a[i] | i =n] AEDI 15 Especificación – Práctica 2

M ÁS EJERCICIOS CON SECUENCIAS Especificar el problema de, dadas dos listas de enteros, devolver la suma de las cabezas de cada una. problema sumaCabezas (a, b: [Z]) = result : Z { requiere : |a| > 0 && |b| > 0; asegura : result == cab(a) + cab(b); } AEDI 16 Especificaión – Práctica 2

M ÁS EJERCICIOS CON SECUENCIAS Especificar el problema de, dadas dos listas de enteros, devolver la suma del primer elemento par de cada una. problema sumaPrimerosPares (a, b: [Z]) = result : Z { requiere : existePar(a) && existePar(b); asegura : result == primerPar(a) + primerPar(b); aux existePar(a: [Z]) : Bool = (  x <- a) a mod 2 == 0; aux primerPar(a: [Z]) : Z = cab([ x | x <- a, a mod 2 == 0]); } AEDI 17 Especificaión – Práctica 2

M ÁS EJERCICIOS CON SECUENCIAS Especificar el problema de, dadas dos listas con números enteros (que posean igual longitud), devolver la suma elemento a elemento. problema sumaListas (a, b: [Z]) = result : [Z] { requiere : |a| == |b|; asegura : result == [ a[i] + b[i] | i <- [0..|a|)]; } AEDI 18 Especificaión - Práctica 2

M ÁS EJERCICIOS CON SECUENCIAS Variante: no requerir que sean de igual longitud y suponer que se devuelve la suma hasta que alguna se acaba. problema sumaListas (a, b: [Z]) = result : [Z] { asegura : result == [a[i] + b[i] | i <- [0..min(|a|,|b|))]; aux min(a,b: Z) : Z = if (a < b) then a else b; } AEDI 19 Especificaión - Práctica 2

M ÁS EJERCICIOS CON SECUENCIAS Encontrar el índice (la posición) del menor elemento en una secuencia de números reales distintos no negativos. problema indiceMenorDistintos(a:[Float])=result:Z{ requiere a ≠ []; requiere noNegativos: (  x <- a) x  0; requiere distintos: (  i <- [0..|a|), j <- [0..|a|), i ≠ j) a[i] ≠ a[j]; asegura : 0 ≤ result < |a|; asegura : (  x <- a) a[result] ≤ x; } AEDI 20 Especificaión - Práctica 2

M ÁS EJERCICIOS CON SECUENCIAS Especificar el problema de, dada una lista de enteros, devolver una que tenga los mismos elementos pero ordenada. problema ordenar(a:[Z])=result:[Z]{ asegura : mismos(result,a); asegura : (  i <- [0..|a|-1)) result[i] ≤ result[i+1]; } AEDI 21 Especificaión - Práctica 2