Para entender la recursividad primero tenemos que entender la recursividad

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

Download "Para entender la recursividad primero tenemos que entender la recursividad"

Transcripción

1 Para entender la recursividad primero tenemos que entender la recursividad Funcional Clase 1 Matias Reparaz, Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 20 de Septiembre

2 Funcional - Matemática Menú de esta tarde Vamos a hacer una introducción a la sintaxis de Haskell y a como hacer nuestros propios tipos de datos. Vamos a mostrar el Hugs. Vamos a implementar funciones recursivas simples sobre tipos y listas.

3 Funcional - Matemática Paralelismo Funcional - Matemática En matemática... func1 : Z Z 6 si x == 1 func1(x) = x + 2 si x == 5 ó x == 6 0 si x == 8 En funcional... Una forma: func1 :: Int -> Int func1 1 = 6 func1 5 = 7 func1 6 = 8 func1 8 = 0

4 Funcional - Matemática Paralelismo Funcional - Matemática En matemática... func1 : Z Z 6 si x == 1 func1(x) = x + 2 si x == 5 ó x == 6 0 si x == 8 En funcional... Otra forma: func1 :: Int -> Int func1 x (x==1) = 6 (x==5 x==6) = x + 2 (x==8) = 0

5 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs Un poco de sintaxis Cada expresión que define el comportamiento de una función se denomina ecuación. Cada función puede tener más de una ecuación. Una función puede recibir muchos parámetros, pero solo devolver uno ( es una función!) a esto se le llama aridad. No es necesario indicarle a Haskell el tipo de parámetros, pero nosotros lo vamos a hacer siempre. Por Ej.: multiplicar :: Int -> Int -> Int multiplicar x y = x * y prm :: (Int,Int) -> Int prm (a,b) = a

6 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs Un poco de sintaxis (Cont.) El nombre de las funciones empieza con letra minúscula y los tipos de datos con mayúscula. Cuando la forma de calcular el resultado depende de algún predicado (con respecto a los parámetros), solemos usar guardas... func :: Param1 -> Param2 ->... -> ParamN -> Res func p1 p2... pn (p1 > p2) =... (p1 < p2) =... otherwise =...

7 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs Un poco de sintaxis (Cont.) Se analizan de arriba hacia abajo y cuando una de las condiciones se satisface, se determina qué ecuación debe utilizarse. Si no hay guarda que se haga verdadera, la expresión que se trata de evaluar se indefine. otherwise se utiliza para indicar que, si no se cumple la condición de ninguna de las guardas anteriores, se debe ingresar en esa guarda.

8 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs Pattern matching Cuando la forma de calcular el resultado depende de que es el parámetro, solemos usar pattern matching... algunoescero :: Int -> Int -> Bool algunoescero 0 _ = True algunoescero _ 0 = True algunoescero = False

9 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs Tipos en Haskell, vienen gratis con el preludio Int (==,/=,>,<,+,-,*,mod,rem,div) Integer (más grande) Float (==,/=,>,<,+,-,*,/) Bool (==,/=,not,&&,,true,false) Char (==,/=,>,<) También podemos usar listas de cualquiera de estos tipos.

10 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs Funciones parciales y totales Una función se dice total si, para cualquier instancia de parámetros, es capaz de indicar un resultado. doble :: Int -> Int doble x = x + x En caso contrario se dice que la función es parcial. chartoint :: Char -> Int chartoint x (x== a ) = 0 (x== b ) = 1 (x== c ) = 2

11 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs Evaluación y reducción de una expresión Una vez que se definen las funciones uno puede querer saber cuánto vale, por ejemplo: doble 2 Para obtener el resultado se procede a reducir la expresión. Esto se hace reemplazando el nombre de la función y sus parámetros según la ecuación que corresponda. Si no se encuentra ecuación alguna, la evaluación se indefine. doble Forma de evaluar una expresión: siempre se hace desde la función más externa que aparece y los parámetros de izquierda a derecha. Por ejemplo con doble (doble 5) tenemos la siguiente reducción.

12 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs Evaluación y reducción de una expresión doble (doble 5) (doble 5) + (doble 5) (5 + 5) + (doble 5) 10 + (doble 5) 10 + (5 + 5)

13 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs Ejercicios Implementar la función suma que satisface la siguiente especificación. problema suma (x, y:z) = result : Z { asegura result == x + y ; } suma :: Int -> Int -> Int suma x y = x + y

