Listas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015

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

Download "Listas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015"

Transcripción

1 Listas y Recursión Taller de Álgebra I Primer Cuatrimestre de 2015

2 Un nuevo tipo: Listas Tipo Lista Las listas pueden contener elementos de cualquier tipo (incluso listas) [1] :: [Integer] [1, 2] :: [Integer] [1.1, 2, 4, 3.2] :: [Float] [[1], [2,3], [], [1,1000,2,0]] :: [[Integer]] [1, a ] NO ES UNA LISTA VÁLIDA, por qué?

3 Un nuevo tipo: Listas Tipo Lista Las listas pueden contener elementos de cualquier tipo (incluso listas) [1] :: [Integer] [1, 2] :: [Integer] [1.1, 2, 4, 3.2] :: [Float] [[1], [2,3], [], [1,1000,2,0]] :: [[Integer]] [1, a ] NO ES UNA LISTA VÁLIDA, por qué? Tipar las siguientes expresiones [(1,2), (3,4), (5,2)] [maximo 2 3, fst (2+2, 3+4), 3+4-3/4] [ [], [], [], [], [] ] [] [if True then False else True, 3 > 3 && 4 < 2] [undefined]

4 Ejercicios Otras formas de definir listas Prueben las siguientes expresiones en GHCI [1..100] [1,3..100] [100..1] Cómo harían la lista que va entre 1 y -100?

5 Ejercicios Otras formas de definir listas Prueben las siguientes expresiones en GHCI [1..100] [1,3..100] [100..1] Cómo harían la lista que va entre 1 y -100? Definir las siguientes funciones listar :: a -> a -> a -> [a] que toma 3 elementos y los convierte en una lista. rangodepaso :: Integer -> Integer -> Integer -> [Integer] que, dados 3 números (n1, n2, n3), devuelve la lista resultante de crear el rango con bordes n1 y n2 (inclusive) y paso n3

6 Operaciones Algunas operaciones head :: [a] -> a tail :: [a] -> [a] (:) :: a -> [a] -> [a] (++) :: [a] -> [a] -> [a] length :: [a] -> Int reverse :: [a] -> [a]

7 Operaciones Algunas operaciones head :: [a] -> a tail :: [a] -> [a] (:) :: a -> [a] -> [a] (++) :: [a] -> [a] -> [a] length :: [a] -> Int reverse :: [a] -> [a] Tipar y reducir las siguientes expresiones head [(1,2), (3,4), (5,2)] tail [1,2,3,4,4,3,2,1] head [] head [1,2,3] : [2,3] [True, True] ++ [False, False] [1,2] : []

8 Recursión Hasta ahora, especificamos funciones que consistían en expresiones sencillas. Sin embargo, el tipo de funciones que hicimos hasta la clase pasada no permite programar todas las funciones computables.

9 Recursión Hasta ahora, especificamos funciones que consistían en expresiones sencillas. Sin embargo, el tipo de funciones que hicimos hasta la clase pasada no permite programar todas las funciones computables. Por ejemplo, cómo es una función en Haskell para calcular el factorial de un número entero?

10 Recursión Hasta ahora, especificamos funciones que consistían en expresiones sencillas. Sin embargo, el tipo de funciones que hicimos hasta la clase pasada no permite programar todas las funciones computables. Por ejemplo, cómo es una función en Haskell para calcular el factorial de un número entero? n! = n k k=1

