Modelado algebraico de tipos de datos recursivos

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

Download "Modelado algebraico de tipos de datos recursivos"

Transcripción

1 Introducción a la Programación Genérica Modelado algebraico de tipos de datos recursivos Modelado algebraico de tipos Tipos de datos recursivos pueden ser definidos en la mayoría de los lenguajes de programación modernos. Ejemplos: Haskell, ML, Java. Veremos como los tipos de datos recursivos son modelados en el lenguaje de categorías. Tal modelado está basado en una visión algebraica de los tipos. Prog. Genérica - InCo 1

2 Declaraciones de tipos de datos La estructura sintáctica de los elementos de un tipo es declarada mediante los constructores del mismo. Los constructores con múltiples argumentos los vamos a considerar en forma no currificada. Es decir, nuestras declaraciones de tipo van a ser de la forma: data T = C 1 (τ 1,1 τ 1,k1 ). C n (τ n,1 τ n,kn ) donde en los τ i,j puede eventualmente ocurrir T. Esto define que, para cada i,. C i : τ i,1 τ i,ki T Prog. Genérica - InCo 2 Ejemplos Naturales data Nat = Zero Succ Nat define que Zero : Nat Succ : Nat Nat Listas data List(A) = Nil Cons (A List(A)) define que Nil : List(A) Cons : A List(A) List(A) Prog. Genérica - InCo 3

3 Σ-álgebras Una forma natural de ver una declaración de tipo es como definiendo un álgebra de términos. Como una primera aproximación al modelado algebraico de tipos, veamos el caso de las álgebras homogeneas con signatura Σ. A través de una signatura Σ se declara un conjunto de símbolos de función. Para cada f Σ, denotaremos por ar(f) la aridad de f (que es un nro. natural). Una Σ-álgebra A está fromada por un conjunto soporte A junto con una función f A : A ar(f) A para cada f Σ. Prog. Genérica - InCo 4 Ejemplos Sea Σ = {e, } tal que ar(e) = 0 y ar( ) = 2. Σ-álgebras concretas: (N, 0, (+)) (Z, 1, ( )) (B, false, ( )) (List(A), Nil, (++)) Sea Σ = {e, i, } tal que ar(e) = 0, ar(i) = 1 y ar( ) = 2. Σ-álgebras concretas: (Z, 0, ( 1), (+)) (N, 1, (+1), ( )) (B, false, ( ), ( )) Prog. Genérica - InCo 5

4 Homomorfismos Homomorfismos son mapeos entre álgebras que preservan la estructura. Un Σ-homomorfismo entre dos Σ-álgebras A y B es una función h : A B entre sus conjuntos soportes tal que, para cada f Σ, h(f A (a 1,..., a ar(f) )) = f B (h(a 1 ),..., h(a ar(f) )) En forma de diagrama: A ar(f) h ar(f) B ar(f) f A A h f B B Prog. Genérica - InCo 6 Ejemplos de homomorfismos Sea Σ = {e, } tal que ar(e) = 0 y ar( ) = 2. La función length : List(A) N, tal que length(nil) = 0 length(l++l ) = length(l) + length(l ) es un homomorfismo entre las álgebras (List(A), Nil, (++)) y (N, 0, (+)). La función ispos : N B, tal que ispos(0) = false ispos(x + y) = ispos(x) ispos(y) es un homomorfismo entre las álgebras (N, 0, (+)) y (B, false, ( )). Prog. Genérica - InCo 7

5 Álgebra de términos Dada una signatura Σ, el conjunto de términos T Σ está definido inductivamente de la siguiente forma: f Σ t 1,..., t n T Σ f(t 1,..., t n ) T Σ donde n = ar(f) T Σ es el conjunto soporte del álgebra de términos T Σ. Funciones del álgebra de términos: para cada f Σ, f T Σ (t 1,..., t ar(f) ) def = f(t 1,..., t ar(f) ) Propiedad universal: Existe un único homomorfismo h : T Σ A entre el álgebra de términos y cualquier otra álgebra A. Prog. Genérica - InCo 8 Signaturas como functores Dada una signatura Σ y un conjunto A cualquiera, podemos considerar la siguiente suma: f Σ Aar(f) la cual resume los dominios de las funciones de cualquier Σ-álgebra con conjunto soporte A. Esta suma puede ser vista como la acción sobre objetos de un functor Σ : Set Set, Σ : A f Σ Aar(f) Prog. Genérica - InCo 9

6 Álgebras y homomorfismos (revistos) Usando el functor Σ es posible empaquetar las funciones de un álgebra A en términos de una sola flecha dada por un análisis de casos. ϕ : ΣA A Un homomorfismo entre dos álgebras ϕ : ΣA A y ψ : ΣB B es una función h : A B tal que ΣA Σh ΣB ϕ ψ A h B Prog. Genérica - InCo 10 F -álgebras y F -homomorfismos Las construcciones anteriores se pueden generalizar para el caso de álgebras heterogeneas (varios conjuntos soportes) y para cualquier functor F : C C sobre una categoría C arbitraria. Una F -álgebra es una flecha h : F A A. Un F -homomorfismo entre dos álgebras h : F A A y h : F B B es una flecha f : A B tal que F A F f F B h A f h B La categoría de F -álgebras, Alg(F ), está formada por F -álgebras como objetos y F -homomorfismos como flechas. Prog. Genérica - InCo 11