14 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs Implementar la función espar que satisface la siguiente especificación. problema espar (n:z) = result : Bool { asegura res == (n mod 2 == 0) ; } espar :: Int -> Bool espar x = (mod x 2) == 0 La función mod se puede usar en notación infija con el uso de acento francés. Esto se puede hacer con todas las funciones binarias (las que tienen dos parámetros). espar :: Int -> Bool espar x = (x mod 2) == 0

15 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs Bueno, ahora a implementar nuestros tipos A lo largo de la materia aprenderemos cómo hacer nuestros propios tipos de datos. En esta ocasión veremos los tipos enumerados. Para estos se debe declarar cuáles son los valores posibles del tipo. Esto se hace de la siguiente forma: data NombreTipo = Valor1 Valor2... ValorN Cuando uno declara un tipo enumerado es importante notar que no hay ninguna función definida para este. Ni siquiera ==. Por tal motivo las funciones que utilicen como entrada valores de este tipo van a tener, por lo general, una ecuación por cada valor del tipo.

16 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs Como ejemplo definiremos el tipo DiaSemana, que representa los dias de la semana, y algunas funciones que lo utilizan. data DiaSemana = Lunes Martes Miercoles Jueves Viernes Sabado Domingo cursoalgo1 :: DiaSemana -> Bool cursoalgo1 Lunes = True cursoalgo1 Miercoles = True cursoalgo1 Viernes = True cursoalgo1 _ = False Si quisieramos definir esta función utilizando el ==, necesitamos definir la igualdad. Podemos construirla nosotros, o podemos usar la igualdad que Haskell provee por defecto. Para hacer esto último, debemos agregar deriving Eq a la definición del tipo

17 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs data DiaSemana = Lunes Martes Miercoles Jueves Viernes Sabado Domingo deriving (Eq) cursoalgo1 :: DiaSemana -> Bool cursoalgo1 d (d == Lunes d == Miercoles d == Viernes ) = True otherwise = False cursoalgo1 :: DiaSemana -> Bool cursoalgo1 d = (d == Lunes d == Miercoles d == Viernes )

18 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs De la misma forma que se puede utilizar la igualdad provista por Haskell podemos hacer lo mismo con la relación de orden (Ord). También vamos a necesitar que Haskell muestre por pantalla estos tipos. Para eso, utilizamos Show. data DiaSemana = Lunes Martes Miercoles Jueves Viernes Sabado Domingo deriving (Ord, Eq, Show) Cuándo es la próxima clase de algo1? proximaclase :: DiaSemana -> DiaSemana proximaclase d d <= Lunes = Lunes d <= Miercoles = Miercoles d <= Viernes = Viernes otherwise = Lunes

19 Sintaxis Tipos Funciones parciales y totales Reducciones Tipos Enumerados Hugs Hugs Es un programa que entiende Haskell, no es el único pero es el que vamos a usar en la materia. Los que usan Window$ se lo pueden bajar de la página. Los que usan GNU/Linux usen su gestor de paquetes favorito. Los que usan Mac OS X (no nos olvidamos de ustedes =) ) tienen que instalarse las macports. Cualquier cosa google. Ahora vamos a mostrar como se usa.

20 Funciones Recursivas La definición de una función también puede ser recursiva. Esto quiere decir que alguna ecuación de la función necesita evaluar la misma función (pero para otra instancia). La idea es pensar que la función que definimos sabe resolver el problema para una instancia más chica de la entrada. De esa forma puedo usarlo para resolver una instancia más grande. No hay que olvidarse el (o los) caso base, piensen cual es la instancia mas chica de la entrada que va a aceptar su función. Por ejemplo, para hacer un programa que compute n! tenemos la siguiente posibilidad.

21 problema factorial (n: Z) = result : Z { requiere n 0 ; asegura result == [1..n] ; } factorial :: Int -> Int factorial n n == 0 = 1 n > 0 = n * (factorial (n-1))

22 Qué pasa cuando hacemos recursión? factorial(3) - Programa factorial :: Int -> Int factorial n n == 0 = 1 n > 0 = n * (factorial (n-1))

23 Qué pasa cuando hacemos recursión? factorial(3) - Programa factorial :: Int -> Int factorial n n == 0 = 1 n > 0 = n * (factorial (n-1))

24 Qué pasa cuando hacemos recursión? 3 * (factorial (2)) - Programa factorial :: Int -> Int factorial n n == 0 = 1 n > 0 = n * (factorial (n-1))