11 Recursión Hasta ahora, especificamos funciones que consistían en expresiones sencillas. Sin embargo, el tipo de funciones que hicimos hasta la clase pasada no permite programar todas las funciones computables. Por ejemplo, cómo es una función en Haskell para calcular el factorial de un número entero? n! = n k, n! = k=1 { 1 si n = 0 n (n 1)! si no

12 Recursión Hasta ahora, especificamos funciones que consistían en expresiones sencillas. Sin embargo, el tipo de funciones que hicimos hasta la clase pasada no permite programar todas las funciones computables. Por ejemplo, cómo es una función en Haskell para calcular el factorial de un número entero? n! = n k, n! = k=1 { 1 si n = 0 n (n 1)! si no La segunda definición de factorial involucra a esta misma función del lado derecho!

13 Definiciones recursivas

14 Definiciones recursivas factorial :: Int -> Int

15 Definiciones recursivas factorial :: Int -> Int factorial n n == 0 =

16 Definiciones recursivas factorial :: Int -> Int factorial n n == 0 = 1

17 Definiciones recursivas factorial :: Int -> Int factorial n n == 0 = 1 factorial n n > 0 =

18 Definiciones recursivas factorial :: Int -> Int factorial n n == 0 = 1 factorial n n > 0 = n * factorial (n-1)

19 Definiciones recursivas Propiedades de una definición recursiva: 1 Tiene que tener uno o más casos base. 2 Las llamadas recursivas del lado derecho tienen que acercarse al caso base, con relación a los parámetros del lado izquierdo de la ecuación.

20 Definiciones recursivas Propiedades de una definición recursiva: 1 Tiene que tener uno o más casos base. 2 Las llamadas recursivas del lado derecho tienen que acercarse al caso base, con relación a los parámetros del lado izquierdo de la ecuación. En cierto sentido, la recursión es el equivalente computacional de la inducción para las demostraciones.

21 Más sobre la función factorial Dado que las ecuaciones se evalúan en secuencia, también podemos definir: factorial :: Int -> Int factorial 0 = 1 factorial n = n * factorial (n -1)

22 Más sobre la función factorial Dado que las ecuaciones se evalúan en secuencia, también podemos definir: factorial :: Int -> Int factorial 0 = 1 factorial n = n * factorial (n -1) Observar que factorial 70 = 0 Por qué sucede esto?

23 Más sobre la función factorial Dado que las ecuaciones se evalúan en secuencia, también podemos definir: factorial :: Int -> Int factorial 0 = 1 factorial n = n * factorial (n -1) Observar que factorial 70 = 0 Por qué sucede esto? factorial :: Integer -> Integer factorial 0 = 1 factorial n = n * factorial (n -1)

24 Otro ejemplo clásico Consideremos la sucesión de Fibonacci: F 0 = 0 F 1 = 1 F n = F n 1 + F n 2 n 2 Programar en Haskell una función que dado n calcule F n fib :: Integer -> Integer Mostrar cómo reduce la siguiente expresión fib (1+2)?? (utilizando evaluación Lazy)

25 Asegurarse de llegar a un caso base Consideremos este programa recursivo para determinar si un número es par: par :: Int -> Bool par 0 = True par n = par (n-2) Qué problema tiene esta función?

26 Asegurarse de llegar a un caso base Consideremos este programa recursivo para determinar si un número es par: par :: Int -> Bool par 0 = True par n = par (n-2) Qué problema tiene esta función? Cómo se arregla?

27 Asegurarse de llegar a un caso base Consideremos este programa recursivo para determinar si un número es par: par :: Int -> Bool par 0 = True par n = par (n-2) Qué problema tiene esta función? Cómo se arregla? par 0 = True par 1 = False par n = par (n-2) par 0 = True par n = not (par (n-1))

28 Recursión sobre listas No todo son números Podremos implementar la función que suma todos los elementos de una lista?

29 Recursión sobre listas No todo son números Podremos implementar la función que suma todos los elementos de una lista? suma :: [Integer] -> Integer suma lista length lista == 0 = 0 suma lista otherwise = head lista + suma (tail lista) Implementemos las siguientes funciones Implementar y dar el tipo de la productoria de una lista. Implementar la función reverso :: [a] -> [a] Mostrar los pasos de reducción para la evaluación de reverso [ a, b, c ] Implementar la función capicua :: [Integer] -> Bool que devuelve verdadero si el reverso de una lista de números es la misma lista.

30 Ejercicios 1 Escribir una función que dados dos n, m N devuelva el combinatorio ( n m). Hacerlo usando la igualdad ( ) ( n m = n 1 ) ( m + n 1 m 1). 2 Escribir una función que dado n N sume los primeros n números impares. Ej: sumaimpares Escribir una función que dado n N sume los cuadrados de los primeros n números impares. Ej: sumacuadradosimpares 3 1ˆ2 + 3ˆ2 + 5ˆ (*) Escribir una función que dado n N sume los impares tales que su cuadrado sea menor que n. Ej: sumaimparescuadradosmenoresa Escribir una función para determinar recursivamente si un número es múltiplo de 3. No se puede usar las funciones mod y div para resolver este ejercicio. 6 Escribir una función recursiva que no termine si se ejecuta con números negativos. 7 Escribir una función para calcular n!! = n (n 2)(n 4) La función se debe indefinir para los números impares. 8 Implementar la función todosverdaderos :: [Bool] -> Bool que devuelve verdadero sólo si todos los elementos de la listas son verdaderos. Ejemplo todosverdaderos [True, 2 < 3, > 5] True. 9 Implementar la función tomarn :: Int -> [a] -> [a] que retorna la lista de los primeros n elementos de la lista de entrada (para entender el funcionamiento revisar su equivalente en haskell: take).

Algoritmos y programas. Algoritmos y Estructuras de Datos I

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

Tema 3: Tipos y clases

Tema 3: Tipos y clases Tema 3: Tipos y clases Programación declarativa (2009 10) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla Tema 3: Tipos y clases

Más detalles

Tema 3: Tipos y clases

Tema 3: Tipos y clases Tema 3: Tipos y clases 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 Sevilla Tema 3: Tipos y clases

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

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

Tema 11. Listas infinitas

Tema 11. Listas infinitas Programación Declarativa Haskell Informática Sistemas Curso 2003-2004 Pepe Gallardo Universidad de Málaga Tema 11. Listas infinitas 11.1 Listas infinitas 11.2 La criba de Eratóstenes 11.3 Redes de procesos

Más detalles

Introducción a los Algoritmos Validez, Satisfactibilidad, Tipos y Funciones

Introducción a los Algoritmos Validez, Satisfactibilidad, Tipos y Funciones Introducción a los Algoritmos Validez, Satisfactibilidad, Tipos y Funciones Pedro Sánchez Terraf CIEM-FaMAF Universidad Nacional de Córdoba FaMAF UNC 17 de marzo de 2014 Contenido 1 Demostraciones: Cómo

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

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO Recursividad: La recursividad es una técnica de programación

Más detalles

Funciones. Parámetros por valor

Funciones. Parámetros por valor Funciones I Parámetros por valor Fundamentos de Programación Fundamentos de Programación I Llamada a la función definición subprograma Subprogramas en C++ Funciones 1 Una función es un subprograma que

Más detalles

DEPARTAMENTO DE MATEMATICAS Y FISICA Matemáticas Discreta

DEPARTAMENTO DE MATEMATICAS Y FISICA Matemáticas Discreta DEPARTAMENTO DE MATEMATICAS Y FISICA Matemáticas Discreta SUCESIONES Y RELACIONES DE RECURRENCIA Esta última sección la dedicamos a presentar el concepto de recurrencia, que esta muy ligado al axioma de

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

1.- Para cada uno de los siguientes problemas escribir el diagrama de flujo y el pseudocódigo de un programa que lo resuelva:

1.- Para cada uno de los siguientes problemas escribir el diagrama de flujo y el pseudocódigo de un programa que lo resuelva: 1.- Para cada uno de los siguientes problemas escribir el diagrama de flujo y el a) Problema: pedir la base y la altura de un triángulo y escribir su superficie. b) Problema: pedir cuatro números enteros

