1 / 28

PARADIGMAS DE PROGRAMACIÓN

PARADIGMAS DE PROGRAMACIÓN. José Oscar Mugetti Mare 2do. Año Ing. En Sistemas de Información U.T.N. - Facultad Regional San Francisco. TEMA: Especificación de algoritmos funcionales. Identificadores. Especificación con condiciones. Especificación funcional operacional.

abiola
Télécharger la présentation

PARADIGMAS DE PROGRAMACIÓN

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PARADIGMAS DE PROGRAMACIÓN José Oscar Mugetti Mare 2do. Año Ing. En Sistemas de Información U.T.N. - Facultad Regional San Francisco

  2. TEMA: Especificación de algoritmos funcionales • Identificadores. • Especificación con condiciones. • Especificación funcional operacional. • Sub-expresiones, condicional, recursividad, clases de recursividad, notación.

  3. OBJETIVOS: • Introducir algunas características de la programación funcional. • Caracterizar el problema como una función entre conjuntos a ser definida. • Entender el concepto de “órden superior”, que autoriza a realizar abstracciones sobre funciones.

  4. Metodologías y estrategias docentes • Metodología: • Lección magistral para introducir información conceptual • Duración: • 45 minutos • Recursos: • Proyecciones • Ejemplos

  5. Recordatorio Paradigma funcional se basa en el concepto matemático de función: una función es una regla de correspondencia que asocia a cada elemento de un conjunto origen, un elemento del conjunto destino Muy adecuado ENTRE CONJUNTOS QUE DEBEN SER DEFINIDAS Funciones MODULARIZACION PROBLEMA

  6. F(x) DOMINIO RANGO Aplicación de la función Recordatorio El paradigma funcional así como el lógico admiten el cálculo de teorías formales y el sustento de la programación es la matemática y la lógica.

  7. Elementos básicos de especificación • Objeto predefinido: Forma parte de la definición del lenguaje. • Funciones: Un algoritmo es una descripción precisa y no ambigua de un método de transformación de unos valores iniciales en unos valores finales • Identificadores: Nombre que se le da a un objeto que aparece en una especificación

  8. Identificadores IDENTIFICADORES Símbolos especiales predefinidos (Ej. “+”) SIMBÓLICO Formado por letras y dígitos. Pueden ser predefinidos o definidos por el usuario (Ej. Div, EsMínimo, Color_oscuro) ALFANU-MÉRICO

  9. Identificadores • Especificación de un algoritmo: (Define ( (nombre de la función) (valor de la función)) ) Ejemplo

  10. Identificadores (x) = argumento nominal de f - variable que denota valor genérico del dominio de la función. f(x) = 2* x + 1 Imagen del valor del argumento nominal • Estructura de definiciones en forma jerárquica • En cada definición las funciones utilizadas a la derecha se referencia por un nombre (con el cuál fue definida). • Problema complejo = combinación de problemas simples • Los módulos se referencian con el nombre y no se conoce su estructura interna • Nombres que no necesitan definición = “módulos primitivos” • Los no primitivos se denominan “abstractos”

  11. Especificaciones • Especificación con condiciones: Expresa el problema por resolver, es decir que debe hacer la función • Especificación operacional: detalla como se resuelve el problema

  12. Especificación con condiciones • Precondición: Definido para los valores de entrada • Postcondición: Definido para valores concretos de salida a partir de la precondición Ejemplo: Factorial de un nº entero 1 si n =o n (n-1)(n-2)...1 si n > 0 n! = Precondición: que n sea un número entero Postcondición: que devuelva un valor z = n!

  13. Especificación con condiciones • Función parcial: Definida solamente para ciertos elementos de su dominio • Función Total: Definida sobre todo el dominio (generalmente éstas carecen de precondición) La precondición y la poscondición son sentencias lógicas cuyas únicas variables libres son los parámetros formales. Implícitamente estos parámetros están cuantificados universalmente

  14. Funcional = función Se describe a partir de datos genéricos <cuerpo> Parámetros formales Encerrados entre ( ) Especificación funcional operacional • Describe un algoritmo y por lo tanto consta de una función <cabecera> Ejemplo

  15. Especificación funcional operacional • Sintaxis única, escrita en metalenguaje • Los programas en Scheme no tienen “tipos”

  16. Especificación funcional operacional • Definición de funciones: (Define (nombre función)(valor función)) (Lambda (x) ( * x x ) Podríamos así definir la función cuadrado: (Define cuadrado (lambda (x) (* x x) ) )

  17. Especificación funcional operacional • Constantes: (define constante? number?) (define (deriva_constante x E) 0 ) • Variables: (define variable? symbol?) (define (deriva_variable x E) if (equal? x E) 1 0 ) )

  18. Especificación funcional operacional • Condicionales: • number?Verifica si el argumento es un número • symbol? Verifica si el argumento es un símbolo • equal? Verifica si los argumentos son estructuralmente iguales

  19. Especificación funcional operacional • Quote: es necesario para que las expresiones sean tratadas como datos (Define ejemplo ‘(+ 2 3) ) • Listas: Es una secuencia de cero o más valores, una lista se escribe encerrándola entre paréntesis; puede existir una lista vacía • la lista puede considerarse como una cabeza y el resto de la lista Ejemplo

  20. Especificación funcional operacional • Operaciones sobre listas: • (null? X) Verdadera si la lista es vacía • (car x) El primer elemento de la lista no vacía • (cdr x) El resto de la lista luego del 1er. Elemento • (cons a x) Constructor de listas • Algunas funciones sobre listas: • Longitud • Agregar • Eliminar • Comparar • Invertir ...

  21. Especificación funcional operacional • Función map: Función que hace cambio de los elementos de una lista mientras los copia • Funciónes de órden superior: Sus resultados son los parámetros reales utilizados para convocar a nuevas funciones

  22. Subexpresiones Se utiliza la notación en las cuales existe el paréntesis alrededor del operador y sus operandos. Ejs.: ( 4 + ( 5 * 4) ) = 24 Proporciona así una sintaxis simple a costa de la proliferación de paréntesis SUBEXPRESIONES (paréntesis (entre paréntesis))

  23. Condicional Elige entre dos valores posibles <condición> <expresión1> |<expresión2> con true la 1º con false la 2º Ejs: Función Max (x , y) if (> x y) x y

  24. Notación • Notación infija: paradigma imperativo if b then v1 else v2 • Notación prefija: paradigma funcional if_then_else (b v1 v2)

  25. Recursividad • Función definida en términos de sí misma (Define factorial Lamda (x) (if (equal? x 1) 1 ( * x (factorial (- x 1) ) ) ) ) • Valor del parámetro básico o elemental . Cuando llega allí la función no recurre • Cada recursividad debe afectar a parámetros que lo acerque al parámetro básico Ejemplo

  26. Clases de recursividad • Recursividad lineal: El cuerpo de la función contiene una llamada recursiva • Recursividad no lineal: El cuerpo de la función contiene varias llamadas recursiva • Recursividad mutua: La función no contiene ninguna llamada recursiva, pero en la evaluación surgen llamadas recursivas

  27. Clases de recursividad • Ejemplo de recursividad mutua: Función F (...) ... ... G (...) ... Función G (...) ... ... F (...) ...

  28. No hay conclusión. ¿Que cosa ha concluido, con respecto a la cual podemos llegar a una conclusión? No hay fortunas que puedan predecirse, ni consejos que puedan darse. Adiós William James

More Related