25 Qué pasa cuando hacemos recursión? 3 * (factorial (2)) - Programa factorial :: Int -> Int factorial n n == 0 = 1 n > 0 = n * (factorial (n-1))

26 Qué pasa cuando hacemos recursión? 3 * (2 * factorial(1)) - Programa factorial :: Int -> Int factorial n n == 0 = 1 n > 0 = n * (factorial (n-1))

27 Qué pasa cuando hacemos recursión? 3 * (2 * factorial(1)) - Programa factorial :: Int -> Int factorial n n == 0 = 1 n > 0 = n * (factorial (n-1))

28 Qué pasa cuando hacemos recursión? 3 * (2 * (1 * factorial (0))) - Programa factorial :: Int -> Int factorial n n == 0 = 1 n > 0 = n * (factorial (n-1))

29 Qué pasa cuando hacemos recursión? 3 * (2 * (1 * factorial (0))) - Programa factorial :: Int -> Int factorial n n == 0 = 1 n > 0 = n * (factorial (n-1))

30 Qué pasa cuando hacemos recursión? 3 * (2 * (1 * 1)) - Programa factorial :: Int -> Int factorial n n == 0 = 1 n > 0 = n * (factorial (n-1))

31 Qué pasa cuando hacemos recursión? 6 - Programa factorial :: Int -> Int factorial n n == 0 = 1 n > 0 = n * (factorial (n-1))

32 Para que la función pueda calcular el resultado de una instancia dada es necesario que el caso recursivo vaya acercando el problema hacia el caso base. En este ejemplo es claro que para calcular factorial n, con n >= 0, en algún momento se llegará a necesitar factorial 0 y el programa va a terminar de forma correcta. Bueno, ahora hagamos de nuevo espar con lo que sabemos.

33 problema espar (n:z) = result : Bool { asegura res == (n mod 2 == 0) ; } espar :: Int -> Bool espar n n == 0 = True (abs n) == 1 = False (abs n) >= 2 = espar( (abs n) -2) Otra opción espar :: Int -> Bool espar 0 = True espar n = not (espar ( (abs n) -1)) El aux abs les queda de ejercicio ;)

34 EL ejemplo clásico de recursividad Implementar una función que dado un natural n, calcule el n-ésimo número de Fibonacci. fibonacci :: Int -> Int fibonacci n n == 0 = 1 n == 1 = 1 n >= 2 = (fibonacci (n-1)) + (fibonacci (n-2))

35 En algunos casos es necesario definir una función auxiliar para resolver un problema. En el caso de factorial no era necesario saber qué instancia del problema se está tratando de resolver para el usuario. Cuando sí es necesario, se suele recurrir a una función auxiliar recursiva en donde algunos parámetros representan el problema que se trata de resolver.

36 Escribir una función que dado un número natural distinto de cero, diga si es primo o no. problema esprimo (n: Z) = result : Bool { requiere n > 0 ; asegura result == (n 1) ( d [2..n))(n mod d 0) ; } esprimo :: Int -> Bool esprimo n n == 1 = False n >= 2 = not (haydivisorhasta (n-1) n) haydivisorhasta :: Int -> Int -> Bool haydivisorhasta i n i == 1 = False n mod i == 0 = True otherwise = haydivisorhasta (i-1) n

37 Escribir una función que dado un número natural distinto de cero, nos devuelva la suma de sus divisores. problema sumadivisores (n: Z) = result : Z { requiere n > 0 ; asegura result == [d d [1..n], n mod d == 0] ; } sumadivisores :: Int -> Int sumadivisores n = sumadivisoreshasta n n sumadivisoreshasta :: Int -> Int -> Int sumadivisoreshasta h n h == 1 = 1 h > 1 && n mod h == 0 = h + (sumadivisoreshasta (h-1) n) otherwise = sumadivisoreshasta (h-1) n

38 Pattern Matching con Listas Dada una lista de caracteres... Exijo la cabeza de esa lista! cabeza:: [Char] -> Char cabeza [] = error"no pierdas la cabeza" cabeza (x:xs) = x Y si lo hacemos con una lista de tipo paramétrico? cabeza:: [a] -> a

39 Dada una lista... quiero averiguar su longitud. longitud:: [a] -> Int longitud [] = 0 longitud (x:xs) = 1 + longitud xs

40 Dada una lista de enteros... quiero averiguar su máximo. maximo:: Int -> [Int] -> Int maximo [] = error"no hay maximo" maximo [x] = x maximo (x:xs) x < maximo xs = maximo xs x >= maximo xs = x