Más detalles

Recursión Directa. Una función es de recursión directa si contiene una llamada explícita a si misma. return foo (y 1); Recursión Indirecta

Recursión Directa. Una función es de recursión directa si contiene una llamada explícita a si misma. return foo (y 1); Recursión Indirecta Recursión Directa Una función es de recursión directa si contiene una llamada explícita a si misma int foo (int x) { if ( x

Más detalles

Estructuras de Control. Secuencia y Selección

Estructuras de Control. Secuencia y Selección Estructuras de Control. Secuencia y Selección InCo - FING Programación 1 InCo - FING Estructuras de Control. Secuencia y Selección Programación 1 1 / 35 Estructuras de control InCo - FING Estructuras de

Más detalles

5. Subprogramas Fundamentos de Informática

5. Subprogramas Fundamentos de Informática 5. Subprogramas Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos Curso 2012 / 2013 Índice Subprogramas 1. Cálculo de la función Coseno 2. Suma 3. Ecuación de 2º grado 2 1. Cálculo de

Más detalles

Programación Funcional Haskell Clase 21

Programación Funcional Haskell Clase 21 Programación Funcional Haskell Clase 21 José Raymundo Marcial Romero rmarcial@fi.uaemex.mx BUAP c José Raymundo Marcial Romero. Clase Número 21 p.1/12 Temas de la clase Clase Anterior En Haskell cada expresión

Más detalles

Estructuras de Datos. Dr. Pablo E. Fidel Martínez López Lic. en Ciencias de la Computación UNR

Estructuras de Datos. Dr. Pablo E. Fidel Martínez López Lic. en Ciencias de la Computación UNR Estructuras de Datos Dr. Pablo E. Fidel Martínez López Lic. en Ciencias de la Computación UNR ...but note that an implementation need not be actualized as code a concrete design is sufficient. Chris Okasaki

Más detalles

Ejercicios de programación funcional con Haskell

Ejercicios de programación funcional con Haskell Ejercicios de programación funcional con Haskell José A. Alonso Jiménez Grupo de Lógica Computacional Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Sevilla, 8 de

Más detalles

Inducción Matemática. Departamento de Matemáticas. Inducción Matemática p. 1/31

Inducción Matemática. Departamento de Matemáticas. Inducción Matemática p. 1/31 Inducción Matemática Departamento de Matemáticas Inducción Matemática p. 1/31 Inducción Matemática: Historia Inducción Matemática es un método de prueba relativamente reciente: Inducción Matemática p.

Más detalles

Alonso Ramírez Manzanares Computación y Algoritmos 10.03

Alonso Ramírez Manzanares Computación y Algoritmos 10.03 Recursividad mat-151 1 Ejercicio de recursión: dibujando una regla Queremos dibujar las marcas de diferentes tamaños de una regla. Marcas grandes cada 1/2 cm, marcas más pequeñas cada 1/4 cm... hasta una

Más detalles

Programación Funcional en Haskell

Programación Funcional en Haskell Programación Funcional en Haskell Paradigmas de Lenguajes de Programación 1 cuatrimestre 2006 1. Expresiones, valores y tipos Un programa en lenguaje funcional consiste en definir expresiones que computan

Más detalles

Tema 13: Aplicaciones de programación funcional

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

Estructuras de control

Estructuras de control Estructuras de control Condicionales Ejemplo: Resolución de la ecuación de primer grado In [1]: # Solución de la ecuación ax+b=0 def solucion1grado(a, b): return -float(b) / a In [2]: solucion1grado(2,4)

Más detalles

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática Programación de Computadores 4 Iteraciones y Decisiones Prof. Javier Cañas Universidad Técnica Federico Santa María Departamento de Informática Contenido 1 Introducción 2 Operadores Relacionales y Lógicos

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA FUNDAMENTOS DE INFORMÁTICA Tema 2 Expresiones, operadores y estructuras de control Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo Fundamentos de Informática. Departamento de Ingeniería

Más detalles

Programación Dinámica 1

Programación Dinámica 1 Programación Dinámica 1 El método de programación dinámica sirve para resolver problemas combinando las soluciones de subproblemas. Normalmente es usada para resolver problemas de optimización. Al construir

Más detalles

Cursada Segundo Cuatrimestre 2012 Guía de Trabajos Prácticos Nro. 1

Cursada Segundo Cuatrimestre 2012 Guía de Trabajos Prácticos Nro. 1 Temas: Ambiente de trabajo MATLAB. Creación de matrices y vectores. Matrices pre-definidas. Operador dos puntos. Operaciones con matrices y vectores. Direccionamiento de elementos de matrices y vectores.

Más detalles

Problemas de Recursividad

Problemas de Recursividad Problemas de Recursividad Problema 1. El factorial de un número entero n 0, denotado como n!, se define! como!!! i = 1 2 n cuando n > 0, y 0! = 1. Por ejemplo 6! = 1 2 3 4 5 6 = 720 Diseñad una método

Más detalles

Tema 11.- Autovalores y Autovectores.

Tema 11.- Autovalores y Autovectores. Álgebra 004-005 Ingenieros Industriales Departamento de Matemática Aplicada II Universidad de Sevilla Tema - Autovalores y Autovectores Definición, propiedades e interpretación geométrica La ecuación característica

Más detalles

Algoritmos. Intro. Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison

Algoritmos. Intro. Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison Algoritmos Intro Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison La Computadora Las computadoras trabajan con una base de 0 y 1 llamado sistema binario. En principio todo lo que sucede en un dispositivo

Más detalles

Fracciones y fractales

Fracciones y fractales C APÍTULO 0 Fracciones y fractales Resumen del contenido El tema del Capítulo 0 es la investigación de patrones en el diseño fractal. No se intimide si no ha visto fractales anteriormente. El propósito

Más detalles

Clase adicional 2. Estructuras básicas de control. Temas

Clase adicional 2. Estructuras básicas de control. Temas Clase adicional 2 Temas Estructuras de control Sentencia condicional Iteración Clases Definir una clase Crear una instancia de una clase Campos estáticos Problemas de la clase adicional Problema de diseño

Más detalles

Números naturales, principio de inducción

Números naturales, principio de inducción , principio de inducción. Conjuntos inductivos. Denotaremos por IN al conjunto de números naturales, IN {,,, 4, 5, 6,...}, cuyos elementos son suma de un número finito de unos. Recordemos que IN es cerrado

Más detalles

Estructuras de Repetición (Hacer-Mientras)

Estructuras de Repetición (Hacer-Mientras) Estructuras de Repetición (Hacer-Mientras) Material Original: Prof. Flor Narciso Modificaciones: Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería

Más detalles

Solución - práctico 10

Solución - práctico 10 Solución - práctico 10 Complejidad Ejercicio 1 a) Una implementación del algoritmo es la siguiente: /* Procedimiento que se encarga de realizar la unión de los dos conjuntos * ordenados der1 e izq1 son

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 Orientada a Objetos Métodos Guía de Ejercicios v9.7

Programación Orientada a Objetos Métodos Guía de Ejercicios v9.7 Programación Orientada a Objetos Métodos Guía de Ejercicios v9.7 1, Escriba un método llamado puntoscalidad que reciba como entrada el promedio de un estudiante y devuelva 4 si el promedio se encuentra

Más detalles

PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad

PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad EJERCICIOS RESUELTOS 1. Escribe una función que calcule el factorial de un número, dado como parámetro. A continuación realiza un programa que lea por teclado

Más detalles

Estatutos de Control C# Estatutos de Decisión (Selección)

Estatutos de Control C# Estatutos de Decisión (Selección) SELECCIÓN Estatutos de Control C# Estatutos de Decisión (Selección) IF Condición THEN Estatuto1 ELSE Estatuto2 Estatuto1 Statement Condición... Antes de ver esta presentación: Lee el Capítulo correspondiente

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

Guía 2: Funciones, listas, recursión e inducción

Guía 2: Funciones, listas, recursión e inducción Introducción a los Algoritmos - 2do cuatrimestre 2016 Guía 2: Funciones, listas, recursión e inducción El objetivo de los siguientes ejercicios es continuar aprendiendo programación funcional, es decir,

Más detalles

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,

Más detalles

Prácticas para Resolver PROBLEMAS MATEMÁTICOS

Prácticas para Resolver PROBLEMAS MATEMÁTICOS Prácticas para Resolver PROBLEMAS MATEMÁTICOS 1 Prólogo El presente manual está dirigido a los estudiantes de las facultades de físico matemáticas de las Escuelas Normales Superiores que estudian la especialidad

Más detalles

Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3

Modelos de Desarrollo de Programas Y Programación Concurrente Clase N 3 PROGRAMACION FUNCIONAL - Un lenguaje de programación funcional tiene gran flexibilidad, es conciso en su notación y su semántica es sencilla. El inconveniente principal de estos lenguajes ha sido la ineficiencia

Más detalles

TI 89. Cómo sobrevivir en Precálculo

TI 89. Cómo sobrevivir en Precálculo TI 89 Cómo sobrevivir en Precálculo TI-89 Menús que más utilizaremos: Operaciones Numéricas Simplificar: 3 + 1 5 ( 4)2 9 3 4 Notar la diferencia entre el símbolo de resta y el signo negativo. Notar el

Más detalles

Algoritmos glotones. mat-151

Algoritmos glotones. mat-151 Algoritmos glotones (greedy) mat-151 Alonso Ramirez Manzanares Computación y Algoritmos 04.06.2009 Algoritmos glotones Algoritmos utilizados en problemas de optimización. Estos algoritmos siguen típicamente

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

TEMA 3 POTENCIAS Y RAÍCES

TEMA 3 POTENCIAS Y RAÍCES TEMA 3 POTENCIAS Y RAÍCES Criterios De Evaluación de la Unidad 1. Operar con potencias y expresar el resultado en forma de potencia. 2. Expresar cantidades como producto de un número por una potencia de

Más detalles

Taller de Informática I Dpto. Computación F.C.E. y N. - UBA 2010

Taller de Informática I Dpto. Computación F.C.E. y N. - UBA 2010 FUNCIONES Definición: Una función es un subprograma que recibe cero o más valores de entrada y retorna un único objeto de salida. Es una tarea independiente que puede o no depender de variables externas.

Más detalles

Especificación y uso de módulos en C++(II)

Especificación y uso de módulos en C++(II) Sesión 3 Especificación y uso de módulos en C++(II) 3.1 La clase Poli para representar polinomios Disponemos de la clase Poli que permite operar con polinomios de coeficientes enteros. Se basa en el módulo

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

Cómo resolver? Veremos dos métodos

Cómo resolver? Veremos dos métodos Cómo resolver? Veremos dos métodos 1 La primera idea que surge es tomar raíz a ambos lados de la desigualdad La idea es buena, pero hay que tener presente las reglas algebraicas Cómo resolver? Se puede

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

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

MATE EJERCICIOS DE PRACTICA

MATE EJERCICIOS DE PRACTICA MATE 0066 - EJERCICIOS DE PRACTICA TEMA: de inecuaciones polinómicas por factorización Instructora: Ana María Aparicio A. Hallar los puntos críticos de los siguientes polinomios. Los puntos críticos son

Más detalles

Diferenciabilidad en un intervalo

Diferenciabilidad en un intervalo Diferenciabilidad en un intervalo Ahora que conocemos cómo calcular la derivada de una función en un punto conviene hacer la pregunta más general: «Cómo podemos saber si una derivada se puede derivar en

Más detalles

10.4 Sistemas de ecuaciones lineales

10.4 Sistemas de ecuaciones lineales Programa Inmersión, Verano 2016 Notas escritas por Dr. M Notas del cursos. Basadas en los prontuarios de MATE 001 y MATE 02 Clase #11: martes, 14 de junio de 2016. 10.4 Sistemas de ecuaciones lineales

Más detalles

Introduc)on to Programming (in C++) Ejemplos de tratamiento de secuencia de secuencias. Emma Rollón Departament of Computer Science

Introduc)on to Programming (in C++) Ejemplos de tratamiento de secuencia de secuencias. Emma Rollón Departament of Computer Science Introduc)on to Programming (in C++) Ejemplos de tratamiento de secuencia de secuencias Emma Rollón Departament of Computer Science Ejemplo 1: recorrido con recorrido Input: La entrada consiste en un número

Más detalles

Estrategias de Diseño de Algoritmos

Estrategias de Diseño de Algoritmos Estrategias de Diseño de Algoritmos Introducción A través de los años, los científicos de la computación han identificado diversas técnicas generales que a menudo producen algorit mos eficientes para la

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

Tema 2: Introducción a la programación con Haskell

Tema 2: Introducción a la programación con Haskell Tema 2: Introducción a la programación con Haskell Informática (2015 16) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla 2

Más detalles

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico.

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. 86 Capítulo 7. ORDENAMIENTO. 7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico. Si los elementos a ordenar son compuestos

Más detalles

2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA

2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA Universidad Rafael Urdaneta Facultad de Ingeniería Escuela de Ingeniería de Computación Cátedra: Programación I Laboratorio - Semestre 2012-1 (Sección C ) Profesor: Jaime Soto Examen #1 - Fecha: 07-03-2012

Más detalles

ƒ : {(1, 4), (2, 5), (3, 6), (4, 7)}.

ƒ : {(1, 4), (2, 5), (3, 6), (4, 7)}. SECCIÓN 5. Funciones inversas 5. Funciones inversas Verificar que una función es la inversa de otra. Determinar si una función tiene una función inversa. Encontrar la derivada de una función inversa. f

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

Taller de Resolución de Problemas Computacionales

Taller de Resolución de Problemas Computacionales Taller de Resolución de Problemas Computacionales Clase1: 27/9 Presentación: Equipo de Trabajo Encuentros Certificación del Taller: Por Asistencia Por Aprobación Sitio Web. Etapas en la Resolución de Problemas

Más detalles

Materia: Matemática de Tercer Año Tema: Pendiente

Materia: Matemática de Tercer Año Tema: Pendiente Materia: Matemática de Tercer Año Tema: Pendiente Suponga que tiene un avión de juguete sobre el despegue, que se eleva 5 pies por cada 6 metros que recorre a lo largo de la horizontal. Cuál sería la pendiente

Más detalles

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Métodos que devuelven valor Dado el siguiente triángulo rectángulo: Métodos que devuelven valor Dado el siguiente triángulo rectángulo: hipotenusa altura base Para dibujar este triángulo necesitamos los siguientes datos: base y altura La base y la altura, se utilizarán

Más detalles

data Tree a = Tip Node a (Tree a) (Tree a) deriving Show

data Tree a = Tip Node a (Tree a) (Tree a) deriving Show Preguntas seleccionadas de pruebas de evaluación Pregunta 1 Dadas las siguientes definiciones: data Tree a = Tip Node a (Tree a) (Tree a) deriving Show cambiar :: [Int] -> Tree [Int] -> Tree [Int] cambiar

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

Aplicaciones en Haskell. Funciones, funciones recursivas y su implementación en Haskell.

Aplicaciones en Haskell. Funciones, funciones recursivas y su implementación en Haskell. Capítulo 6 Aplicaciones en Haskell Funciones, funciones recursivas y su implementación en Haskell. Funciones: Recordemos que una función es una correspondencia entre 2 conjuntos, llamados dominio y codominio,

Más detalles

MATRICES. Se simboliza tal matriz por y se le llamará una matriz x o matriz de orden x (que se lee por ).

MATRICES. Se simboliza tal matriz por y se le llamará una matriz x o matriz de orden x (que se lee por ). 1 MATRICES 1 Una matriz es una disposición rectangular de números (Reales); la forma general de una matriz con filas y columnas es Se simboliza tal matriz por y se le llamará una matriz x o matriz de orden

Más detalles

Laboratorio de Física Universitaria 2 otoño 1998 Alicia M. Vázquez Soto. Campo Eléctrico

Laboratorio de Física Universitaria 2 otoño 1998 Alicia M. Vázquez Soto. Campo Eléctrico OBJETIVOS: Campo Eléctrico Entender el concepto de campo eléctrico Aprender como calcular el campo eléctrico asociado con las cargas que se distribuyen a través de un objeto Entender como las líneas de

Más detalles

Actividad colaborativa Ejercicios de programación Programación básica C++

Actividad colaborativa Ejercicios de programación Programación básica C++ Actividad colaborativa Ejercicios de programación Programación básica C++ Entra a la página del Prof. Jorge Sánchez, autor del Manual completo de programación en C++, de donde edité estos apuntes: http://www.jorgesanchez.net/programacion/ejerciciosc/sencillos.html

Más detalles

1.3.- V A L O R A B S O L U T O

1.3.- V A L O R A B S O L U T O 1.3.- V A L O R A B S O L U T O OBJETIVO.- Que el alumno conozca el concepto de Valor Absoluto y sepa emplearlo en la resolución de desigualdades. 1.3.1.- Definición de Valor Absoluto. El valor absoluto

Más detalles

Base y Dimensión de un Espacio Vectorial

Base y Dimensión de un Espacio Vectorial Base y Dimensión de un Espacio Vectorial 201 6Asturias: Red de Universidades Virtuales Iberoamericanas 1 Índice 1 Qué es un sistema generador?... 4 2 Base de un espacio vectorial... 4 3 Dimensión de un

Más detalles

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación) Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación) Dr. http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca,

Más detalles

Euclides extendido y Test de primalidad probabiĺıstico

Euclides extendido y Test de primalidad probabiĺıstico Euclides extendido y Test de primalidad probabiĺıstico Taller de Álgebra I Verano de 2014 Lema de Bézout Recordemos este lema: Lema (Étienne Bézout) Sean a, b Z, alguno distinto de 0. Entonces existen

Más detalles

Notación Asintótica 2

Notación Asintótica 2 Notación Asintótica 2 mat-151 1 Éxamen Rápido (6 minutos) Cada operación fundamental usa c milisegundos, cuánto tiempo toma contar hasta 1,000,000? Cuál es el valor de N? Cuál es el órden de complejidad

Más detalles

Nota 2. Luis Sierra. Marzo del 2010

Nota 2. Luis Sierra. Marzo del 2010 Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones

Más detalles

a) Factoriza el monomio común. En este caso 6 se puede dividir de cada término:

a) Factoriza el monomio común. En este caso 6 se puede dividir de cada término: Materia: Matemática de 5to Tema: Factorización y Resolución de ecuaciones 1) Factorización Marco Teórico Decimos que un polinomio está factorizado completamente cuando no podemos factorizarlo más. He aquí

Más detalles

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

1. Cuántas sentencias hay en la secuencia principal del siguiente programa? 1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.

Más detalles

EJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL

EJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL EJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL María Alpuente y María José Ramírez 1 LENGUAJES Y PARADIGMAS: INTRODUCCIÓN 1. Indica cuál de las siguientes

Más detalles

Ejercicios (Números reales)

Ejercicios (Números reales) Ejercicios (Números reales).. Decir si cada una de las siguientes expresiones es cierta o falsa: a) d) 30ÿ ÿ00 k j 4 k 30ÿ 00 ÿ k j 4, b) k ÿ00 00, c).. Expresar con notación de sumatorio: 0ÿ a) ` 3 `

Más detalles

Introducción a la Geometría Computacional. Análisis de Algoritmos

Introducción a la Geometría Computacional. Análisis de Algoritmos Introducción a la Geometría Computacional Análisis de Algoritmos Geometría Computacional La Geometría Computacional surgió a finales de los 70s del área de diseño y análisis de algoritmos. Estudio sistemático

Más detalles

Introducción a C++ y Code::Blocks

Introducción a C++ y Code::Blocks Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete

Más detalles

UNIDAD 2. Logaritmos DEFINICION DE LOGARITMO. Definiciones:

UNIDAD 2. Logaritmos DEFINICION DE LOGARITMO. Definiciones: Matemática UNIDAD. Logaritmos Medio GUÍA N 1 DEFINICION DE LOGARITMO Qué valor de x satisface la ecuación x = 7? Fácilmente podemos verificar que x = es una solución para esta ecuación, pues = 7. Pero

Más detalles

4.1. Determinante de una matriz cuadrada de orden 2. , entonces el determinante de A es a 21 a 22 a 11 a 12 = a 11a 22 a 12 a 21

4.1. Determinante de una matriz cuadrada de orden 2. , entonces el determinante de A es a 21 a 22 a 11 a 12 = a 11a 22 a 12 a 21 Capítulo 4 Determinante Los determinantes se calculan para matrices cuadradas. Se usan para saber cuando una matriz tiene inversa, en el cálculo de autovalores y también para resolver sistemas de ecuaciones

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

DIAGRAMAS DE FLUJOS. Qué son Los Diagramas de Flujo y Para qué se Usan?

DIAGRAMAS DE FLUJOS. Qué son Los Diagramas de Flujo y Para qué se Usan? DIAGRAMAS DE FLUJOS Los diagramas de flujo representan la secuencia o los pasos lógicos para realizar una tarea mediante unos símbolos. Dentro de los símbolos se escriben los pasos a seguir. Un diagrama

Más detalles

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S Tipos de datos en S Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 5 Codificación de programas, Halting problem, diagonalización, tesis de Church,

Más detalles

Enteros (Z):..., -3, -2, -1, 0, 1, 2, 3,... Números enteros (positivos o negativos), sin decimales. Incluye a los naturales.

Enteros (Z):..., -3, -2, -1, 0, 1, 2, 3,... Números enteros (positivos o negativos), sin decimales. Incluye a los naturales. Tema 1: Números Reales 1.1 Conjunto de los números Naturales (N): 0, 1, 2, 3. Números positivos sin decimales. Sirven para contar. Enteros (Z):..., -3, -2, -1, 0, 1, 2, 3,... Números enteros (positivos

Más detalles

SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES

SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES SESIÓN N 07 III UNIDAD RELACIONES Y FUNCIONES RELACIONES BINARIAS PAR ORDENADO Es un arreglo de dos elementos que tienen un orden determinado donde a es llamada al primera componente y b es llamada la

Más detalles

funciones printf scanf

funciones printf scanf FUNCIONES EN C FUNCIONES Los módulos en C se llaman funciones. Hemos estado utilizando funciones de la biblioteca estandar stdio.h como por ejemplo printf y scanf. Comenzaremos viendo algunas funciones

Más detalles

Eje temático: Álgebra y funciones Contenidos: Raíces cuadradas y cúbicas - Racionalización Ecuaciones irracionales. Nivel: 3 Medio

Eje temático: Álgebra y funciones Contenidos: Raíces cuadradas y cúbicas - Racionalización Ecuaciones irracionales. Nivel: 3 Medio Eje temático: Álgebra y funciones Contenidos: Raíces cuadradas y cúbicas - Racionalización Ecuaciones irracionales. Nivel: 3 Medio Raíces 1. Raíces cuadradas y cúbicas Comencemos el estudio de las raíces

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Programación 2 Profesorado de Informática CeRP del Suroeste, Uruguay 29 de marzo de 2016 Estructuras de control IV Iteración Sentencia for: for (inicio; condicion; paso) cuerpo for (int i = 0; i < 10;

Más detalles

Semana03[1/17] Funciones. 16 de marzo de Funciones

Semana03[1/17] Funciones. 16 de marzo de Funciones Semana03[1/17] 16 de marzo de 2007 Introducción Semana03[2/17] Ya que conocemos el producto cartesiano A B entre dos conjuntos A y B, podemos definir entre ellos algún tipo de correspondencia. Es decir,

Más detalles

Aspectos y ejercicios a trabajar en el taller

Aspectos y ejercicios a trabajar en el taller Taller: Nos puede ayudar la calculadora científica en nuestra labor de enseñar matemáticas? Aspectos y ejercicios a trabajar en el taller Toma de contacto con la herramienta La mejora de resolución de

Más detalles

Estrategias didácticas para la resolución de problemas en Matemática de I y II ciclos

Estrategias didácticas para la resolución de problemas en Matemática de I y II ciclos Estrategias didácticas para la resolución de problemas en Matemática de I y II ciclos Segundo Ciclo, Relaciones y Álgebra Abril, 2014 En el Segundo ciclo se busca la profundización en los aprendizajes

Más detalles