Programación Funcional Lisp-Scheme

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Programación Funcional Lisp-Scheme"

Transcripción

1 Programación Funcional Lisp-Scheme Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional

2 Dónde bajar? Lisp (EdScheme): com

3

4 Ejemplo: => (+ (* 3(+ (* 24) (+ 35))) (+ (- 107) 6)) 57 => (define tamaño 2) tamaño => tamaño 2 => (+ 3 tamaño) 5 => (* 2 tamaño) 4

5 Ejemplo: => (define Pi ) pi => (define radio 10) radio => (define circunferencia (* 2 Pi radio)) circunferencia => circunferencia

6 Funciones en Lisp Ejemplo: => (define (cuadrado d x) (* x x)) => (cuadrado 2) 4

7 Ejemplo: =>(define (circunferencia radio) (* Pi radio)) =>(circunferencia 4)

8 Sintaxis de las funciones: (define (<nombre> <parámetros formales>) (cuerpo))

9 Ejemplo: =>(define (suma_cuadrados x y) (+ (cuadrado x) (cuadrado y))) =>(suma_cuadrados 2 3) 13

10 Ejemplo: =>(define (f a) (suma_cuadrados (+ a 1) (- a 1))) =>(f 5) 52

11 El modelo de sustitución para evaluar funciones (f 5) (suma_cuadrados (+ 5 1) (- 5 1)) (+ (cuadrado (+ 5 1)) (cuadrado (- 5 1))) (+ (* (+51)(+51))(* 5 1)) ( (- 51)(- 5 1))) (+ (* 6 6) (* 4 4)) ( ) 52

12 Sintaxis del if (if <predicado> <consecuencia> <alternativa>) ti

13 Ejemplo: =>(define (f x) (if (>= x 2) (* x x) (if (and (< x 2) (> x -2)) (+ x 1) (/ x 2)))) =>(f 4) 16 =>(f 0) 1

14 Expresiones condicionales y predicados Sintaxis i del cond (cond (<p 1 > <e 1 >) (<p 2 ><e 2 >)... (<p n > <e n >) (else <e n+1 >))

15 Ejemplo: =>(define (f x) (cond ((>= x 2) (+ (* x x) 1)) ((= x 0) 2) (else (* x x x)))) =>(f 3) 10

16 Sentencias read y write - Evaluando un documento (define (calcula-nota x y z) (/ (+ x y z) 3)) (define (paso? n) (>= n 70)) (define (nota) (newline) (write "Deme las notas") (newline) (calcula-nota (read) (read) (read)))

17 (define (resultado) (if (paso? (nota)) (write "GANO") (write "AMPLIACION"))) =>(resultado) "Deme las notas" "GANO"

18 Definiciones Internas: (define (todo) (define (calcula-nota x y z) (/ (+ x y z) 3)) (define (paso? n) (>= n 70)) (define (nota) (newline) (write "Deme las notas") (newline) (calcula-nota (read) (read) (read))) (define (resultado) (if (paso? (nota)) (write "GANO") (write "AMPLIACION"))) (resultado))

19 todo =>(todo) "Deme las notas" "AMPLIACION =>(resultado) // ERROR top-level: unbound variable: resultado

20

21

22 Recursión y Recursión Lineal Ejemplo 1:

23 Versión Recursiva (define (factorial n) (if (or (= n 0) (= n 1)) 1 (* n (factorial (- n 1)))))

24 Versión esó Recursiva ecus Lineal (Recursión só Lineal) ea) (define (factorial1 n) (fac-iter 1 1 n)) (define (fac-iter resultado i n) (if (> i n) resultado (fac-iter (* resultado i) (+ i 1) n)))

25 Modelo o de Sustitución tuc (factorial1 4) (fac-iter 1 1 4) (fac-iter 1 2 4) (fac-iter 2 3 4) (fac-iter 6 4 4) (fac-iter )

26 Ejemplo 2:

27 Versión Recursiva (define (fib n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (fib (- n 1)) (fib (- n 2))))))

28 (define (fib1 n) (fib-iter n)) (define (fib-iter1 ant res i n) (if (>= i n) ant (fib-iter1 iter1 res (+ res ant) (+ i 1) n)))

29 Versión Recursiva Lineal (Recursión Lineal) (define (fib1 n) (fib-iter 1 0 n)) (define (fib-iter a b n) (if (= n 0) b (fib-iter (+ a b) a (- n 1))))

30 Funciones como o Parámetro Ejemplo 1: (define (serie1 a n) (if (> a n) 0 (+ a (serie1 (+ a 1) n))))

31 Ejemplo 2: define (serie2 a n) (if (> a n) 0 (+ (* a a) (serie2 (+ a 1) n))))

32 Ejemplo 3: (define (serie3 a n) (if (> a n) 0 (+ (/ 1 (+ (* a a) 1)) (serie3 (+ a 1) n))))

33 Toda serie es de la forma: Programa general (define (serie f a n) (if (> a n) 0 (+ (f a) (serie f (+ a 1) n))))