41 Cómo es que esta cosa funciona? max [2,3,1] (2 < max[3, 1]) max [3,1] (3 < 1) FALSE (3 >= max[1]) max [1] 1 Caso Base max [1] = 1

42 Cómo es que esta cosa funciona? max [2,3,1] (2 < max[3, 1]) max [3,1] (3 < 1) FALSE (3 >= 1) TRUE max [3,1] = 3

43 Cómo es que esta cosa funciona? max [2,3,1] (2 < 3) TRUE max[2,3,1] = max [3,1] max [3,1] (3 < 1) FALSE (3 >= max[1]) max [1] 1 Caso Base max [1] = 1

44 Cómo es que esta cosa funciona? max [2,3,1] (2 < 3) TRUE max[2,3,1] = max [3,1] max [3,1] (3 < 1) FALSE (3 >= 1) TRUE max [3,1] = 3

45 Cómo es que esta cosa funciona? max [2,3,1] (2 < 3) TRUE max[2,3,1] = 3

46 Otras formas maximo [] = error"no hay maximo" maximo [x] = x maximo (x:xs) = if (x < maximo xs) then (maximo xs) else x maximo [] = error"no hay maximo" maximo [x] = x maximo (x:xs) x < max = max x >= max = x where max= maximo xs

47 Dada un entero... quiero conseguir una lista de sus divisores. divisores:: Int -> [Int] divisores n = divisoresdesde n 1 divisoresdesde:: Int -> Int -> [Int] divisoresdesde n m n == m = [n] n > m && (n mod m == 0) = m:(divisoresdesde n (m+1)) n > m && (n mod m /= 0) = divisoresdesde n (m+1)

48 Ahora, teniendo esta función... podemos hacer de otra forma sumadivisores? sumadivisores:: Int -> Int sumadivisores n = sumalista (divisores n) sumalista::[int] -> Int sumalista [] = 0 sumalista (x:xs) = x + sumalista xs

49 Notas importantes NUNCA pueden usar funciones del lado del Pattern Matching. Ej. FuncionAlocada :: Int -> Bool FuncionAlocada n-1 =... NO se pueden usar listas por comprensión para resolver los ejercicios.

50 Hacer cualquiera de estas cosas implica un NO APROBADO (Fatality), sin miramientos, en cualquier instancia de evaluación de Algo 1 (y el repudio por parte de todo el plantel docente). En los TP s también se evalua legibilidad y claridad al escribir código, esto va a quedar más claro en las siguientes clases.

51 Consultas?

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

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

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

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

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

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

CALENDARIO AÑO 2016 PICO Y PLACA AUTOMOVILES SERVICIO ESPECIAL PICO Y PLACA TAXIS

CALENDARIO AÑO 2016 PICO Y PLACA AUTOMOVILES SERVICIO ESPECIAL PICO Y PLACA TAXIS JULIO VIERNES 1 9 7-8 7-8 5-6 1-3-5-7-9 SABADO 2 8 9-0 9-0 7-8 NO APLICA DOMINGO 3 NO APLICA NO APLICA NO APLICA NO APLICA NO APLICA LUNES 4 FESTIVO FESTIVO FESTIVO FESTIVO FESTIVO MARTES 5 1 3-4 3-4 1-2

Más detalles

EL LENGUAJE ALGEBRAICO

EL LENGUAJE ALGEBRAICO LENGUAJE ALGEBRAICO Guillermo Ruiz Varela - PT EL LENGUAJE ALGEBRAICO Hasta ahora siempre hemos trabajado en matemáticas con números y signos, es lo que se llama lenguaje numérico. A partir de ahora, vamos

Más detalles

CALENDARIO AÑO 2016 PICO Y PLACA AUTOMOVILES SERVICIO ESPECIAL PICO Y PLACA TAXIS

CALENDARIO AÑO 2016 PICO Y PLACA AUTOMOVILES SERVICIO ESPECIAL PICO Y PLACA TAXIS ENERO VIERNES 1 FESTIVO FESTIVO FESTIVO FESTIVO FESTIVO SABADO 2 3 7-8 7-8 5-6 NO APLICA DOMINGO 3 NO APLICA NO APLICA NO APLICA NO APLICA NO APLICA LUNES 4 4 9-0 9-0 7-8 NO APLICA MARTES 5 5 1-2 1-2 9-0

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

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

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

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

1 Conjuntos y propiedades de los números naturales

