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
Tema Algoritmos Universidad Politécnica de Nicaragua UPOLI.
Advertisements

PROF. ING. JULIO CESAR CANO RAMIREZ
funciones Por: Carlos Alberto García Acosta
Estructuras de Repetición Algoritmos
Presentado por: Steffany Serebrenik,
MATEMÁTICAS DISCRETAS.
Técnico en programación de Software
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Tipo de Dato Abstracto Tipos de datos:
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Objetivos Específicos de la Unidad
Casos de estudio Estudiaremos tres problemas
2 Acciones y funciones 2.1 Concepto
Funciones en lenguaje C
Funciones Como calculadora, Notación f(x), dominio restringido y recorrido o rango.
Razón de Cambio Promedio Razón de Cambio instantánea (la derivada)
Estructuración y modularidad de los programas Fundamentos de Programación/ Programación I
SUCESIONES Y PROGRESIONES.
Multiplicación de Números Fraccionarios
REPRESENTACIÓN GRÁFICA DE ALGORITMOS
PSEUDOCÓDIGO. DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE REPRESENTACIÓN DE ALGORITMOS.

ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Programación de Computadores
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
Programación en Matlab
SUCESIONES GEOMÉTRICAS
Por Prof. Federico Mejía
PROGRESIONES GEOMETRICAS
Fundamentos de programación
Problemas, algoritmos y programas: Modelar: Simular o programar su solución en un computador. Algoritmos: Es un conjunto finito, y no ambiguo de etapas.
TEMA Nº 1 Conjuntos numéricos.
Inteligencia artificial
CC3001 Algoritmos y Estructuras de Datos
FRACCIONES.
KAREN LOPEZ. 1.) Método Line : Con este método podemos dibujar Líneas y rectángulos en un objeto donde se permita utilizar dicho método, como por ejemplo.
Descomposición Factorial Unidad 5
Ecuaciones diferenciales 1. Ecuaciones diferenciales de primer orden
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.

Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Funciones Definidas por el Programador
Ejercicio 1 Dado un valor correspondiente a una cantidad cualquiera de horas, informe cantidad de minutos y cantidad de segundos. Enseg=H*3600 Enmin=H*60.
Términos algoritmo diseñar algoritmo implementar algoritmo
For variable = Valor_Inicial to Valor_Final Step Incremento Una o más instrucciones (1) Next Step Incremento, permite especificar si se requiere un incremento.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
INAOE CURSO PROPEDEUTICO PARA LA MAESTRIA EN ELECTRONICA
ECUACIONES DIFERENCIALES
ALGORITMOS PRESENTADO POR: FERNANDA LEURO TATIANA CONTRERAS 1004
L ENGUAJE DE E SPECIFICACIÓN Algoritmos y Estructuras de Datos I Especificación – Práctica 2 AEDI Especificación – Práctica 2 1.
Mariela Palma Hernández
Definición y cumplimiento de responsabilidades Giovanni Hernández P. Nivel 4.
Lic. Carla Aguirre Montalvo
Logaritmos.
FACTORIZACIÓN.
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
CONCEPTOS BÁSICOS DE ECUACIONES DIFERENCIALES
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.
L ENGUAJE DE E SPECIFICACIÓN Algoritmos y Estructuras de Datos I Especificación – Práctica 2 AEDI Especificación – Práctica 2 1.
Clase N°5 Generación de instancias de una v.a. (Parte II)
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
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
ÁLGEBRA BÁSICA PRIMER SEMESTRE.
Ciclos condicionales y exactos Estructura de control de ciclos
SOLUCION DE EJERCICIO N°15 SOLUCION EJERCICIO N°17.
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

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 9 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: Bool{ asegura: result == (if (a > b) then a else b); } problema mayor(a, b: Int) = result: Bool{ asegura: result == Beta(a > b)*a + Beta(a<=b)*b; } AEDI 10 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 11 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 12 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 13 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 14 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 15 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 16 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 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 17 Especificaión - Práctica 2

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