34 Ejemplo: (define (cuadrado a) (* a a)) (define (sum f a n) (if (> a n) 0 (+ (f a) (sum f (+ a 1) n)))) (define (serie2 a n) (sum cuadrado a n)) (define (termino i) (/ i (+ (cubo i) 1))) (define (serie3 a n) (sum termino a n))

35 Funciones Lambda Las funciones Lambda permiten definir Funciones Anónimas, con la siguiente sintaxis: (lambda (<parámetros>) <cuerpo>)

36 Ejemplo: (lambda (x) (+ x 4)) Ejemplo: =>(define cubo (lambda (x) (* x x x))) cubo =>(cubo 3) 27

37 Ejemplo: (define (serie f a n) (if (> a n) 0 (+ (f a) (serie f (+ a 1) n)))) (define (serie1 a n) (define (serie1 a n) (serie (lambda (i) (/ i (+ (cubo i) 1))) a n))

38 Uso del let Sintaxis: (let ((<var 1 > <exp 1 >) (<var 2 ><exp 2 >) <var n > <exp n >)) <cuerpo>)

39 Ejemplo: Una función que calcula el sueldo neto: sueldo=ht*sph - 20% deducciones (define (salario HT SPH) (let ((sal-bruto (* HT SPH)) (deduccion (* (* HT SPH) 0.2))) (- sal-bruto deduccion)))

40 Funciones que retornan funciones Ejemplo: Escriba una función que recibe HT, SPH y retorna una función que recibe como parámetro el porcentaje de deducción para calcular el salario neto: (define (salario HT SPH) (lambda (x) (- (* HT SPH) (* (* HT SPH) x)))) =>((salario ) 0.2) =>(salario ) #[compound ]

41 Ejemplo: Escribiremos una función que calcula l la derivada d de una función, que como se sabe es una función definida como sigue: cuando h es pequeño.

42 Código: (define (derivada f h) (lambda (x) (/ (- (f (+ x h)) (f x)) h))) =>((derivada cubo ) 5) =>(derivada cubo ) #[compound ]

43 Pares y Aritmética Simbólica Lisp posee una estructura compuesta denominada par las cuales de manipulan con las funciones: cons, cdry car Ejemplos: =>(define x (cons 1 2)) x =>x (1. 2) x =>(car x) =>(cdr x) 2...