1 Conjuntos y propiedades de los números naturales Programa Inmersión, Verano 2016 Notas escritas por Dr. M Notas del cursos. Basadas en los prontuarios de MATE 3001 y MATE 3023 Clase #1: martes, 31 de mayo de 2016. 1 Conjuntos y propiedades de los números

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

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

Tema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda

Tema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda Informática Haskell Matemáticas Curso 2004-2005 Pepe Gallardo Universidad de Málaga Tema 9. Árboles 9.1 Árboles generales 9.2 Árboles binarios 9.3 Árboles de búsqueda 9.1 Árboles generales Un árbol es

Más detalles

ECUACIONES EN Q (NÚMEROS RACIONALES)

ECUACIONES EN Q (NÚMEROS RACIONALES) Echa un vistazo a esta situación. ECUACIONES EN Q (NÚMEROS RACIONALES) El domingo, Leonardo caminó 4 unidades. El lunes, Leonardo caminó un tercio de lo que caminó el martes. El caminó un total de 12 unidades

Más detalles

Lógica y Programación

Lógica y Programación Lógica y Programación Programación funcional con Haskell Antonia M. Chávez, Carmen Graciani, Agustín Riscos Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Programación

Más detalles

Lección 8: Suma y resta de en teros

Lección 8: Suma y resta de en teros LECCIÓN 8 bajo el nivel del mar, y el buzo B baja a 81 metros bajo el nivel del mar. Cuál de los dos está más cerca de la superficie? d) El saldo de la empresa Caluro, S.A. es de $12 807 en números rojos,

Más detalles

Trabajo Práctico Nro. 1

Trabajo Práctico Nro. 1 Trabajo Práctico Nro. 1 INSTITUTO de TECNOLOGÍA O. R. T. Diagramar algoritmos para resolver los problemas planteados. Objetivos de esta práctica: Pretendemos que al finalizar esta ejercitación el alumno

Más detalles

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ). ALGEBRA La primera parte del presente libro está dedicada a las estructuras algebraicas. En esta parte vamos a iniciar agregándole a los conjuntos operaciones. Cuando las operaciones tienen determinadas

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

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

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

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

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando

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

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

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

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

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

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

Nuestro primer ejemplo nos dice: Escribe la ecuación de una línea que es perpendicular a la grafica de Y= ½x + 4 y pasa por los puntos (0,-1).

Nuestro primer ejemplo nos dice: Escribe la ecuación de una línea que es perpendicular a la grafica de Y= ½x + 4 y pasa por los puntos (0,-1). CGT.5.G.3-Pam Beach-Write the equation of a line perpendicular to a line through a point. La lección de hoy es sobre escribir una ecuación de una línea perpendicular a una línea dado un punto. El cuál

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

3 Polinomios y funciones racionales

3 Polinomios y funciones racionales Programa Inmersión, Verano 2016 Notas escritas por Dr. M Notas del cursos. Basadas en los prontuarios de MATE 3001 y MATE 3023 Clase #19: viernes, 24 de junio de 2016. 3 Polinomios y funciones racionales

Más detalles

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus

Más detalles

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B) APRENDERAPROGRAMARCOM FUNCIONES PHP: DECLARACIÓN Y LLAMADAS PARÁMETROS, RETURN EJERCICIOS EJEMPLOS RESUELTOS (CU00827B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha

Más detalles

Curso de sistemas GNU/Linux Bash scripting Construcciones case

Curso de sistemas GNU/Linux Bash scripting Construcciones case Curso de sistemas GNU/Linux Bash scripting Construcciones case Por Jorge Fuertes http://jorgefuertes.com c 2009 Jorge Fuertes Alfranca Revisado a 15 de mayo de 2009 1 Índice 1. Introducción 3 1.1. Qué

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

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

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

Fecha Segundo Cuarto Sexto Octavo

Fecha Segundo Cuarto Sexto Octavo PRIMER ORDINARIO Lunes 23 de Martes 24 de BASE DE Miércoles 25 de Jueves 26 de Viernes 27 de SEGUNDO ORDINARIO Lunes 23 de Martes 24 de BASE DE Miércoles 25 de Jueves 26 de Viernes 27 de TERCER ORDINARIO

Más detalles

COMPARAR CADENAS CON PHP STRCMP, == Ó ===? NO DISTINGUIR MAYÚSCULAS O MINÚSCULAS: STRCASECMP. RELLENAR CON STR_PAD. (CU00829B)

COMPARAR CADENAS CON PHP STRCMP, == Ó ===? NO DISTINGUIR MAYÚSCULAS O MINÚSCULAS: STRCASECMP. RELLENAR CON STR_PAD. (CU00829B) APRENDERAPROGRAMAR.COM COMPARAR CADENAS CON PHP STRCMP, == Ó ===? NO DISTINGUIR MAYÚSCULAS O MINÚSCULAS: STRCASECMP. RELLENAR CON STR_PAD. (CU00829B) Sección: Cursos Categoría: Tutorial básico del programador

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

Tema: Clases y Objetos en C#. Parte II.

Tema: Clases y Objetos en C#. Parte II. Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y

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

Materia: Matemática de 5to Tema: Ecuación de la Recta. Marco Teórico

Materia: Matemática de 5to Tema: Ecuación de la Recta. Marco Teórico Materia: Matemática de 5to Tema: Ecuación de la Recta Marco Teórico Simplemente comenzar con la ecuación general de la forma pendiente-intersección de una línea, y luego conecte los valores dados de y

Más detalles

Ficha de Aprendizaje N 13

Ficha de Aprendizaje N 13 Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que

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

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola) Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma

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

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

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros

Más detalles

Tipos de Datos de python (1ª parte):

Tipos de Datos de python (1ª parte): Tipos de Datos de python (1ª parte): Cuando almacenamos datos en una variable, lo que podemos hacer con ellos depende del tipo de datos que sean. Si tengo los datos 1 y 2 y hago 1+2 obtendré como resultado

Más detalles

Materia: Matemática de Octavo Tema: Raíces de un polinomio. Marco teórico

Materia: Matemática de Octavo Tema: Raíces de un polinomio. Marco teórico Materia: Matemática de Octavo Tema: Raíces de un polinomio Y si tuvieras una ecuación polinómica como? Cómo podrías factorizar el polinomio para resolver la ecuación? Después de completar esta lección

Más detalles

INTRODUCCIÓN DE DATOS EN LA HOJA DE CÁLCULO

INTRODUCCIÓN DE DATOS EN LA HOJA DE CÁLCULO UNIDAD DIDÁCTICA INTRODUCCIÓN DE DATOS EN LA HOJA DE CÁLCULO Los objetivos de este tema son: 1. Aprender a introducir datos en la hoja de cálculo. 2. Diferenciar los tipos de datos con los que se puede

Más detalles

Esta expresión polinómica puede expresarse como una expresión matricial de la forma; a 11 a 12 a 1n x 1 x 2 q(x 1, x 2,, x n ) = (x 1, x 2,, x n )

Esta expresión polinómica puede expresarse como una expresión matricial de la forma; a 11 a 12 a 1n x 1 x 2 q(x 1, x 2,, x n ) = (x 1, x 2,, x n ) Tema 3 Formas cuadráticas. 3.1. Definición y expresión matricial Definición 3.1.1. Una forma cuadrática sobre R es una aplicación q : R n R que a cada vector x = (x 1, x 2,, x n ) R n le hace corresponder

Más detalles

A continuación estudiaremos a qué se refiere el término «programación», qué es un lenguaje de programación y veremos alguna terminología propia de

A continuación estudiaremos a qué se refiere el término «programación», qué es un lenguaje de programación y veremos alguna terminología propia de A continuación estudiaremos a qué se refiere el término «programación», qué es un lenguaje de programación y veremos alguna terminología propia de programación y cómo se utiliza. 1 Por sí sólo, un equipo

Más detalles

8. Diseña una función que muestre el calendario para un mes en el siguiente formato: Lunes Martes Miércoles Jueves Viernes Sábado Domingo

8. Diseña una función que muestre el calendario para un mes en el siguiente formato: Lunes Martes Miércoles Jueves Viernes Sábado Domingo 8. Diseña una función que muestre el calendario para un mes en el siguiente formato: Lunes Martes Miércoles Jueves Viernes Sábado Domingo 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

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

Teoría de Conjuntos y Conjuntos Numéricos

Teoría de Conjuntos y Conjuntos Numéricos Teoría de Conjuntos y Conjuntos Numéricos U N I V E R S I D A D D E P U E R T O R I C O E N A R E C I B O D E P A R T A M E N T O DE M A T E M Á T I C A S P R O F A. Y U I T Z A T. H U M A R Á N M A R

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

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

Ecuaciones del plano. Cajón de Ciencias