7 Ecuaciones de tipo Dada una declaración de tipo data T = C 1 (τ 1,1 τ 1,k1 ). C n (τ n,1 τ n,kn ) es posible derivar un functor F : C C que captura la signatura de dicho tipo: donde τ i,j = τ i,j [A/T ]. F A = n i=1 ( τ i,1 τ i,ki ) El tipo de dato es entonces interpretado como una solución (un punto fijo) de la ecuación de tipo: X = F X. Prog. Genérica - InCo 12 Ejemplo: Naturales data Nat = Zero Succ Nat Signatura: NA = 1 + A, esto es, N = 1 + I. Entonces, Nat = 1 + Nat. Álgebras: h = [h 1, h 2 ] : 1 + A A. Homomorfismos: Para h : NA A y k : NB B, f : A B es tal que 1 id 1 1 A f B k 1 k 2 h 1 A f B h 2 A f B Prog. Genérica - InCo 13

8 Ejemplo: Expresiones aritméticas data Exp = Num Int Add (Exp Exp) Mult (Exp Exp) Signatura: EA = Int + A A + A A, esto es, E = Int + I I + I I. Álgebras: h = [h 1, h 2, h 3 ] : Int + A A + A A A Homomorfismos: Para h : EA A y k : EB B, f : A B es tal que: Int + A 2 + A 2 id Int + f f + f f Int + B 2 + B 2 h A f k B Prog. Genérica - InCo 14 Tipos polimórficos La signatura de tipos de datos polimórficos es capturada por functores F : C C C. El primer argumento corresponde al parámetro del tipo de dato polimórfico. Fijando el primer argumento en un objeto A de C uno obtiene un functor F (A, ) : C C, que denotaremos F A, tal que F A B = F (A, B) F A f = F (id A, f) La ecuación de tipo en este caso es de la forma DA = F (A, DA) donde D es el tipo de dato polimórfico. Prog. Genérica - InCo 15

9 Ejemplo: Listas data List(A) = Nil Cons (A List(A)) Signatura: L A B = 1 + A B, esto es, L A = 1 + A I. Álgebras: h = [h 1, h 2 ] : 1 + A B B Homomorfismos: Para h : L A B B y k : L A C C, f : A B es tal que: 1 + A B id 1 + id A f 1 + A C h B f k C Prog. Genérica - InCo 16 Ejemplo: Árboles binarios data Btree(A) = Leaf A Join (Btree(A) Btree(A)) Signatura: B A C = A + C C, esto es, B A = A + I I. Álgebras: h = [h 1, h 2 ] : A + C C C Homomorfismos: Para h : B A X X y k : B A Y Y, f : X Y es tal que: A + X X id A + f f A + Y Y h X f k Y Prog. Genérica - InCo 17

10 Álgebra inicial Un álgebra es dicha inicial si existe un único homomorfismo entre ella y cualquier otra álgebra. Dada una ecuación de tipo X = F X, denotaremos el álgebra inicial como in F : F µf µf Los constructores son las componentes del álgebra inicial: in F = [C 1,..., C n ] El álgebra inicial corresponde al álgebra de términos. Prog. Genérica - InCo 18 Fold La existencia del álgebra inicial permite asociar un operador recursivo a cada tipo de dato, llamado fold (o catamorfismo). Dada un F -álgebra h : F A A, denotaremos por fold F (h) al único homomorfismo entre in F y h. F T F fold F (h) F A in F T fold F (h) h A Fold sustituye cada constructor por la correspondiente función en el álgebra. Fold corresponde a definiciones por recursión estructural sobre el tipo. Prog. Genérica - InCo 19

11 Ejemplo: Naturales Álgebra inicial: data Nat = Zero Succ Nat in N = [Zero, Succ] : 1 + Nat Nat Para cada h = [h 1, h 2 ] : 1 + A A, fold es la única flecha f = fold N (h) : Nat A tal que f Zero = h 1 f Succ = h 2 f Con elementos, f(zero) = h 1 f(succ(n)) = h 2 (f(n)) Ejemplo: add m = fold N ([λu.m, Succ]) : Nat Nat Prog. Genérica - InCo 20 Ejemplo: Expresiones aritméticas data Exp = Num Int Add (Exp Exp) Mult (Exp Exp) Álgebra inicial: in E = [Num, Add, Mult] : Int+Exp Exp+Exp Exp Exp Para cada h = [h 1, h 2, h 3 ] : Int + A A + A A A, fold es la única flecha f = fold E (h) : Exp A tal que f Num = h 1 f Add = h 2 (f f) f Mult = h 3 (f f) Prog. Genérica - InCo 21

12 Ejemplo: Expresiones aritméticas Con elementos, f(num(n)) = h 1 (n) f(add(e, e )) = h 2 (f(e), f(e )) f(mult(e, e )) = h 3 (f(e), f(e )) Ejemplo: eval = fold E ([id, +, ]) : Exp Int Esto es, eval(num(n)) = n eval(add(e, e )) = eval(e) + eval(e ) eval(mult(e, e )) = eval(e) eval(e ) Prog. Genérica - InCo 22 Ejemplo: Listas Álgebra inicial: in LA = [Nil, Cons] : 1 + A List(A) List(A) Para cada h = [h 1, h 2 ] : 1 + A B B, fold es la única flecha f = fold LA (h) : List(A) B tal que f Nil = h 1 f Cons = h 2 (id A f) Con elementos, f(nil) = h 1 f(cons(a, l)) = h 2 (a, f(l)) Ejemplo: sum = fold LNat ([Zero, add]) : List(Nat) Nat Prog. Genérica - InCo 23