44 =>(define y (cons 3-8)) y =>y (3. -8) =>(define z (cons x y)) z =>z ((1. 2) 3. -8) =>(car z) (1. 2) =>(cdr (d z) (3. -8)

45 =>(car (car z)) 1 =>(caar z) 1 =>(cdr (car z)) 2 =>(cdar z) 2 =>(cddr z) -8

46 Ejemplo: La aritmética de los Racionales Q ; CONSTRUCTOR (define (racional a b) (cons a b)) (define (denominador r) (cdr r)) (define (numerador r) (define (numerador r) (car r))

47 ; DEFINE SUMA DE NUMEROS RACIONALES (define (suma r1 r2) (racional (+ (* (numerador r1) (denominador r2)) (* (denominador r1) (numerador r2))) (* (denominador r1) (denominador r2)))) ; DEFINE RESTA DE NUMEROS RACIONALES (define (resta r1 r2) (racional (- (* (numerador r1) (denominador r2)) (*(denominador r1) (numerador r2))) (* (denominador r1) (denominador r2))))

48 ; DEFINE PRODUCTO DE NUMEROS RACIONALES (define (producto r1 r2) (racional (* (numerador r1) (numerador r2)) (* (denominador r1) (denominador r2)))) ; DEFINE LA DIVISIÓN NUMEROS RACIONALES (define (division r1 r2) (racional (* (numerador r1) (denominador r2)) (* (denominador r1) (numerador r2))))

49 ; IMPRIME NUMEROS RACIONALES (define (imprime r) (newline) (write (numerador r)) (write-char #\/ ) (write (denominador r)))

50 Ejemplos de Uso =>(define r1 (racional 1 2)) r1 =>(define r2 (racional 3 4)) r2 =>(imprime r1) 1/2 =>(imprime r2) 3/4 =>(define z (suma r1 r2)) z =>(imprime z) 10/8 =>(define p (producto r1 z)) p =>(imprime p) 10/16

51 Listas Enlazadas vrs Pares =>(cons 3 4) (3. 4) Primera

52 Listas Enlazadas vrs Pares =>(cons (cons 3 4) (cons 7 8)) ((3. 4) 7. 8) Primera Esto no es una Lista

53 Listas Enlazadas vrs Pares =>(cons 3 (cons 4 (cons 7 (cons 8 '())))) ( ) Primera Esto si es una lista

54 La función para construir listas es: (list a1 a2 a3.... an) Ejemplo: =>(list ) (3 478) ; es equivalente a (cons 3 (cons 4 (cons 7 (cons 8 '()))))

55 Más Ejemplos: =>(define L1 (list 'dos 'mas 'tres 'es 4)) l1 =>L1 (dos mas tres es 4) =>(car L1) dos =>(cdr L1) (mas tres es 4)

56 Operaciones es con listas define (longitud L) (if (null? L) 0 (+ 1 (longitud (cdr L))))) (define (n-esimo n L) (if (= n 1) (car L) (n-esimo (- n 1) (cdr L))))

57 (define (suma-lista L) (if (null? L) 0 (+ (car L) (suma-lista (cdr L))))) (define (pega L1 L2) (if (null? L1) L2 (cons (car L1) (pega (cdr L1) L2))))

58 (define (cuadrado-lista L) (if (null? L) '() (cons (* (car L) (car L)) (cuadrado-lista (cdr L))))) (define (multiplica-listas L1 L2) (if (null? L1) '() (cons (* (car L1) (car L2)) (multiplica-listas li li t (cdr L1) (cdr L2)))))

59 Ejemplos: =>(define L1 (list )) l1 =>(define L2 (list )) l2 =>(longitud L1) 4 =>(n-esimo 3 L1) 5 =>(pega L1 L2) ( ) =>(cuadrado-lista L1) ( ) =>(suma-lista L2) 6 =>(multiplica-listas L1 L2) ( )

60 Más Ejemplos (define (aplica f L) (if (null? L) '() (cons (f (car L)) (aplica f (cdr L))))) (define (cuenta-pares es L) (if (null? L) 0 (if (= (modulo (car L) 2) 0) (+ 1 (cuenta-pares (cdr L))) (+ 0 (cuenta-pares (cdr L)))))) (define (invierte L) (if (null? L) '() (append (invierte (cdr L)) (list (car L)))))

Programación Funcional Lisp-DrScheme Primera Parte. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional

Programación Funcional Lisp-DrScheme Primera Parte. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional Programación Funcional Lisp-DrScheme Primera Parte Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional Programación Funcional! La programación funcional es un paradigma de programación

Más detalles

GUÍA BÁSICA DE SCHEME v.4

GUÍA BÁSICA DE SCHEME v.4 Esta guía básica pretende ser una introducción elemental al lenguaje de programación Scheme. Se presenta como una guía de comienzo rápido de tal forma que permita conocer de una forma muy esquemática los

Más detalles

Abstracción de Datos y

Abstracció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 detalles

Tema 3.- Predicados y sentencias condicionales

Tema 3.- Predicados y sentencias condicionales UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER

Más detalles

Tema 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) 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 detalles

TP 3: intérprete de C en LISP (alias máquina virtual de C en LISP )

TP 3: intérprete de C en LISP (alias máquina virtual de C en LISP ) TP 3: intérprete de C en LISP (alias máquina virtual de C en LISP Introducción Se deberá programar un intérprete de C en LISP. El código que ingresará al intérprete tendrá ciertas restricciones: Se utilizará

Más detalles

Manual de Lisp para IACS (Curso 91 92)

Manual de Lisp para IACS (Curso 91 92) Dpto. de Álgebra, Computación, Geometría y Topología Universidad de Sevilla Manual de Lisp para IACS (Curso 91 92) Sevilla, 1992 Contenido 1 Introducción 1 1.1 Introducción............................

Más detalles

Valores Booleanos Interpretación #t Cierto #f Falso --------------------------------------------------------------------

Valores Booleanos Interpretación #t Cierto #f Falso -------------------------------------------------------------------- Valores Booleanos Interpretación #t Cierto #f Falso -------------------------------------------------------------------- Números Pueden ser Complejos Reales Racionales Enteros -------------------------------

Más detalles

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Tipos 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 detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

Lenguajes de Programación

Lenguajes de Programación Lenguajes de Programación Dr. Carlos Artemio Coello Coello Tarea No. 1 12 de enero de 2015 Tomaremos el pseudo-código proporcionado en el libro de texto, cuyas instrucciones guardan el formato ilustrado

Más detalles

Funciones Tipos de funciones y Recursividad

Funciones Tipos de funciones y Recursividad Funciones Tipos de funciones y Recursividad SESION 4 Definición Una función es una subrutina o subprograma que forman un programa que realiza tareas bien definidas. Todo programa en C consta de una o más

Más detalles

Programación Interactiva

Programación Interactiva Capítulo 6 Programación Interactiva 6.1 Cadenas Una cadena es una secuencia de caracteres encerrados en comillas dobles. Scheme proporciona varios procedimientos para manipular cadenas: Procedimiento string?

Más detalles

Implementación de algoritmos y cálculo simbólico

Implementación de algoritmos y cálculo simbólico Dpto. de Álgebra, Computación, Geometría y Topología Universidad de Sevilla Implementación de algoritmos y cálculo simbólico (Curso 90 91) José A. Alonso Jiménez Sevilla, 1990 Contenido 1 Cálculo aritmético

Más detalles

OPERACIONES CON POTENCIAS. Una potencia es un producto de factores iguales. Está formada por la base y el exponente.

OPERACIONES CON POTENCIAS. Una potencia es un producto de factores iguales. Está formada por la base y el exponente. OPERACIONES CON POTENCIAS Una potencia es un producto de factores iguales. Está formada por la base y el exponente. 3. 3. 3. 3 = 3 4 Exponente Base Se puede leer: tres elevado a cuatro o bien tres elevado

Más detalles

TEMARIO PRESENTACIÓN 7 MÓDULO I 17 EXPRESIONES ALGEBRAICAS 19

TEMARIO PRESENTACIÓN 7 MÓDULO I 17 EXPRESIONES ALGEBRAICAS 19 TEMARIO PRESENTACIÓN 7 MÓDULO I 17 EXPRESIONES ALGEBRAICAS 19 Introducción 19 Lenguaje común y lenguaje algebraico 22 Actividad 1 (Lenguaje común y lenguaje algebraico) 23 Actividad 2 (Lenguaje común y

Más detalles

Estructuras de control

Estructuras de control Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando

Más detalles

Isabelle como un lenguaje funcional

Isabelle como un lenguaje funcional Capítulo 1 Isabelle como un lenguaje funcional 1.1 Introducción Nota 1.1.1. Esta notas son una introducción a la demostración asistida utilizando el sistema Isabelle/HOL/Isar. La versión de Isabelle utilizada

Más detalles

sumas = 58 = 48 = 73 = 59 =

sumas = 58 = 48 = 73 = 59 = Operaciones aritmeticas sencillas sumas 93 + 67 + 91 + 28 + 50 + 94 = 58 = 48 = 73 = 59 = 89 + 20 + 58 + 95 + 2 + 95 = 57 = 100 = 54 = 72 = 57 + 7 + 14 + 10 + 19 + 72 = 62 = 19 = 1 = 9 = 80 + 89 + 29 +

Más detalles

Programación 1 - Práctica 0, recargada.

Programación 1 - Práctica 0, recargada. v.6.2.1 Programación 1 - Práctica 0, recargada. Ahora con más ejercicios! 1 Expresiones aritméticas. 1. Considere las siguientes expresiones aritméticas: 12 * 5-7 * 6 3 * 5-7 * 4 / 14 + 3 / 1 cos(0.8)

Más detalles

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un

Más detalles

Tema 4: Procedimientos y estructuras recursivas

Tema 4: Procedimientos y estructuras recursivas Tema 4: Procedimientos y estructuras recursivas Contenidos 1. Recursión 1.1 Pensando recursivamente 1.2 El coste de la recursión 1.3 Soluciones al coste de la recursión: procesos iterativos 1.4 Soluciones

Más detalles

Semántica Denotacional

Semántica Denotacional Semántica Denotacional Idea: El significado de un programa es la función denotada por el programa Componentes del metalenguaje para la definición semántica denotacional de un L.P.: Dominios sintácticos

Más detalles

Metodología de la Programación II. Recursividad

Metodología de la Programación II. Recursividad Metodología de la Programación II Recursividad Objetivos Entender el concepto de recursividad. Conocer los fundamentos del diseño de algoritmos recursivos. Comprender la ejecución de algoritmos recursivos.

Más detalles

Exponencial, lineal y logarítmico

Exponencial, lineal y logarítmico Exponencial, lineal y logarítmico Se verán en este apartado ejemplos de procesos que cursan en un número de pasos exponencial, lineal o logarítmico en la talla de la entrada. Para ilustrar estos procesos

Más detalles

Ejercicios Tema 6. Funciones

Ejercicios Tema 6. Funciones Ejercicios Tema 6. Funciones 1. Programa que calcule el cuadrado de todos los números comprendidos entre dos dados. Usar una función a la que se le pasa como parámetro un valor y retorna su cuadrado. 2.

Más detalles

Operaciones de números racionales

Operaciones de números racionales Operaciones de números racionales Yuitza T. Humarán Martínez Adapatado por Caroline Rodriguez Departamento de Matemáticas Universidad de Puerto Rico en Arecibo El conjunto de los números racionales consiste

Más detalles

Guía práctica de estudio 05: Diagramas de flujo

Guía práctica de estudio 05: Diagramas de flujo Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de

Más detalles

La raíz n-ésima de un número, es. Y, al igual que la simplificación de las raíces cuadradas, podemos simplificar las raíces n-ésimas.

La raíz n-ésima de un número, es. Y, al igual que la simplificación de las raíces cuadradas, podemos simplificar las raíces n-ésimas. RAÍZ ENÉSIMA Hasta ahora, hemos visto exponentes con números enteros y raíz cuadrada. En esta guía, vamos a vincular las raíces y exponentes. En primer lugar, vamos a definir raíces adicionales. Al igual

Más detalles

ANEXO XVII DE LA RESOLUCION N

ANEXO XVII DE LA RESOLUCION N Hoja 1 de 7 UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas Físicas y Naturales República Argentina Programa de: Código: Informática Carrera: Materia común Res. Nº Plan: Puntos:3.5 Escuela:

Más detalles

Tema 3: Recursión. Índice

Tema 3: Recursión. Índice Índice 1 Recursión... 2 2 Confía en la recursión... 2 3 El coste espacial de la recursión... 5 4 Procesos recursivos e iterativos... 7 4.1 Ejemplos...10 5 Referencias...12 1. Recursión Ya hemos visto algunos

Más detalles

Introducción a Haskell. El lenguaje Haskell

Introducción a Haskell. El lenguaje Haskell Capítulo 2. Introducción a Haskell 9 Introducción a Haskell Un ejemplo de fichero Haskell El lenguaje Haskell Haskell es un lenguaje funcional puro, no estricto y fuertemente tipificado. Puro = transparencia

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Rolando Burgos Cárdenas MANUAL DE REFERENCIA RAPIDA DE LISP. http://www.ing.udec.cl/~rburgosc/ e-mail: rburgosc@ing.udec.cl

Rolando Burgos Cárdenas MANUAL DE REFERENCIA RAPIDA DE LISP. http://www.ing.udec.cl/~rburgosc/ e-mail: rburgosc@ing.udec.cl Universidad de Concepción Facultad de Ingeniería Departamento de Ingeniería Informática Y Ciencias de la Computación MANUAL DE REFERENCIA RAPIDA DE LISP http://www.ing.udec.cl/~rburgosc/ e-mail: rburgosc@ing.udec.cl

Más detalles

PHP: Lenguaje de programación

PHP: Lenguaje de programación Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054

Más detalles

LISP I. Programación recursiva frente a iterativa. Características de la programación recursiva:

LISP I. Programación recursiva frente a iterativa. Características de la programación recursiva: LISP I 1 Programación recursiva frente a iterativa Características de la programación recursiva:» Implementación intuitiva y elegante. La traducción de la solución recursiva de un problema (caso base y

Más detalles

Tema: Funciones, Procedimientos y Recursividad en C#.

Tema: Funciones, Procedimientos y Recursividad en C#. Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Programación I, Guía 6 1 Utilizar la sintaxis de las funciones definidas por el usuario (programador) para resolver problemas. Identificar

Más detalles

Curso 0 de Informática

Curso 0 de Informática Curso 0 de Informática 2015-2016 Tema 1: Introducción a la Informática y Conceptos básicos 1 Motivación (I): En los procesos industriales, cada vez es mayor el uso de sistemas informáticos para: Monitorización,

Más detalles

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL 1 TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL TECNOLOGÍA DE LA COMPUTADORA FACILITADOR: PARTICIPANTE: DAVID, CHIRIQUÍ 2015 2 Qué es un programa? Un programa informático es un conjunto

Más detalles

Estructura general de un programa

Estructura general de un programa Estructura general de un programa INTRODUCCION Un programa puede considerarse como una secuencia de acciones (instrucciones) que manipulan un conjunto de objetos (datos). Contendrá por tanto dos bloques

Más detalles

Curso de Java Introducción a la Programación III

Curso de Java Introducción a la Programación III Curso de Java Introducción a la Programación III Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Operadores relacionales e igualdad 2 Estructuras de control condicional

Más detalles

Inteligencia Artificial: Prolog

Inteligencia Artificial: Prolog Inteligencia Artificial: Prolog Recursión Christopher Expósito-Izquierdo 1, Belén Melián-Batista 2 {cexposit 1, mbmelian 2 }@ull.es Universidad de La Laguna (España) Contenidos Concepto de Recursión Recursión

Más detalles

Carlos A. Rivera-Morales. Precálculo 2

Carlos A. Rivera-Morales. Precálculo 2 y Carlos A. Rivera-Morales Precálculo 2 Introducción a y Notación d Tabla de Contenido 1 Definición Sumas Parciales Introducción a y Notación d Tabla de Contenido 1 Definición Sumas Parciales 2 Introducción

Más detalles

TEMA 3. NÚMEROS RACIONALES.

TEMA 3. NÚMEROS RACIONALES. TEMA 3. NÚMEROS RACIONALES. Concepto de fracción Una fracción es el cociente de dos números enteros a y b, que representamos de la siguiente forma: b denominador, indica el número de partes en que se ha

Más detalles

LENGUAJE DE PROGRAMACION UNO.

LENGUAJE DE PROGRAMACION UNO. Guía de ejercicios numero uno. LENGUAJE DE PROGRAMACION UNO. Instrucciones: Para cada caso elabore la sintaxis en lenguaje C., compílelo e intégrelos al menú que su profesor le explicara en clase. Solución

Más detalles

2 INTRODUCCIÓN A LISP

2 INTRODUCCIÓN A LISP 2 INTRODUCCIÓN A LISP El objetivo de este capítulo es que puedan programar en Lisp tan pronto como sea posible Al final de la misma, conocerán lo suficiente de Lisp como para comenzar a escribir sus propios

Más detalles

Capítulo 5. Los números reales y sus representaciones Pearson Education, Inc. Diapositiva 5-4-1

Capítulo 5. Los números reales y sus representaciones Pearson Education, Inc. Diapositiva 5-4-1 Capítulo 5 Los números reales y sus representaciones 2012 Pearson Education, Inc. Diapositiva 5-4-1 Capítulo 5: Los números reales y sus representaciones 5.1 Números reales, orden y valor absoluto 5.2

Más detalles

Introducción rápida a la programación (estructurada ) con C++

Introducción rápida a la programación (estructurada ) con C++ Introducción rápida a la programación (estructurada ) con C++ A B No A? Si B A Los Bloques pueden ser una línea de código o un modulo (función o subrutina) que pueden estar contenido en otro archivo de

Más detalles

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * / undamentos de sintaxis en algunas instrucciones de C#.Net Dr. Ramón Roque Hernández Identificadores Un identificador le da nombre único a un elemento en un programa (ariables, procedimientos, etc.). No

Más detalles

Manual de turbo pascal

Manual de turbo pascal Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de

Más detalles

Recursos. Temas. Tiempo. Evaluación. Competencias:

Recursos. Temas. Tiempo. Evaluación. Competencias: Lic. José Antonio Martínez y Martínez @jamm2014 Competencias: Utiliza formas geométricas, símbolos, signos y señales para el desarrollo de sus actividades cotidianas. Aplica el pensamiento lógico, reflexivo,

Más detalles

Tema 7. El sistema de clases

Tema 7. El sistema de clases Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 7. El sistema de clases 7.1 Funciones Sobrecargadas Clases e Instancias 7.2 Algunas Clases

Más detalles

Operaciones con números racionales. SUMA/RESTA.

Operaciones con números racionales. SUMA/RESTA. http//www.colegiovirgendegracia.org/eso/dmate.htm ARITMÉTICA Números racionales.9. Operaciones con números racionales. SUMA/RESTA. (A) Reducción a común denominador 4 y 7 4 4 y 7 6 y 4 80 80 80 80 (B)

Más detalles

Base de datos relacional. Diccionario ABAP. Modelo Base de datos. Mundo real

Base de datos relacional. Diccionario ABAP. Modelo Base de datos. Mundo real El modelado de datos permite construir un esquema a partir del mundo real y llevarlo a una base de datos, este proceso se lleva a cabo mediante diferentes técnicas, en principio fue utilizado el modelo

Más detalles

Módulo 8: Primitivas en Pascal

Módulo 8: Primitivas en Pascal Módulo 8: Primitivas en Pascal Tecnologías en la Educación Matemática Dr. Carlos Gonzalía DCIC - UNS Técnologías en la educación matemática Dr. Carlos Gonzalía 1 de Copyright Copyright 2010, 2012 M. Capobianco,

Más detalles

Sistemas Operativos sesión 13: shell-scripting

Sistemas Operativos sesión 13: shell-scripting Sistemas Operativos sesión 13: shell-scripting Grado en Ingeniería Informática Universidad Carlos III de Madrid Bibliografía Bash Programming: http://www.tldp.org/howto/bash-prog-intro-howto.html Advanced

Más detalles

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC. Programación n Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño o Vargas MsC. Variables y expresiones aritméticas Variables Conceptos de Memoria Una variable es un espacio en la memoria

Más detalles

Construcciones del Lenguaje Java

Construcciones del Lenguaje Java Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.

Más detalles

Tema 5: Abstracción. Índice

Tema 5: Abstracción. Índice Índice 1 Generalización de funciones... 2 1.1 Ejemplo 1...2 1.2 Ejemplo 2...3 1.3 Ejemplo 3...3 2 Barreras de abstracción... 4 3 Referencias...9 En el primer tema de la asignatura vimos que una de las

Más detalles

Créditos institucionales de la UA: 6 Material visual: Diapositivas. Unidad de competencia I Conceptos preliminares

Créditos institucionales de la UA: 6 Material visual: Diapositivas. Unidad de competencia I Conceptos preliminares UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO PROGRAMA DE ESTUDIOS LICENCIATURA DE INGENIERÍA EN PRODUCCIÓN INDUSTRIAL UNIDAD DE APRENDIZAJE (UA): ÁLGEBRA Créditos institucionales de la UA: 6 Material visual:

Más detalles

FRACCIONES PARCIALES. Procedimiento para: Descomposición en fracciones parciales en la cual cada denominador es lineal.

FRACCIONES PARCIALES. Procedimiento para: Descomposición en fracciones parciales en la cual cada denominador es lineal. FRIONES PRILES Las fracciones parciales se utilizan para ayudar a descomponer epresiones racionales y obtener sumas de epresiones más simples. Hay cuatro casos: ) Descomposición en fracciones parciales

Más detalles

Aritmética: Fracciones

Aritmética: Fracciones Antes de comenzar la unidad de fracciones algebraicas es preciso tener muy bien cimentados los conocimientos relativos a fracciones aritméticas adquiridos en cursos anteriores. a. Si un objeto se divide

Más detalles

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo

Más detalles

Estructuras de Control

Estructuras de Control Algorítmica y Lenguajes de Programación Estructuras de Control Estructuras de Control. Introducción Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas más complejas

Más detalles

Alumno/a:... Lo primero que debes tener en cuenta cuando trabajes con radicales es que no son más que potencias con exponente fraccionario.

Alumno/a:... Lo primero que debes tener en cuenta cuando trabajes con radicales es que no son más que potencias con exponente fraccionario. Hoja Cálculos con radicales Calificación Alumno/a:... Curso: º E.S.O. A Definición de radical Lo primero que debes tener en cuenta cuando trabajes con radicales es que no son más que potencias con exponente

Más detalles

GUIA DE EJERCICIOS N 1 LENGUAJE C# Página 1 de 5. Instructor: Ing. Néstor Raúl Suarez Perpiñan

GUIA DE EJERCICIOS N 1 LENGUAJE C# Página 1 de 5. Instructor: Ing. Néstor Raúl Suarez Perpiñan Página 1 de 5 GUIA DE EJERCICIOS N 1 LENGUAJE C# Realizar para cada ejercicio un programa tipo consola en lenguaje C# que satisfaga con los requerimientos propuestos: PARTE I. EJERCICIOS BASICOS 1. Programa

Más detalles

Declaración de Procedimientos

Declaración de Procedimientos Procedimientos Concepto Un procedimiento es un subprograma que realiza una tarea especifica. Puede recibir cero más valores del programa que llama y devolver cero o más valores a dicho programa que lo

Más detalles

Unidad 2: Ecuaciones, inecuaciones y sistemas.

Unidad 2: Ecuaciones, inecuaciones y sistemas. Unidad 2: Ecuaciones, inecuaciones y sistemas 1 Unidad 2: Ecuaciones, inecuaciones y sistemas. 1.- Factorización de polinomios. M. C. D y m.c.m de polinomios. Un número a es raíz de un polinomio es 0.

Más detalles

Expresiones Aritméticas

Expresiones Aritméticas Expresiones Aritméticas Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación I 1 La Operación Asignación variable = expresión;

Más detalles

No pueden empezar por un número, es decir, el primer caracter del nombre de la variable ha de ser una letra o _

No pueden empezar por un número, es decir, el primer caracter del nombre de la variable ha de ser una letra o _ Y QUÉ ES JAVASCRIPT? Se trata de un lenguaje de tipo script compacto, basado en objetos y guiado por eventos diseñado específicamente para el desarrollo de aplicaciones cliente-servidor dentro del ámbito

Más detalles

Área La integral definida Propiedades de la integral definida Teorema del valor medio para la integral definida Teoremas fundamentales del cálculo Aplicaciones de la integral definida: Área de una región

Más detalles

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Tema 2 Conceptos básicos de programación. Fundamentos de Informática Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis

Más detalles

Tema 1 Programación Funcional

Tema 1 Programación Funcional Tema 1 Programación Funcional Curso de Python Avanzado Juan Pedro Boĺıvar Puente Instituto de Astrofísica de Andalucía Mayo de 2011 Juan Pedro Boĺıvar Puente (Instituto de Astrofísica Tema de Andalucía)

Más detalles

Taller #1 (versión del 18 de septiembre de 2009) Programación básica y aproximación al paradigma orientado a objetos

Taller #1 (versión del 18 de septiembre de 2009) Programación básica y aproximación al paradigma orientado a objetos Universidad del Valle Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Introducción a la Programación Orientada a Objetos (750081M) Taller #1 (versión del 18 de septiembre de 2009)

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario

Más detalles

OPERADORES Y EXPRESIONES

OPERADORES Y EXPRESIONES OPERADORES Y EXPRESIONES Una expresión es una combinación de variables, literales y operadores, que representan un valor Operadores aritméticos Operador Función + suma - resta * producto / división % operador

Más detalles

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características

Más detalles

El lenguaje C. 1. Identificadores, constantes y variables

El lenguaje C. 1. Identificadores, constantes y variables Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

LÍMITES. Ing. Ronny Altuve

LÍMITES. Ing. Ronny Altuve UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE CIENCIAS ADMINISTRATIVAS Unidad Curricular: Matemática II LÍMITES Elaborado por: Ing. Ronny Altuve Ciudad Ojeda, septiembre 2016 INDICADOR DE LOGRO Aplicar la definición

Más detalles

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO FACULTAD DE CS. QUIMICAS, FISICAS Y MATEMATICAS I. DATOS GENERALES DEPARTAMENTO ACADEMICO DE INFORMATICA SILABO 1.1 Asignatura : LENGUAJE DE PROGRAMACION 1.2 Categoría : OE 1.3 Código : IF463AME 1.4 Créditos

Más detalles

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos. Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos. Qué es PHP? PHP (Hypertext Preprocessor). Es un lenguaje de programación: De código

Más detalles

Profesor(a): Ing. Miriam Cerón Brito

Profesor(a): Ing. Miriam Cerón Brito Área Académica: Informática Tema: Algoritmos Profesor(a): Ing. Miriam Cerón Brito Periodo: Enero Junio 2014 Abstract: In this presentation you ll find algorithm s definition and flowcharts definition,

Más detalles

Nano Taller de Python

Nano Taller de Python Charla 5: Programación Funcional Royal Institute of Technology (KTH), Estocolmo, Suecia Grupo de Nanomateriales (GNM), Santiago, Chile 13 de enero 2009, de 13:00 a 14:00 Parte I Programación

Más detalles

CONTENIDOS: ALGEBRA. 1. SISTEMA DE LOS NÚMEROS REALES

CONTENIDOS: ALGEBRA. 1. SISTEMA DE LOS NÚMEROS REALES UNIVERSIDAD TÉCNICA DE MANABÍ FACULTAD DE CIENCIAS INFORMÁTICAS CARRERA DE INGENIERÍA EN SISTEMAS INFORMÁTICOS CONTENIDOS DE MATEMÁTICAS PARA LA PRUEBA DE CONOCIMIENTOS OBJETIVO: Diagnosticar los conocimientos

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación

Más detalles

Preparación para Álgebra 1 de Escuela Superior

Preparación para Álgebra 1 de Escuela Superior Preparación para Álgebra 1 de Escuela Superior Este curso cubre los conceptos mostrados a continuación. El estudiante navega por trayectos de aprendizaje basados en su nivel de preparación. Usuarios institucionales

Más detalles

Introducción a la programación: Algoritmos

Introducción a la programación: Algoritmos Introducción a la programación: Algoritmos Algoritmo La palabra algoritmo proviene del nombre del matemático persa del siglo IX Muhammad ibn Musa al-jwarizmi Un algoritmo es una secuencia ordenada de pasos,

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

GUIA ALGEBRA PARTE I. Ejercicios básicos de aritmética EJERCICIOS

GUIA ALGEBRA PARTE I. Ejercicios básicos de aritmética EJERCICIOS 1 GUIA ALGEBRA PARTE I Ejercicios básicos de aritmética QUEBRADOS Fracciones mixtas ejemplo 3 4/5 Una fracción mixta es un número entero y una fracción combinados, como 1 3 / 4. Fracciones propias ejemplo

Más detalles

Estructuras de Repetición (Repita para)

Estructuras de Repetición (Repita para) Estructuras de Repetición (Repita para) Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 REPITA PARA Fijar

Más detalles

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicios del Tema 3. Fundamentos de la programación en ensamblador Ejercicio 1. Escriba un programa en ensamblador del MIPS 32 para calcular la suma de los 100 primeros números naturales. El programa

Más detalles

11. Integrales impropias

11. Integrales impropias 11. Integrales impropias 11.1. Definición de Integrales Impropias Las denominadas integrales impropias son una clase especial de integrales definidas (integrales de Riemann) en las que el intervalo de

Más detalles

GUIA ALGEBRA PARTE I. Ejercicios básicos de aritmética QUEBRADOS

GUIA ALGEBRA PARTE I. Ejercicios básicos de aritmética QUEBRADOS 1 GUIA ALGEBRA PARTE I Ejercicios básicos de aritmética QUEBRADOS Fracciones mixtas ejemplo 3 4/5 Una fracción mixta es un número entero y una fracción combinados, como 1 3 / 4. Fracciones propias ejemplo

Más detalles

Paso de Parámetros a una Función

Paso de Parámetros a una Función Paso de Parámetros a una Función Material Original: Prof. Flor Narciso Modificaciones: Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad

Más detalles

UNIDAD 10. DERIVADAS. APLICACIONES DE LAS DERIVADAS

UNIDAD 10. DERIVADAS. APLICACIONES DE LAS DERIVADAS Unidad 0. Derivadas. Aplicaciones de las derivadas UNIDAD 0. DERIVADAS. APLICACIONES DE LAS DERIVADAS. TASA DE VARIACIÓN MEDIA. Se llama TASA DE VARIACIÓN MEDIA (TVM) de una función () f en un intervalo

Más detalles

MATEMÁTICAS - 6º curso

MATEMÁTICAS - 6º curso MATEMÁTICAS 6º curso TEMA 1. OPERACIONES CON NÚMEROS NATURALES 1. Realizar sumas y restas dadas. 2. Efectuar multiplicaciones dadas. 3. Realizar divisiones dadas. 4. Clasificar las divisiones en exactas

Más detalles

Lenguaje C. Tipos de Datos Simples y Estructuras de Control

Lenguaje C. Tipos de Datos Simples y Estructuras de Control Lenguaje C Tipos de Datos Simples y Estructuras de Control Lenguaje C C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje

Más detalles

Semana de las Matemáticas e Ingeniería. Desarrollo de algoritmos recursivos empleando la aplicación PseInt

Semana de las Matemáticas e Ingeniería. Desarrollo de algoritmos recursivos empleando la aplicación PseInt Semana de las Matemáticas e Ingeniería Desarrollo de algoritmos recursivos empleando la aplicación PseInt 21 de Noviembre de 2013 Agenda Desarrollo de algoritmos recursivos empleando la aplicación PSeInt

Más detalles

2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS

2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS 2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS Características de los algoritmos Las características fundamentales que debe cumplir todo algoritmo son: Un algoritmo debe ser preciso e indicar el orden de realización

Más detalles