Ecuaciones del plano. Cajón de Ciencias Ecuaciones del plano Cajón de Ciencias Un plano tiene sus propias ecuaciones que lo definen, al igual que ocurría con la recta. Algunas de ellas son bastante parecidas, y de hecho verás que el plano tiene

Más detalles

Técnico Superior en Producción y Administración Rural - 1er Año

Técnico Superior en Producción y Administración Rural - 1er Año Marzo Lunes Martes Miercoles Jueves Viernes Sabado 1 2 3 4 5 12 14 15 16 1 1 1 25 26 2 2 30 Economía de la Prod. 31 Economía de la Prod. Abril 1 2 4 5 6 Economía de la Prod. Economía de la Prod. Práctica

Más detalles

Lección 5: Ecuaciones con números naturales

Lección 5: Ecuaciones con números naturales GUÍA DE MATEMÁTICAS I Lección 5: Ecuaciones con números naturales Observe la siguiente tabla y diga cuáles son los números que faltan. 1 2 3 4 5 6 7 8 9 10 11 12 3 6 9 12 Es sencillo encontrar la regla

Más detalles

Tema 13: Programas interactivos

Tema 13: Programas interactivos Tema 13: Programas interactivos 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 / 38 Tema 13: Programas

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

GUIA DE APRENDIZAJE No.01 Actividades Ejercicio No.1 Ingrese a Microsoft Excel y guarde el archivo con el nombre de EVIDENCIA 1.