13 Ejemplo: Árboles binarios Álgebra inicial: in BA = [Leaf, Join] : B A Btree(A) Btree(A) Para cada h = [h 1, h 2 ] : A + C C C, fold es la única flecha f = fold BA (h) : Btree(A) C tal que f Leaf = h 1 f Join = h 2 (f f) Con elementos, f(leaf(a)) = h 1 (a) f(join(t, u)) = h 2 (f(t), f(u)) Ejemplo: leaves = fold BA ([wrap, ++]) : Btree(A) List(A) Prog. Genérica - InCo 24 Propiedades del operador fold Ley de identidad: fold F (in F ) = id µf Ley de fusión: f h = h F f f fold F (h) = fold F (h ) En términos de diagramas, F A F f F B µf fold F (h) A h A f h B fold F (h ) f B Prog. Genérica - InCo 25

14 Banana split fold F (h), fold F (k) = fold F ( h F π 1, k F π 2 ) Prog. Genérica - InCo 26 Transformador Un transformador es una función T : (F A A) (GA A) polimórfica en A que construye G-álgebras a partir de F -álgebras. Propiedad: Por ser T polimórfica se cumple que F A F f F B GA Gf GB h h T(h) T(h ) A f B A f B Prog. Genérica - InCo 27

15 Fusión de fold con fold Si T : (F A A) (GA A) es un transformador, entonces fold F (h) fold G (T(in F )) = fold G (T(h)) O sea, fold G (T(h)) = µg fold G(T(in F )) µf fold F (h) A donde h : F A A. Esta propiedad es también conocida como ley de deforestación o ley de la lluvia ácida (acid rain law). Prog. Genérica - InCo 28 Ejemplo Consideremos el tipo de dato data Tree(A) = Empty Node (Tree(A) A Tree(A)) y la función prune : List(A) Tree(A) Tree(A) prune l = p donde p(empty) = Empty p(node(t, a, t )) = if a l then Empty else Node(p(t), a, p(t )) Prog. Genérica - InCo 29

16 Ejemplo (cont.) prune l = fold TA (fprune) donde T A B = 1 + B A B fprune : 1 + Tree(A) A Tree(A) Tree(A) fprune(x) = case x of inl(u) Empty inr(t, a, t ) if a l then Empty else Node(t, a, t ) Prog. Genérica - InCo 30 Ejemplo (cont.) donde fprune = T(in TA ) in TA = [Empty, Node] T : (F A B B) (F A B B) T(h) = λx. case x of inl(u) h 1 inr(b, a, b ) if a l then h 1 else h 2 (b, a, b ) siendo h = [h 1, h 2 ] : 1 + B A B B. T satisface ser un transformador. Prog. Genérica - InCo 31

17 Ejemplo (cont.) size : Tree(A) Int size(empty) = 0 size(node(t, a, t )) = 1 + size(t) + size(t ) size = fold TA (fsize) fsize : 1 + Int A Int Int count : List(A) Tree(A) Int count l = size prune l count l = Tree(A) prune l Tree(A) size Int Prog. Genérica - InCo 32 Ejemplo (cont.) Aplicando fusión de fold con fold se obtiene que count l = fold TA (T(fsize)) o sea, count l Empty = 0 count l (Node(t, a, t )) = if a l then 0 else 1 + count l t + count l t Prog. Genérica - InCo 33

18 Functor de tipo Todo tipo de dato polimórfico D se puede hacer un functor D : C C, llamado functor de tipo, definiendo su acción sobre flechas f : A B, Esto es, Df def = fold FA (in FB F (f, id DB )) : DA DB F A (DA) in FA F A (Df) F A (DB) F (f, id) F B (DB) DA Df DB in FB Prog. Genérica - InCo 34 Ejemplo: Listas Para f : A B, Por lo tanto, List(f) = fold LA ([Nil, Cons (f id)]) List(f)(Nil) = Nil List(f)(Cons(a, l)) = Cons(f(a), List(f)(l)) List corresponde a la popular función map. map :: (a -> b) -> ([a] -> [b]) map f [] = [] map f (x:xs) = f x : map f xs Prog. Genérica - InCo 35

19 Ejemplo: Árboles binarios Para f : A B, Btree(f) = fold BA ([Leaf f, Join]) Esto es, Btree(f)(Leaf(a)) = Leaf(f(a)) Btree(f)(Join(t, u)) = Join(Btree(f)(t), Btree(f)(u)) Prog. Genérica - InCo 36 Rose trees Rose trees son árboles con múltiples ramificaciones: data Rose(A) = Fork(A List(Rose(A))) Signatura: R A B = A List(B), esto es, R A = A List. Álgebras: h : A List(B) B. Álgebra inicial: in RA = Fork : A List(Rose(A)) Rose(A) Para cada h : A List(B) B, fold es la única flecha f = fold RA (h) : Rose(A) B tal que: f(fork(a, l)) = h(a, List(f)(l)) Prog. Genérica - InCo 37

20 unzip genérico gunzip : D(A B) (DA DB) gunzip = D π 1, D π 2 Propiedad: Para toda f : A A y g : B B, D(A B) gunzip DA DB D(f g) D(A B ) Df Dg gunzip DA DB Prog. Genérica - InCo 38 Fusión entre map y fold Para toda f : A B y h : F B C C, fold FB (h) Df = fold FA (h F (f, id C )) Esto es, fold FA (h F (f, id)) = DA Df DB fold F B (h) C Prog. Genérica - InCo 39

21 Ejemplo all : (A Bool) List(A) Bool all p = and List(p) donde and : List(Bool) Bool and = fold LBool ([True, ]) Por la ley de fusión entre map y fold se obtiene que: all p = fold LA ([True, (p id)]) Prog. Genérica - InCo 40 Tipos de datos regulares Un tipo de dato es dicho regular si su declaración no contiene espacios de funciones ( ) y las ocurrencias recursivas del tipo aparecen con los mismos argumentos que en la parte izquierda de la declaración. La signatura de los tipos de datos regulares es modelada por functores regulares: F ::= I A F F F + F D Prog. Genérica - InCo 41

22 Bifunctores regulares La signatura de tipos regulares polimórficos es modelada por bifunctores regulares (functores de tipo C C C): donde F ::= C U Par Rec F F F + F DF C = Nat, Int, Bool, String, etc. U = 1 P ar = Π 1 (extrae el parámetro) Rec = Π 2 (extrae el parámetro recursivo) Prog. Genérica - InCo 42 Ejemplos de bifunctores L(A, X) = 1 + A X L = U + Par Rec B(A, X) = A + X X B = Par + Rec Rec T (A, X) = 1 + X A X T = U + Rec Par Rec R(A, X) = A List(X) R = Par List Rec Prog. Genérica - InCo 43

Tesis de Maestría en Informática

Tesis de Maestría en Informática PEDECIBA Informática Instituto de Computación Facultad de Ingeniería Universidad de la República Montevideo, Uruguay Tesis de Maestría en Informática Fusión en presencia de acumuladores Amarante 2010 Martínez

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

Grupos libres. Presentaciones.

Grupos libres. Presentaciones. S _ Tema 12.- Grupos libres. Presentaciones. 12.1 Grupos libres. En el grupo Z de los enteros vimos una propiedad (cf. ejemplos.5), que lo caracteriza como grupo libre. Lo enunciamos al modo de una Propiedad

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

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

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

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

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

Proyecto de grado: Implementación de un sistema de fusión. Informe final

Proyecto de grado: Implementación de un sistema de fusión. Informe final Proyecto de grado: Implementación de un sistema de fusión Informe final Facundo Domínguez Tutor: Dr. Alberto Pardo Instituto de Computación Carrera de Ingeniería en Computación Facultad de Ingeniería Universidad

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

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

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

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

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

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

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

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

Definición 1.1 Sea G un conjunto. Una operación binaria en G es una aplicación m: G G G.

Definición 1.1 Sea G un conjunto. Una operación binaria en G es una aplicación m: G G G. 1 Definición y propiedades Definición 1.1 Sea G un conjunto. Una operación binaria en G es una aplicación m: G G G. Definición 1.2 Sea G un conjunto i) Si G tiene una operación binaria definida en G, se

Más detalles

Continuidad. 5.1 Continuidad en un punto

Continuidad. 5.1 Continuidad en un punto Capítulo 5 Continuidad 5.1 Continuidad en un punto Definición 5.1.1 (Aplicación continua en un punto). Sean (X, τ) e (Y, τ ) dos espacios topológicos, y sea f : X Y una aplicación entre ellos. Diremos

Más detalles

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof.

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof. Árboles Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof. Paula Echenique Una de las estructuras de datos más importantes

Más detalles

Matrices: repaso. Denotaremos con M m n el conjunto de matrices de tamaño m n, o sea, de m filas y n columnas. Una matriz A M m n es de la forma A =

Matrices: repaso. Denotaremos con M m n el conjunto de matrices de tamaño m n, o sea, de m filas y n columnas. Una matriz A M m n es de la forma A = Matrices: repaso Denotaremos con M m n el conjunto de matrices de tamaño m n, o sea, de m filas y n columnas Una matriz A M m n es de la forma a 11 a 1n A = a m1 a mn Denotaremos A ij = a ij el coeficiente

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

LEYES DE COMPOSICIÓN INTERNA Y ELEMENTOS DISTINGUIDOS

LEYES DE COMPOSICIÓN INTERNA Y ELEMENTOS DISTINGUIDOS LEYES DE COMPOSICIÓN INTERNA Y ELEMENTOS DISTINGUIDOS Sea una estructura formada por un conjunto A, sobre cuyos elementos se ha definido una operación o ley interna, comúnmente denotada por " * ", que

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

Diferenciales de Orden Superior

Diferenciales de Orden Superior Capítulo 10 Diferenciales de Orden Superior En este capítulo extenderemos a las funciones definidas sobre espacios normados el concepto de función r-veces diferenciable y de clase C r y obtendremos las

Más detalles

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo. Capítulo 5 Campos finitos 5.1. Introducción Presentaremos algunos conceptos básicos de la teoría de los campos finitos. Para mayor información, consultar el texto de McEliece [61] o el de Lidl y Niederreiter

Más detalles

LOS NUMEROS COMPLEJOS. En cursos previos se ha visto que algunas ecuaciones polinómicas- esto es, ecuaciones de la forma:

LOS NUMEROS COMPLEJOS. En cursos previos se ha visto que algunas ecuaciones polinómicas- esto es, ecuaciones de la forma: LOS NUMEROS COMPLEJOS. INTRODUCCION: En cursos previos se ha visto que algunas ecuaciones polinómicas- esto es, ecuaciones de la forma: n n a 0 + a +... + an + an = 0 () -no tienen soluciones en R. El

Más detalles

CONCEPTOS BASICOS DE LA TRANSFORMADA DE LAPLACE LA TRANSFORMADA DE LAPLACE

CONCEPTOS BASICOS DE LA TRANSFORMADA DE LAPLACE LA TRANSFORMADA DE LAPLACE LA TRANSFORMADA DE LAPLACE Por cálculo integral sabemos que cuando vamos a determinar una integral impropia de la forma,su desarrollo se obtiene realizando un cambio de variable en el límite superior de

Más detalles

324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso 2015-2

324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso 2015-2 324 MR Versión 1 Prueba Integral 1/3 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: Computación II CÓDIGO: 324 MOMENTO: Prueba Integral FECHA DE APLICACIÓN:

Más detalles

Estructuras Algebraicas

Estructuras Algebraicas Tema 1 Estructuras Algebraicas Definición 1 Sea A un conjunto no vacío Una operación binaria (u operación interna) en A es una aplicación : A A A Es decir, tenemos una regla que a cada par de elementos

Más detalles

Tema 1.3. Un lenguaje mínimo y su procesador: Restricciones contextuales

Tema 1.3. Un lenguaje mínimo y su procesador: Restricciones contextuales Tema 1.3. Un lenguaje mínimo y su procesador: Restricciones contextuales Profesor Federico Peinado Elaboración del material José Luis Sia Federico Peinado Facultad de Informática Universidad Complutense

Más detalles

Construcción Modular de Mónadas con Operaciones

Construcción Modular de Mónadas con Operaciones Construcción Modular de Mónadas con Operaciones CIFASIS / Depto de Cs. de la Computación FCEIA - Universidad Nacional de Rosario JCC 2010 En esta charla Estructuración de programas usando mónadas Transformadores

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

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002 Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto

Más detalles

EL42A - Circuitos Electrónicos

EL42A - Circuitos Electrónicos ELA - Circuitos Electrónicos Clase No. 24: Amplificadores Operacionales (1) Patricio Parada pparada@ing.uchile.cl Departamento de Ingeniería Eléctrica Universidad de Chile 3 de Noviembre de 2009 ELA -

Más detalles

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal

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

Tema 2: Teorema de estructura de los grupos abelianos finitamente generados.

Tema 2: Teorema de estructura de los grupos abelianos finitamente generados. ESTRUCTURAS ALGEBRAICAS GRADO EN MATEMÁTICAS. CURSO 215/216 Tema 2: Teorema de estructura de los grupos abelianos finitamente generados. 1.1. Grupo abeliano libre. Bases. Definición 1.1. El grupo Z n con

Más detalles

Funciones y Cardinalidad

Funciones y Cardinalidad Funciones y Cardinalidad Definición 1 Llamaremos función f entre dos conjuntos A y B a una relación que verifica las siguientes propiedades: i) Dom(f) = A ii) Si (a, b), (a, c) f entonces b = c Dicho de

Más detalles

Recordemos que utilizaremos, como es habitual, la siguiente notación para algunos conjuntos de números que son básicos.

Recordemos que utilizaremos, como es habitual, la siguiente notación para algunos conjuntos de números que son básicos. Capítulo 1 Preliminares Vamos a ver en este primer capítulo de preliminares algunos conceptos, ideas y propiedades que serán muy útiles para el desarrollo de la asignatura. Se trata de resultados sobre

Más detalles

Lenguajes y Compiladores

Lenguajes y Compiladores 2015 Estructura de la materia a grandes rasgos: Primera Parte: Lenguaje imperativo Segunda Parte: Lenguaje aplicativo puro, y lenguaje aplicativo con referencias y asignación Ejes de contenidos de la primer

Más detalles

Tema 4: Aplicaciones lineales

Tema 4: Aplicaciones lineales Águeda Mata y Miguel Reyes, Dpto de Matemática Aplicada, FI-UPM 1 Tema 4: Aplicaciones lineales Ejercicios 1 Estudia la linealidad de las siguientes aplicaciones: (a) f : R R 3, definida por f(x, y) =

Más detalles

MATRICES. Una matriz es un conjunto de números o expresiones dispuestos en forma rectangular, formando filas y columnas.

MATRICES. Una matriz es un conjunto de números o expresiones dispuestos en forma rectangular, formando filas y columnas. MATRICES Una matriz es un conjunto de números o expresiones dispuestos en forma rectangular, formando filas y columnas. Cada uno de los números de que consta la matriz se denomina elemento. Un elemento

Más detalles

Forma binomial de números complejos (ejercicios)

Forma binomial de números complejos (ejercicios) Forma binomial de números complejos (ejercicios) Objetivos. Mostrar que los números reales x se pueden identificar con números complejos de la forma (x, 0), y cada número complejo (x, y) se puede escribir

Más detalles

Es claro que es una relación de equivalencia. Para ver que tener la misma cardinalidad y la cardinalidad están bien definidas queremos ver que

Es claro que es una relación de equivalencia. Para ver que tener la misma cardinalidad y la cardinalidad están bien definidas queremos ver que Capítulo II Cardinalidad Finita II.1. Cardinalidad Definimos I n para n N como I n = {k N : 1 k n}. En particular I 0 =, puesto que 0 < 1. Esto es equivalente a la definición recursiva { si n = 0 I n =

Más detalles

Inducción y recursión

Inducción y recursión Capítulo 11 Inducción y recursión Índice del Capítulo 11.1. Introducción.................................. 229 11.2. Inducción matemática............................. 230 11.3. Ayudas para pruebas por

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

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

1 Relaciones de orden

1 Relaciones de orden 1 Relaciones de orden Sea R una relación binaria en un conjunto A. Si R satisface las propiedades reflexiva, antisimétrica y transitiva se dice que R es una relación de orden. En este caso si a y b son

Más detalles

TEMA 3 ÁLGEBRA DE CONMUTACIÓN

TEMA 3 ÁLGEBRA DE CONMUTACIÓN TEMA 3 ÁLGEBRA DE CONMUTACIÓN TEMA 3: Álgebra de Boole ÍNDICE. POSTULADOS DEL ÁLGEBRA DE CONMUTACIÓN 2. ÁLGEBRA DE BOOLE BIVALENTE O ÁLGEBRA DE CONMUTACIÓN 2. Teoremas del álgebra de conmutación 3. VARIABLES

Más detalles

NOCIONES PRELIMINARES (*) 1

NOCIONES PRELIMINARES (*) 1 CONJUNTOS NOCIONES PRELIMINARES (*) 1 Conjunto no es un término definible, pero da idea de una reunión de cosas ( elementos ) que tienen algo en común. En matemática los conjuntos se designan con letras

Más detalles

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

Tema 3. Tipos de datos simples

Tema 3. Tipos de datos simples Tema 3. Tipos de datos simples Contenido del tema: Concepto de tipo. Tipos simples. Operadores. Expresiones. Semántica. Tipos y expresiones en lenguaje C++ Francisco J. Veredas Dpto. Lenguajes y Ciencias

Más detalles

Funciones. Domf = {x R f(x) B} Ranf = {f(x) x Domf} x (, 4) (4, ) 4y + 1 y. 4y + 1. > 4 = y y. > 0 = y

Funciones. Domf = {x R f(x) B} Ranf = {f(x) x Domf} x (, 4) (4, ) 4y + 1 y. 4y + 1. > 4 = y y. > 0 = y Funciones Una función real de variable real es una aplicación f : A B donde A,B son conjuntos de números reales. Domf = x R f(x) B Rango: El rango o imagen de la función f es un conjunto que se define

Más detalles

Operadores y Expresiones

Operadores y Expresiones Operadores y Expresiones Los programas Java constan de datos, sentencias de programas y expresiones. Una expresión es normalmente, una ecuación matemática, tal como 3 * x + 5 * z. En esta expresión, los

Más detalles

Anillos. a + (b + c) = (a + b) + c. 3) Existe un elemento 0 en R, el cual llamaremos cero, tal que. a + 0 = 0 + a = a para todo a en R.

Anillos. a + (b + c) = (a + b) + c. 3) Existe un elemento 0 en R, el cual llamaremos cero, tal que. a + 0 = 0 + a = a para todo a en R. Capítulo 7 Anillos 7.1 Definiciones Básicas El concepto de Anillo se obtiene como una generalización de los números enteros, en donde están definidas un par de operaciones, la suma y el producto, relacionadas

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

4. Operadores Operador asignación

4. Operadores Operador asignación Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre

Más detalles

Estructuras algebraicas

Estructuras algebraicas Estructuras algebraicas Natalia Boal María Luisa Sein-Echaluce Universidad de Zaragoza 1 Relaciones binarias 11 Recordatorio Definición Dados dos conjuntos A y B se llama producto cartesiano de A por B

Más detalles

Conjuntos, relaciones y funciones Susana Puddu

Conjuntos, relaciones y funciones Susana Puddu Susana Puddu 1. Repaso sobre la teoría de conjuntos. Denotaremos por IN al conjunto de los números naturales y por ZZ al de los enteros. Dados dos conjuntos A y B decimos que A está contenido en B o también

Más detalles

ESTRUCTURA Y TECNOLOGÍA DE LOS COMPUTADORES I. TEMA 4 Algebra booleana y puertas lógicas

ESTRUCTURA Y TECNOLOGÍA DE LOS COMPUTADORES I. TEMA 4 Algebra booleana y puertas lógicas ESTRUCTURA Y TECNOLOGÍA DE LOS COMPUTADORES I TEMA 4 Algebra booleana y puertas lógicas TEMA 4. Algebra booleana y puertas lógicas 4.1 Definición de álgebra de Boole 4.2 Teoremas del álgebra de Boole 4.3

Más detalles

Dos matrices son iguales cuando tienen la misma dimensión y los elementos que ocupan el mismo lugar en ambas son iguales

Dos matrices son iguales cuando tienen la misma dimensión y los elementos que ocupan el mismo lugar en ambas son iguales Introducción Las matrices aparecen por primera vez hacia el año 1850, introducidas por J.J. Sylvester. El desarrollo inicial de la teoría se debe al matemático W.R. Hamilton en 1853. En 1858, A. Cayley

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

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto EJERCICIOS del TEMA 3: Lenguajes independientes del contexto Sobre GICs (gramáticas independientes del contexto) 1. Sea G una gramática con las siguientes producciones: S ASB ε A aab ε B bba ba c ) d )

Más detalles

Métodos directos para resolver sistemas de ecuaciones lineales

Métodos directos para resolver sistemas de ecuaciones lineales Métodos directos para resolver sistemas de ecuaciones lineales Problemas para examen Si en algún problema se pide calcular el número de flops (operaciones aritméticas con punto flotante), entonces en el

Más detalles

Teoría de la Computabilidad

Teoría de la Computabilidad Teoría de la Computabilidad Módulo 7: Lenguajes sensibles al contexto 2016 Departamento de Cs. e Ing. de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Es este programa en Pascal sintácticamente

Más detalles

EL4005 Principios de Comunicaciones Clase No.24: Demodulación Binaria

EL4005 Principios de Comunicaciones Clase No.24: Demodulación Binaria EL4005 Principios de Comunicaciones Clase No.24: Demodulación Binaria Patricio Parada Departamento de Ingeniería Eléctrica Universidad de Chile 5 de Noviembre de 2010 1 of 34 Contenidos de la Clase (1)

Más detalles

Teoría de anillos. Dominios, cuerpos y cuerpos de fracciones. Característica de un cuerpo.

Teoría de anillos. Dominios, cuerpos y cuerpos de fracciones. Característica de un cuerpo. 1 Tema 5.-. Teoría de anillos. Dominios, cuerpos y cuerpos de fracciones. Característica de un cuerpo. 5.1. Anillos y cuerpos Definición 5.1.1. Un anillo es una terna (A, +, ) formada por un conjunto A

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

SESIÓN 6 INTERPRETACION GEOMETRICA DE LA DERIVADA, REGLA GENERAL PARA DERIVACIÓN, REGLAS PARA DERIVAR FUNCIONES ALGEBRAICAS.

SESIÓN 6 INTERPRETACION GEOMETRICA DE LA DERIVADA, REGLA GENERAL PARA DERIVACIÓN, REGLAS PARA DERIVAR FUNCIONES ALGEBRAICAS. SESIÓN 6 INTERPRETACION GEOMETRICA DE LA DERIVADA, REGLA GENERAL PARA DERIVACIÓN, REGLAS PARA DERIVAR FUNCIONES ALGEBRAICAS. I. CONTENIDOS: 1. Interpretación geométrica de la derivada 2. Regla general

Más detalles

Lógica de Predicados de Primer Orden

Lógica de Predicados de Primer Orden Lógica de Predicados: Motivación Todo natural es entero y 2 es un natural. Luego 2 es entero. p q r p, q r es claramente un razonamiento válido pero no es posible demostrarlo desde la Lógica Proposicional

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

Tema 7. Generación de código

Tema 7. Generación de código Departamento de Tecnologías de la Información Tema 7 Generación de código Ciencias de la Computación e Inteligencia Artificial Índice 7.1 Visión general 7.2 Código de tres direcciones 2 Índice 7.1 Visión

Más detalles

ALGEBRA DE BOOLE George Boole C. E. Shannon E. V. Hungtington [6]

ALGEBRA DE BOOLE George Boole C. E. Shannon E. V. Hungtington [6] ALGEBRA DE BOOLE El álgebra booleana, como cualquier otro sistema matemático deductivo, puede definirse con un conjunto de elementos, un conjunto de operadores y un número de axiomas no probados o postulados.

Más detalles

Taller: Introducción a las Relaciones de Recurrencia.

Taller: Introducción a las Relaciones de Recurrencia. Taller: Introducción a las Relaciones de Recurrencia. Déboli Alberto. Departamento de Matemática. F.C.E. y N. Universidad de Buenos Aires. Semana de la Enseñanza de la Ciencia. Buenos Aires 15 de julio

Más detalles

b) Sea una relación de equivalencia en A y una operación en A. Decimos que y son compatibles si a b a c b c y c a c b para todo a, b, c A

b) Sea una relación de equivalencia en A y una operación en A. Decimos que y son compatibles si a b a c b c y c a c b para todo a, b, c A APENDICE Relaciones y Operaciones Compatibles 1 Definición: a) Sea A un conjunto y una relación entre elementos de A. Decimos que es una relación de equivalencia si es: i Reflexiva: a A, a a. ii Simétrica:

Más detalles

Guía. Álgebra II. Examen parcial III. Transformaciones lineales. Teoremas los más importantes cuyas demostraciones se pueden incluir en el examen

Guía. Álgebra II. Examen parcial III. Transformaciones lineales. Teoremas los más importantes cuyas demostraciones se pueden incluir en el examen Guía. Álgebra II. Examen parcial III. Transformaciones lineales. Teoremas los más importantes cuyas demostraciones se pueden incluir en el examen 1. Teorema de la representación matricial de una transformación

Más detalles

Tema 3 - Modelado con HDL a nivel RTL

Tema 3 - Modelado con HDL a nivel RTL - Modelado con HDL a nivel RTL Eduardo Rodríguez Martínez Departamento de Electrónica División de Ciencias Básicas e Ingeniería Universidad Autónoma Metropolitana Unidad Azcapotzalco Email: erm@correo.azc.uam.mx

Más detalles

Capitulo VI: Funciones.

Capitulo VI: Funciones. Funciones o Aplicaciones: Capitulo VI: Funciones. Ejemplo de función: Sean: A = {, 2, 3 } B = { a, b, c, d, e } F = { (;a) (2;b) (3;e) } es una función de A en B, porque a cada elemento de A, le corresponde

Más detalles

Tema 2: El grupo de las permutaciones

Tema 2: El grupo de las permutaciones Tema 2: El grupo de las permutaciones Miguel Ángel Olalla Acosta miguelolalla@us.es Departamento de Álgebra Universidad de Sevilla Octubre de 2014 Olalla (Universidad de Sevilla) Tema 2: El grupo de las

Más detalles

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Compiladores: Análisis Sintáctico Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V. Sintaxis Define la estructura del lenguaje Ejemplo: Jerarquía en

Más detalles

Semana05[1/14] Relaciones. 28 de marzo de Relaciones

Semana05[1/14] Relaciones. 28 de marzo de Relaciones Semana05[1/14] 28 de marzo de 2007 Introducción Semana05[2/14] Ya en los capítulos anteriores nos acercamos al concepto de relación. Relación Dados un par de conjuntos no vacíos A y B, llamaremos relación

Más detalles

Masa y composición isotópica de los elementos

Masa y composición isotópica de los elementos Masa y composición isotópica de los elementos www.vaxasoftware.com Z Sím A isótopo Abndancia natral Vida Prodcto 1 H 1 1,00782503207(10) 99,9885(70) 1,00794(7) estable D 2 2,0141017780(4) 0,0115(70) estable

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

Algebra lineal y conjuntos convexos

Algebra lineal y conjuntos convexos Apéndice A Algebra lineal y conjuntos convexos El método simplex que se describirá en el Tema 2 es de naturaleza algebraica y consiste en calcular soluciones de sistemas de ecuaciones lineales y determinar

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas. Tema 1 Matrices 1.1. Conceptos básicos y ejemplos Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas. NOTA:

Más detalles

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Descripción y Contenido del Curso. Programación C++ Capacity Academy. Descripción y Contenido del Curso Programación C++ Capacity Academy Educación en Tecnología de la Información Online, Efectiva y Garantizada Qué aprenderá si toma este Curso? En este curso aprenderás todo

Más detalles

Derivadas Parciales (parte 2)

Derivadas Parciales (parte 2) 40 Derivadas Parciales (parte 2) Ejercicio: Si donde y. Determinar Solución: Consideraremos ahora la situación en la que, pero cada una de las variables e es función de dos variables y. En este caso tiene

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

CONTINUIDAD DE FUNCIONES. SECCIONES A. Definición de función continua. B. Propiedades de las funciones continuas. C. Ejercicios propuestos.

CONTINUIDAD DE FUNCIONES. SECCIONES A. Definición de función continua. B. Propiedades de las funciones continuas. C. Ejercicios propuestos. CAPÍTULO IV. CONTINUIDAD DE FUNCIONES SECCIONES A. Definición de función continua. B. Propiedades de las funciones continuas. C. Ejercicios propuestos. 121 A. DEFINICIÓN DE FUNCIÓN CONTINUA. Una función

Más detalles

FUNCIONES DE UNA VARIABLE

FUNCIONES DE UNA VARIABLE FUNCIONES DE UNA VARIABLE 1- Definiciones 2- Algunas funciones reales 3- Ecuaciones de curvas planas en coordenadas cartesianas 4- Coordenadas polares 5- Coordenadas paramétricas 6- Funciones hiperbólicas

Más detalles

Álgebras de Boole. Definición 1 Un álgebra de Boole es un conjunto parcialmente ordenado (B, ) que verifica las siguientes condiciones:

Álgebras de Boole. Definición 1 Un álgebra de Boole es un conjunto parcialmente ordenado (B, ) que verifica las siguientes condiciones: Álgebras de Boole Sea (P, ) un conjunto parcialmente ordenado y sea S un subconjunto de P. Una cota superior de S es un elemento c P tal que s c para todo s S. Una cota inferior de S es un elemento d P

Más detalles

Transformaciones lineales

Transformaciones lineales Semana 8 [1/62] 8 de septiembre de 27 Definiciones básicas Semana 8 [2/62] Definición Transformación lineal U, V dos espacios vectoriales sobre el mismo cuerpo Ã. T : U V es una transformación (o función)

Más detalles

1 Ecuaciones diferenciales

1 Ecuaciones diferenciales 1 Ecuaciones diferenciales La solución a una ecuación algebraica es un número, o un conjunto de números que satisfacen la ecuación. Por ejemplo las soluciónes de x 2 4x + 3 = 0 son x 0 = 1 y x 1 = 3. Las

Más detalles

Secuencias. Mauro Jaskelioff 18/05/2015

Secuencias. Mauro Jaskelioff 18/05/2015 Secuencias Mauro Jaskelioff 18/05/2015 Secuencias Seq es un TAD para representar secuencias de elementos. A continuación veremos algunas de sus operaciones y las especificaremos en términos de la noció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