GUIA DE APRENDIZAJE No.01 Actividades Ejercicio No.1 Ingrese a Microsoft Excel y guarde el archivo con el nombre de EVIDENCIA 1. GUIA DE APRENDIZAJE No.01 Actividades Ejercicio No.1 Ingrese a Microsoft Excel y guarde el archivo con el nombre de EVIDENCIA 1. - Cuando usted abre una hoja de cálculo electrónica encuentra Filas (Vienen

Más detalles

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL Ciclos Fundamentos de Programación Recordando Estructuras de Control Básicas: Una secuencia es una serie de estatutos que se ejecutan uno después de otro. Selección (condición) ejecuta diferentes estatutos

Más detalles

Tema 4. Operadores y Expresiones

Tema 4. Operadores y Expresiones Tema 4 Operadores y Expresiones Contenidos 1. Conceptos Básicos. 2. Operadores Aritméticos. 3. Operadores de Relación, de Igualdad y Lógicos. 4. Operadores de Incremento y Decremento. 5. Operadores y Expresiones

Más detalles

Escribir un número en letras

Escribir un número en letras Ana María Beirão Escribir un número en letras NIVEL: AVANZADO Ver archivo de ejemplo. En este truco veremos cómo podemos hacer en Excel para que, dado un número, nos muestre su valor pero en letras. Antes

Más detalles

Recursividad. Introducción a la programación

Recursividad. Introducción a la programación Recursividad Introducción a la programación I semestre, 2016 Concepto general Un concepto que está definido utilizando para este propósito el propio concepto que se está definiendo. Es un proceso de repetición

Más detalles

FUNDAMENTOS MATEMÁTICOS (Grado en Ingeniería Informática) Práctica 4. DERIVACIÓN

FUNDAMENTOS MATEMÁTICOS (Grado en Ingeniería Informática) Práctica 4. DERIVACIÓN FUNDAMENTOS MATEMÁTICOS (Grado en Ingeniería Informática) Práctica 4. DERIVACIÓN 1.- Derivada de una función en un punto. El estudio de la derivada de una función en un punto surge con el problema geométrico

Más detalles

= RETURN =3 7-. ELSE K

= RETURN =3 7-. ELSE K 11-. Pida Al Usuario Dos Números Enteros (Que Se Guardaran En Las Variables Num 1 Y Num2). Si Num2 Es Cero, Deberá Mostrar Un Mensaje De Error, Y En Caso Contrario Mostrara En Pantalla El Resto De La División

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

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo Complementos Contenidos Clase 1: Elementos de lógica: Conectivos, tablas de verdad, tautologías y contingencias.

Más detalles

Programación Declarativa UNIVERSIDAD DE MÁLAGA

Programación Declarativa UNIVERSIDAD DE MÁLAGA Programación Declarativa UNIVERSIDAD DE MÁLAGA (3 o de Ingeniería Técnica en Informática) E.T.S.I. INFORMÁTICA Septiembre de 2006 mbre: Especialidad: Prolog Grupo: Ejercicio 1.1 (1 punto) Realizad el árbol

Más detalles

Programación Funcional

Programación Funcional Programación Funcional Jeroen Fokker 1996 Universidad de Utrecht Departamento de Informática Traducci on: Programa MEMI Universidad Mayor de San Simón Hielko R. Ophoff & Bernardo Sánchez J. Revisión: Universidad

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

Objetivo General: Plantean y resuelven problemas que involucran desigualdades.

Objetivo General: Plantean y resuelven problemas que involucran desigualdades. Liceo Polivalente Juan Antonio Ríos Quinta Normal NIVEL : TERCERO MEDIO Guía de aprendizaje Nº 4 Unidad Temática: Desigualdades e Inecuaciones Objetivo General: Plantean y resuelven problemas que involucran

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

Procesos e Hilos en C

Procesos e Hilos en C Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.

Más detalles

Cuando se enumeran todos los elementos que componen el conjunto. A = { 1, 2, 3, 4, 5 }

Cuando se enumeran todos los elementos que componen el conjunto. A = { 1, 2, 3, 4, 5 } LOS NÚMEROS REALES TEMA 1 IDEAS SOBRE CONJUNTOS Partiremos de la idea natural de conjunto y del conocimiento de si un elemento pertenece (* ) o no pertenece (* ) a un conjunto. Los conjuntos se pueden

Más detalles

MATEMATICA GRADO 9 II PERIODO PROF. LIC. ESP. BLANCA NIEVES CASTILLO R. CORREO: cel

MATEMATICA GRADO 9 II PERIODO PROF. LIC. ESP. BLANCA NIEVES CASTILLO R. CORREO: cel GUIA DE TEORIA NO. 1 LO QUE DEBO SABER Regla de Cramer Un sistema de ecuaciones lineales se dice de Cramer cuando cumple las siguientes condiciones: Es un sistema cuadrado, con igual número de ecuaciones

Más detalles

Aproximaciones Sucesivas.

Aproximaciones Sucesivas. Aproximaciones Sucesivas. La Raíz Cuadrada. Te has preguntado cómo es que una calculadora hace sus cálculos? Por ejemplo, calcular la raíz cuadrada de un número dado, en las calculadoras científicas siempre

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

TEMA 8: Gestión dinámica de memoria

TEMA 8: Gestión dinámica de memoria TEMA 8: Gestión dinámica de memoria 8.1.-Tipo de datos puntero Hasta ahora, los tipos de datos que hemos visto (a excepción de strings y ficheros) eran estructuras de datos estáticas, es decir, estructuras

Más detalles

Tema 3. Análisis de costes

Tema 3. Análisis de costes Tema 3. Análisis de costes http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información

Más detalles

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes: Constantes Las constantes se pueden declarar con la palabra reservada const y se le asigna un valor en el momento de la declaracion, este valor no se puede modificar durante el programa y cualquier intento

Más detalles

Alguna vez has tratado de servir pedazos de torta iguales aún cuando se cortaron de manera diferente?

Alguna vez has tratado de servir pedazos de torta iguales aún cuando se cortaron de manera diferente? Materia: Matemática de séptimo Tema: Fracciones Equivalentes Alguna vez has tratado de servir pedazos de torta iguales aún cuando se cortaron de manera diferente? En la reunión de sexto grado, una de las

Más detalles

MANUAL BÁSICO DE MYSQL

MANUAL BÁSICO DE MYSQL MANUAL BÁSICO DE MYSQL ESCUELA COLOMBIANA DE INGENIERÍA JULIO GARAVITO LABORATORIO DE INFORMÁTICA BOGOTÁ D. C. 2007-2 TABLA DE CONTENIDO MANUAL BÁSICO DE MYSQL... 1 INTRODUCCIÓN... 3 1. CONECTARSE CON

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

FUNCIONES EXPONENCIAL Y LOGARÍTMICA

FUNCIONES EXPONENCIAL Y LOGARÍTMICA FUNCIONES EXPONENCIAL Y LOGARÍTMICA 1. Crecimiento exponencial. La función exponencial. 1.1 La Función Exponencial. Una función exponencial es una expresión de la forma siguiente:,,. Donde es una constante

Más detalles

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación TUTORIAL PSEINT Ing. Ronald Rentería Ayquipa Fundamentos de Programación PSEINT Página Oficial: http://pseint.sourceforge.net/ Es un software que interpreta pseudocódigo. Permite la generación de diagramas

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

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

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles