Tema 3: Tipos y clases

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

Download "Tema 3: Tipos y clases"

Transcripción

1 Tema 3: Tipos y clases Informática ( ) José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla

2 2 / 32 IM Tema 3: Tipos y clases Tema 3: Tipos y clases 1. Conceptos básicos sobre tipos 2. Tipos básicos 3. Tipos compuestos Tipos listas Tipos tuplas Tipos funciones 4. Parcialización 5. Polimorfismo y sobrecarga Tipos polimórficos Tipos sobrecargados 6. Clases básicas

3 IM Tema 3: Tipos y clases Conceptos básicos sobre tipos Qué es un tipo? Un tipo es una colección de valores relacionados. Un ejemplo de tipos es el de los valores booleanos: Bool El tipo Bool tiene dos valores True (verdadero) y False (falso). v :: T representa que v es un valor del tipo T y se dice que v tiene tipo T. Cálculo de tipo con :type Prelude> :type True True :: Bool Prelude> :type False False :: Bool El tipo Bool -> Bool está formado por todas las funciones cuyo argumento y valor son booleanos. Ejemplo de tipo Bool -> Bool Prelude> :type not not :: Bool -> Bool 3 / 32

4 IM Tema 3: Tipos y clases Conceptos básicos sobre tipos Qué es un tipo? Un tipo es una colección de valores relacionados. Un ejemplo de tipos es el de los valores booleanos: Bool El tipo Bool tiene dos valores True (verdadero) y False (falso). v :: T representa que v es un valor del tipo T y se dice que v tiene tipo T. Cálculo de tipo con :type Prelude> :type True True :: Bool Prelude> :type False False :: Bool El tipo Bool -> Bool está formado por todas las funciones cuyo argumento y valor son booleanos. Ejemplo de tipo Bool -> Bool Prelude> :type not not :: Bool -> Bool 3 / 32

5 IM Tema 3: Tipos y clases Conceptos básicos sobre tipos Qué es un tipo? Un tipo es una colección de valores relacionados. Un ejemplo de tipos es el de los valores booleanos: Bool El tipo Bool tiene dos valores True (verdadero) y False (falso). v :: T representa que v es un valor del tipo T y se dice que v tiene tipo T. Cálculo de tipo con :type Prelude> :type True True :: Bool Prelude> :type False False :: Bool El tipo Bool -> Bool está formado por todas las funciones cuyo argumento y valor son booleanos. Ejemplo de tipo Bool -> Bool Prelude> :type not not :: Bool -> Bool 3 / 32

6 IM Tema 3: Tipos y clases Conceptos básicos sobre tipos Qué es un tipo? Un tipo es una colección de valores relacionados. Un ejemplo de tipos es el de los valores booleanos: Bool El tipo Bool tiene dos valores True (verdadero) y False (falso). v :: T representa que v es un valor del tipo T y se dice que v tiene tipo T. Cálculo de tipo con :type Prelude> :type True True :: Bool Prelude> :type False False :: Bool El tipo Bool -> Bool está formado por todas las funciones cuyo argumento y valor son booleanos. Ejemplo de tipo Bool -> Bool Prelude> :type not not :: Bool -> Bool 3 / 32

7 IM Tema 3: Tipos y clases Conceptos básicos sobre tipos Inferencia de tipos Regla de inferencia de tipos f :: A B e :: A f e :: B Tipos de expresiones: Prelude> :type not True not True :: Bool Prelude> :type not False not False :: Bool Prelude> :type not (not False) not (not False) :: Bool Error de tipo: Prelude> :type not 3 Error: No instance for (Num Bool) Prelude> :type 1 + False 4 / 32

8 IM Tema 3: Tipos y clases Conceptos básicos sobre tipos Inferencia de tipos Regla de inferencia de tipos f :: A B e :: A f e :: B Tipos de expresiones: Prelude> :type not True not True :: Bool Prelude> :type not False not False :: Bool Prelude> :type not (not False) not (not False) :: Bool Error de tipo: Prelude> :type not 3 Error: No instance for (Num Bool) Prelude> :type 1 + False 4 / 32

9 IM Tema 3: Tipos y clases Conceptos básicos sobre tipos Inferencia de tipos Regla de inferencia de tipos f :: A B e :: A f e :: B Tipos de expresiones: Prelude> :type not True not True :: Bool Prelude> :type not False not False :: Bool Prelude> :type not (not False) not (not False) :: Bool Error de tipo: Prelude> :type not 3 Error: No instance for (Num Bool) Prelude> :type 1 + False 4 / 32

10 IM Tema 3: Tipos y clases Conceptos básicos sobre tipos Inferencia de tipos Regla de inferencia de tipos f :: A B e :: A f e :: B Tipos de expresiones: Prelude> :type not True not True :: Bool Prelude> :type not False not False :: Bool Prelude> :type not (not False) not (not False) :: Bool Error de tipo: Prelude> :type not 3 Error: No instance for (Num Bool) Prelude> :type 1 + False 4 / 32

11 5 / 32 IM Tema 3: Tipos y clases Conceptos básicos sobre tipos Ventajas de los tipos Los lenguajes en los que la inferencia de tipo precede a la evaluación se denominan de tipos seguros. Haskell es un lenguaje de tipos seguros. En los lenguajes de tipos seguros no ocurren errores de tipos durante la evaluación. La inferencia de tipos no elimina todos los errores durante la evaluación. Por ejemplo, Prelude> :type 1 `div` 0 1 `div` 0 :: (Integral t) => t Prelude> 1 `div` 0 *** Exception: divide by zero

12 IM Tema 3: Tipos y clases Tipos básicos Tipos básicos Bool (Valores lógicos): Sus valores son True y False. Char (Caracteres): Ejemplos: a, B, 3, + String (Cadena de caracteres): Ejemplos: "abc", "1 + 2 = 3" Int (Enteros de precisión fija): Enteros entre 2 31 y Ejemplos: 123, -12 Integer (Enteros de precisión arbitraria): Ejemplos: Float (Reales de precisión arbitraria): Ejemplos: 1.2, , 45e-7 Double (Reales de precisión doble): Ejemplos: 1.2, , 45e-7 6 / 32

13 7 / 32 IM Tema 3: Tipos y clases Tipos compuestos Tipos listas Tema 3: Tipos y clases 1. Conceptos básicos sobre tipos 2. Tipos básicos 3. Tipos compuestos Tipos listas Tipos tuplas Tipos funciones 4. Parcialización 5. Polimorfismo y sobrecarga

14 IM Tema 3: Tipos y clases Tipos compuestos Tipos listas Tipos listas Una lista es una sucesión de elementos del mismo tipo. [T] es el tipo de las listas de elementos de tipo T. Ejemplos de listas: [False, True] ['a','b','d'] :: [Bool] :: [Char] ["uno","tres"] :: [String] Longitudes: La longitud de una lista es el número de elementos. La lista de longitud 0, [], es la lista vacía. Las listas de longitud 1 se llaman listas unitarias. Comentarios: El tipo de una lista no informa sobre su longitud: ['a','b'] :: [Char] ['a','b','c'] :: [Char] El tipo de los elementos de una lista puede ser cualquiera: [['a','b'],['c']] :: [[Char]] 8 / 32

15 9 / 32 IM Tema 3: Tipos y clases Tipos compuestos Tipos tuplas Tema 3: Tipos y clases 1. Conceptos básicos sobre tipos 2. Tipos básicos 3. Tipos compuestos Tipos listas Tipos tuplas Tipos funciones 4. Parcialización 5. Polimorfismo y sobrecarga

16 IM Tema 3: Tipos y clases Tipos compuestos Tipos tuplas Tipos tuplas Una tupla es una sucesión de elementos. (T 1, T 2,..., T n ) es el tipo de las n tuplas cuya componente i ésima es de tipo T i. Ejemplos de tuplas: (False,True) :: (Bool,Bool) (False,'a',True) :: (Bool,Char,Bool) Aridades: La aridad de una tupla es el número de componentes. La tupla de aridad 0, (), es la tupla vacía. No están permitidas las tuplas de longitud 1. Comentarios: El tipo de una tupla informa sobre su longitud: ('a','b') :: (Char,Char) ('a','b','c') :: (Char,Char,Char) El tipo de los elementos de una tupla puede ser cualquiera: (('a','b'),['c','d']) :: ((Char,Char),[Char]) 10 / 32

17 11 / 32 IM Tema 3: Tipos y clases Tipos compuestos Tipos funciones Tema 3: Tipos y clases 1. Conceptos básicos sobre tipos 2. Tipos básicos 3. Tipos compuestos Tipos listas Tipos tuplas Tipos funciones 4. Parcialización 5. Polimorfismo y sobrecarga

18 12 / 32 IM Tema 3: Tipos y clases Tipos compuestos Tipos funciones Tipos funciones Una función es una aplicación de valores de un tipo en valores de otro tipo. T 1 T 2 es el tipo de las funciones que aplica valores del tipo T 1 en valores del tipo T 2. Ejemplos de funciones: not :: Bool -> Bool isdigit :: Char -> Bool

19 IM Tema 3: Tipos y clases Tipos compuestos Tipos funciones Funciones con múltiples argumentos o valores Ejemplo de función con múltiples argumentos: suma (x,y) es la suma de x e y. Por ejemplo, suma (2,3) es 5. suma :: (Int,Int) -> Int suma (x,y) = x+y Ejemplo de función con múltiples valores: deceroa n es la lista de los números desde 0 hasta n. Por ejemplo, deceroa 5 es [0,1,2,3,4,5]. deceroa :: Int -> [Int] deceroa n = [0..n] Notas: 1. En las definiciones se ha escrito la signatura de las funciones. 2. No es obligatorio escribir la signatura de las funciones. 3. Es conveniente escribir las signatura. 13 / 32

20 IM Tema 3: Tipos y clases Tipos compuestos Tipos funciones Funciones con múltiples argumentos o valores Ejemplo de función con múltiples argumentos: suma (x,y) es la suma de x e y. Por ejemplo, suma (2,3) es 5. suma :: (Int,Int) -> Int suma (x,y) = x+y Ejemplo de función con múltiples valores: deceroa n es la lista de los números desde 0 hasta n. Por ejemplo, deceroa 5 es [0,1,2,3,4,5]. deceroa :: Int -> [Int] deceroa n = [0..n] Notas: 1. En las definiciones se ha escrito la signatura de las funciones. 2. No es obligatorio escribir la signatura de las funciones. 3. Es conveniente escribir las signatura. 13 / 32

21 IM Tema 3: Tipos y clases Tipos compuestos Tipos funciones Funciones con múltiples argumentos o valores Ejemplo de función con múltiples argumentos: suma (x,y) es la suma de x e y. Por ejemplo, suma (2,3) es 5. suma :: (Int,Int) -> Int suma (x,y) = x+y Ejemplo de función con múltiples valores: deceroa n es la lista de los números desde 0 hasta n. Por ejemplo, deceroa 5 es [0,1,2,3,4,5]. deceroa :: Int -> [Int] deceroa n = [0..n] Notas: 1. En las definiciones se ha escrito la signatura de las funciones. 2. No es obligatorio escribir la signatura de las funciones. 3. Es conveniente escribir las signatura. 13 / 32

22 IM Tema 3: Tipos y clases Tipos compuestos Tipos funciones Funciones con múltiples argumentos o valores Ejemplo de función con múltiples argumentos: suma (x,y) es la suma de x e y. Por ejemplo, suma (2,3) es 5. suma :: (Int,Int) -> Int suma (x,y) = x+y Ejemplo de función con múltiples valores: deceroa n es la lista de los números desde 0 hasta n. Por ejemplo, deceroa 5 es [0,1,2,3,4,5]. deceroa :: Int -> [Int] deceroa n = [0..n] Notas: 1. En las definiciones se ha escrito la signatura de las funciones. 2. No es obligatorio escribir la signatura de las funciones. 3. Es conveniente escribir las signatura. 13 / 32

23 IM Tema 3: Tipos y clases Tipos compuestos Tipos funciones Funciones con múltiples argumentos o valores Ejemplo de función con múltiples argumentos: suma (x,y) es la suma de x e y. Por ejemplo, suma (2,3) es 5. suma :: (Int,Int) -> Int suma (x,y) = x+y Ejemplo de función con múltiples valores: deceroa n es la lista de los números desde 0 hasta n. Por ejemplo, deceroa 5 es [0,1,2,3,4,5]. deceroa :: Int -> [Int] deceroa n = [0..n] Notas: 1. En las definiciones se ha escrito la signatura de las funciones. 2. No es obligatorio escribir la signatura de las funciones. 3. Es conveniente escribir las signatura. 13 / 32

24 IM Tema 3: Tipos y clases Parcialización Parcialización Mecanismo de parcialización (currying en inglés): Las funciones de más de un argumento pueden interpretarse como funciones que toman un argumento y devuelven otra función con un argumento menos. Ejemplo de parcialización: suma' :: Int -> (Int -> Int) suma' x y = x+y suma toma un entero x y devuelve la función suma x que toma un entero y y devuelve la suma de x e y. Por ejemplo, *Main> :type suma' 2 suma' 2 :: Int -> Int *Main> :type suma' 2 3 suma' 2 3 :: Int 14 / 32

25 15 / 32 IM Tema 3: Tipos y clases Parcialización Parcialización con tres argumentos Ejemplo de parcialización con tres argumentos: mult :: Int -> (Int -> (Int -> Int)) mult x y z = x*y*z mult toma un entero x y devuelve la función mult x que toma un entero y y devuelve la función mult x y que toma un entero z y devuelve x*y*z. Por ejemplo, *Main> :type mult 2 mult 2 :: Int -> (Int -> Int) *Main> :type mult 2 3 mult 2 3 :: Int -> Int *Main> :type mult mult :: Int

26 16 / 32 IM Tema 3: Tipos y clases Parcialización Aplicación parcial Las funciones que toman sus argumentos de uno en uno se llaman currificadas (curried en inglés). Las funciones suma y mult son currificadas. Las funciones currificadas pueden aplicarse parcialmente. Por ejemplo, *Main> (suma' 2) 3 5 Pueden definirse funciones usando aplicaciones parciales. Por ejemplo, suc :: Int -> Int suc = suma' 1 suc x es el sucesor de x. Por ejemplo, suc 2 es 3.

27 16 / 32 IM Tema 3: Tipos y clases Parcialización Aplicación parcial Las funciones que toman sus argumentos de uno en uno se llaman currificadas (curried en inglés). Las funciones suma y mult son currificadas. Las funciones currificadas pueden aplicarse parcialmente. Por ejemplo, *Main> (suma' 2) 3 5 Pueden definirse funciones usando aplicaciones parciales. Por ejemplo, suc :: Int -> Int suc = suma' 1 suc x es el sucesor de x. Por ejemplo, suc 2 es 3.

28 16 / 32 IM Tema 3: Tipos y clases Parcialización Aplicación parcial Las funciones que toman sus argumentos de uno en uno se llaman currificadas (curried en inglés). Las funciones suma y mult son currificadas. Las funciones currificadas pueden aplicarse parcialmente. Por ejemplo, *Main> (suma' 2) 3 5 Pueden definirse funciones usando aplicaciones parciales. Por ejemplo, suc :: Int -> Int suc = suma' 1 suc x es el sucesor de x. Por ejemplo, suc 2 es 3.

29 17 / 32 IM Tema 3: Tipos y clases Parcialización Convenios para reducir paréntesis Convenio 1: Las flechas en los tipos se asocia por la derecha. Por ejemplo, Int -> Int -> Int -> Int representa a Int -> (Int -> (Int -> Int)) Convenio 2: Las aplicaciones de funciones se asocia por la izquierda. Por ejemplo, mult x y z representa a ((mult x) y) z Nota: Todas las funciones con múltiples argumentos se definen en forma currificada, salvo que explícitamente se diga que los argumentos tienen que ser tuplas.

30 17 / 32 IM Tema 3: Tipos y clases Parcialización Convenios para reducir paréntesis Convenio 1: Las flechas en los tipos se asocia por la derecha. Por ejemplo, Int -> Int -> Int -> Int representa a Int -> (Int -> (Int -> Int)) Convenio 2: Las aplicaciones de funciones se asocia por la izquierda. Por ejemplo, mult x y z representa a ((mult x) y) z Nota: Todas las funciones con múltiples argumentos se definen en forma currificada, salvo que explícitamente se diga que los argumentos tienen que ser tuplas.

31 17 / 32 IM Tema 3: Tipos y clases Parcialización Convenios para reducir paréntesis Convenio 1: Las flechas en los tipos se asocia por la derecha. Por ejemplo, Int -> Int -> Int -> Int representa a Int -> (Int -> (Int -> Int)) Convenio 2: Las aplicaciones de funciones se asocia por la izquierda. Por ejemplo, mult x y z representa a ((mult x) y) z Nota: Todas las funciones con múltiples argumentos se definen en forma currificada, salvo que explícitamente se diga que los argumentos tienen que ser tuplas.

32 IM Tema 3: Tipos y clases Polimorfismo y sobrecarga Tipos polimórficos Tema 3: Tipos y clases 1. Conceptos básicos sobre tipos 2. Tipos básicos 3. Tipos compuestos 4. Parcialización 5. Polimorfismo y sobrecarga Tipos polimórficos Tipos sobrecargados 6. Clases básicas 18 / 32

33 IM Tema 3: Tipos y clases Polimorfismo y sobrecarga Tipos polimórficos Tipos polimórficos Un tipo es polimórfico ( tiene muchas formas ) si contiene una variable de tipo. Una función es polimórfica si su tipo es polimórfico. La función length es polimófica: Comprobación: Prelude> :type length length :: [a] -> Int Significa que que para cualquier tipo a, length toma una lista de elementos de tipo a y devuelve un entero. a es una variable de tipos. Las variables de tipos tienen que empezar por minúscula. Ejemplos: length [1, 4, 7, 1] 4 length ["Lunes", "Martes", "Jueves"] 3 length [reverse, tail] 2 19 / 32

34 IM Tema 3: Tipos y clases Polimorfismo y sobrecarga Tipos polimórficos Ejemplos de funciones polimórficas fst :: (a, b) -> a fst (1,'x') 1 fst (True,"Hoy") True head :: [a] -> a head [2,1,4] 2 head ['b','c'] 'b' take :: Int -> [a] -> [a] take 3 [3,5,7,9,4] [3,5,7] take 2 ['l','o','l','a'] "lo" take 2 "lola" "lo" zip :: [a] -> [b] -> [(a, b)] zip [3,5] "lo" [(3,'l'),(5,'o')] id :: a -> a id 3 3 id 'x' 'x' 20 / 32

35 IM Tema 3: Tipos y clases Polimorfismo y sobrecarga Tipos sobrecargados Tema 3: Tipos y clases 1. Conceptos básicos sobre tipos 2. Tipos básicos 3. Tipos compuestos 4. Parcialización 5. Polimorfismo y sobrecarga Tipos polimórficos Tipos sobrecargados 6. Clases básicas 21 / 32

36 22 / 32 IM Tema 3: Tipos y clases Polimorfismo y sobrecarga Tipos sobrecargados Tipos sobrecargados Un tipo está sobrecargado si contiene una restricción de clases. Una función está sobrecargada si su tipo está sobrecargado. La función sum está sobrecargada: Comprobación: Prelude> :type sum sum :: (Num a) => [a] -> a Significa que que para cualquier tipo numérico a, sum toma una lista de elementos de tipo a y devuelve un valor de tipo a. Num a es una restricción de clases. Las restricciones de clases son expresiones de la forma C a, donde C es el nombre de una clase y a es una variable de tipo. Ejemplos: sum [2, 3, 5] 10 sum [2.1, 3.23, 5.345]

37 23 / 32 IM Tema 3: Tipos y clases Polimorfismo y sobrecarga Tipos sobrecargados Ejemplos de tipos sobrecargados Ejemplos de funciones sobrecargadas: (-) :: (Num a) => a -> a -> a (*) :: (Num a) => a -> a -> a negate :: (Num a) => a -> a abs :: (Num a) => a -> a signum :: (Num a) => a -> a Ejemplos de números sobrecargados: 5 :: (Num t) => t 5.2 :: (Fractional t) => t

38 24 / 32 IM Tema 3: Tipos y clases Clases básicas Clases básicas Una clase es una colección de tipos junto con ciertas operaciones sobrecargadas llamadas métodos. Clases básicas: Eq Ord Show Read Num Integral Fractional tipos comparables por igualdad tipos ordenados tipos mostrables tipos legibles tipos numéricos tipos enteros tipos fraccionarios

39 25 / 32 IM Tema 3: Tipos y clases Clases básicas La clase Eq (tipos comparables por igualdad) Eq contiene los tipos cuyos valores con comparables por igualdad. Métodos: (==) :: a -> a -> Bool (/=) :: a -> a -> Bool Instancias: Bool, Char, String, Int, Integer, Float y Double. tipos compuestos: listas y tuplas. Ejemplos: False == True False False /= True True 'a' == 'b' False "aei" == "aei" True [2,3] == [2,3,2] False ('a',5) == ('a',5) True

40 26 / 32 IM Tema 3: Tipos y clases Clases básicas La clase Ord (tipos ordenados) Ord es la subclase de Eq de tipos cuyos valores están ordenados. Métodos: (<), (<=), (>), (>=) :: a -> a -> Bool min, max :: a -> a -> a Instancias: Bool, Char, String, Int, Integer, Float y Double. tipos compuestos: listas y tuplas. Ejemplos: False < True True min 'a' 'b' 'a' "elegante" < "elefante" False [1,2,3] < [1,2] False ('a',2) < ('a',1) False ('a',2) < ('b',1) True

41 27 / 32 IM Tema 3: Tipos y clases Clases básicas La clase Show (tipos mostrables) Show contiene los tipos cuyos valores se pueden convertir en cadenas de caracteres. Método: show :: a -> String Instancias: Bool, Char, String, Int, Integer, Float y Double. tipos compuestos: listas y tuplas. Ejemplos: show False "False" show 'a' "'a'" show 123 "123" show [1,2,3] "[1,2,3]" show ('a',true) "('a',true)"

42 28 / 32 IM Tema 3: Tipos y clases Clases básicas La clase Read (tipos legibles) Read contiene los tipos cuyos valores se pueden obtener a partir de cadenas de caracteres. Método: read :: String -> a Instancias: Bool, Char, String, Int, Integer, Float y Double. tipos compuestos: listas y tuplas. Ejemplos: read "False" :: Bool False read "'a'" :: Char 'a' read "123" :: Int 123 read "[1,2,3]" :: [Int] [1,2,3] read "('a',true)" :: (Char,Bool) ('a',true)

43 29 / 32 IM Tema 3: Tipos y clases Clases básicas La clase Num (tipos numéricos) Num es la subclase de Eq y Show de tipos cuyos valores son números Métodos: (+), (*), (-) :: a -> a -> a negate, abs, signum :: a -> a Instancias: Int, Integer, Float y Double. Ejemplos: negate abs (-5) 5 signum (-5) -1

44 30 / 32 IM Tema 3: Tipos y clases Clases básicas La clase Integral (tipos enteros) Integral es la subclase de Num cuyo tipos tienen valores enteros. Métodos: div :: a -> a -> a mod :: a -> a -> a Instancias: Int e Integer. Ejemplos: 11 `div` `mod` 4 3

45 31 / 32 IM Tema 3: Tipos y clases Clases básicas La clase Fractional (tipos fraccionarios) Fractional es la subclase de Num cuyo tipos tienen valores no son enteros. Métodos: (/) :: a -> a -> a recip :: a -> a Instancias: Float y Double. Ejemplos: 7.0 / recip

46 IM Tema 3: Tipos y clases Bibliografía Bibliografía 1. R. Bird. Introducción a la programación funcional con Haskell. Prentice Hall, Cap. 2: Tipos de datos simples. 2. G. Hutton Programming in Haskell. Cambridge University Press, Cap. 3: Types and classes. 3. B. O Sullivan, D. Stewart y J. Goerzen Real World Haskell. O Reilly, Cap. 2: Types and Functions. 4. B.C. Ruiz, F. Gutiérrez, P. Guerrero y J.E. Gallardo. Razonando con Haskell. Thompson, Cap. 2: Introducción a Haskell. Cap. 5: El sistema de clases de Haskell. 5. S. Thompson. Haskell: The Craft of Functional Programming, Second Edition. Addison-Wesley, Cap. 3: Basic types and definitions. 32 / 32

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

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

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

Más detalles

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

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

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 12: Programas interactivos

Tema 12: Programas interactivos Tema 12: Programas interactivos 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 12:

Más detalles

Tema 12: Programas interactivos

Tema 12: Programas interactivos Tema 12: Programas interactivos 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 2 / 35 Tema

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

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

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

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas El computador puede realizar cálculos además de mostrar datos por pantalla.

Más detalles

Curso de Programación Avanzada en C

Curso de Programación Avanzada en C Curso de Programación Avanzada en C Copyright, 1996 Universidad Sim on Bol ivar 1 Prof. Mariela J. Curiel Contenido del Curso Conceptos BásicosB Estructuras de Control Arreglos Otros tipos de datos derivados

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

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

Fundamentos de JAVA. Angel Kuri Enero, /2/2006

Fundamentos de JAVA. Angel Kuri Enero, /2/2006 Fundamentos de JAVA Angel Kuri Enero, 2006 Enunciados y Expresiones Los siguientes son enunciados sencillos: int i = 1 import java.awt.font System.out.println( Esta moto es una + color + + marca); m.enginestate

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

Introducción. Haskell

Introducción. Haskell Introducción Haskell 1 Valores, Tipos, Expresiones Los valores son entidades abstractas que podemos considerar como la respuesta a un cálculo 5-1 8 Cada valor tiene asociado un tipo ( :: )

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

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

El lenguaje Haskell 98

El lenguaje Haskell 98 El lenguaje Haskell 98 Un lenguaje perezoso completamente Curry con sobrecarga. Juan Pedro Villa Introducción Las razones agudas son ronquidos para los oídos tontos. William

Más detalles

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA INSERTAR TEXTO O CÓDIGO. (CU00816B)

TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA INSERTAR TEXTO O CÓDIGO. (CU00816B) APRENDERAPROGRAMAR.COM TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA INSERTAR TEXTO O CÓDIGO. (CU00816B) Sección: Cursos Categoría: Tutorial básico del programador web:

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays

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

Tema 11. Listas infinitas

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

Más detalles

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

Tema 3 Elementos básicos de programación

Tema 3 Elementos básicos de programación Representación de Datos y Aplicaciones Tema 3 Elementos básicos de programación Natividad Martínez Madrid nati@it.uc3m.es Objetivos del tema 3 Conocer la estructura básica de un programa Java Comprender

Más detalles

Datos y tipos de datos

Datos y tipos de datos Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato

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

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente

Más detalles

Expresiones y sentencias

Expresiones y sentencias Expresiones y sentencias Expresión Construcción (combinación de tokens) que se evalúa para devolver un valor. Sentencia Representación de una acción o una secuencia de acciones. En Java, todas las sentencias

Más detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

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

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

Sintaxis básica, variables y 7pos

Sintaxis básica, variables y 7pos Contenidos Sintaxis básica, variables y 7pos Curso de Programación en Java! Sintaxis básica! Variables y 7pos! Entrada/Salida básica! Operadores y expresiones Jesús Montes Sánchez jmontes@fi.upm.es Estructura

Más detalles

Es toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos:

Es toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos: Tipos de datos. Dato: Es toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos: I Numéricos: Almacenan números y con

Más detalles

Conceptos fundamentales de la POO. Fundamentos de la Programación Orientada a Objetos Objetos y Clases

Conceptos fundamentales de la POO. Fundamentos de la Programación Orientada a Objetos Objetos y Clases Fundamentos de la Programación Orientada a Objetos Objetos y Clases Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

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

Más detalles

1 Estructura básica de un programa C++

1 Estructura básica de un programa C++ Elementos básicos de un lenguaje de alto nivel: C++ CONTENIDOS 1. Estructura básica de un programa C++. 2. Tipos de datos simples. 3. Constantes y variables en C++. Declaración. 4. Operadores y expresiones.

Más detalles

Tema: Tipos de datos y conversiones

Tema: Tipos de datos y conversiones Tema: Tipos de datos y conversiones Objetivos: El propósito de este tema es que el alumno se familiarice con el entorno de desarrollo de Visual C# Express y realice diversos programas en el entorno Consola,

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

Java para programadores

Java para programadores Java para programadores Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Variables. Tipos

Más detalles

Tecnologías de Programación Web Dr. Diego C. Martínez. Depto de Cs e Ing. de la Computación Universidad Nacional del Sur.

Tecnologías de Programación Web Dr. Diego C. Martínez. Depto de Cs e Ing. de la Computación Universidad Nacional del Sur. Historia de Java 1991 Comienza el proyecto Green. 1992 Se presenta el lenguaje Oak. Java, 10 años - JavaOne Conference 26 al 30 de junio de 2005 1995 Nace oficialmente la tecnología Java. Cambia el nombre

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

Clases en Java. Declaración de clases en Java 02/09/16. Ing. Roberto Martínez Román - public class Alumno { private int matricula;

Clases en Java. Declaración de clases en Java 02/09/16. Ing. Roberto Martínez Román - public class Alumno { private int matricula; Clases en Java ESCRIBIENDO CLASES rmroman@itesm.mx Declaración de clases en Java public class Alumno private int matricula; public void mostrardatos() System.out.println("Matrícula: " + matricula); Firma

Más detalles

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores El lenguaje de programación Java Programa Java Un programa Java está formado por un conjunto de clases que interactúan entre sí La clase es la unidad básica de programación La ejecución depende de la clase

Más detalles

1 ELEMENTOS BASICOS DEL LENGUAJE

1 ELEMENTOS BASICOS DEL LENGUAJE 1 ELEMENTOS SICOS DEL LENGUJE Contenido: Variables su declaracion y asignacion Caracteres en java Secuencias de escape y comentarios Tipos de datos Operadores aritméticos, relacionales y lógicos Entrada

Más detalles

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Introducción a la Programación 11 O. Humberto Cervantes Maceda Introducción a la Programación 11 O Humberto Cervantes Maceda Recordando En la sesión anterior vimos que la información almacenada en la memoria, y por lo tanto aquella que procesa la unidad central de

Más detalles

Matemáticas Básicas para Computación

Matemáticas Básicas para Computación Matemáticas Básicas para Computación MATEMÁTICAS BÁSICAS PARA COMPUTACIÓN 1 Sesión No. 6 Nombre: Álgebra Booleana Objetivo Durante la sesión el participante identificará las principales características

Más detalles

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora

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

OPERADORES Y EXPRESIONES

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

Más detalles

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos

Más detalles

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Lenguaje C Funciones Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Qué es una función o rutina/subrutina? Se presenta como un subalgoritmo

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

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

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1. Partes de un programa en Java A. Ejemplo de un Programa en Java /* class Ejemplo1 { //comienza la clase Ejemplo1. public static void main(string[] args) { // comienza el método main. JFrame miventana;

Más detalles

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga Programación orientada a objetos Resumen de Temas Unidad 4: Sobrecarga 4.1 Conversión de tipos (1) Conversiones implícitas: La conversión entre tipos primitivos se realizan de modo automático de un tipo

Más detalles

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

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

Más detalles

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Programación 1 Tema 3. Información, datos, operaciones y expresiones Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información

Más detalles

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

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

Más detalles

Computación III. Objetivo de aprendizaje del tema

Computación III. Objetivo de aprendizaje del tema Computación III Tema 5 Declaración, inicialización y uso de variables 1 Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Identificar la sintaxis de las variables en el lenguaje Java.

Más detalles

Tema 2. El lenguaje JAVA

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

Más detalles

Computación II. Introducción a Visual Basic

Computación II. Introducción a Visual Basic Computación II Introducción a Visual Basic Introducción a Visual Basic Microsoft Visual Basic es un conjunto de herramientas que posibilitan el desarrollo de aplicaciones para Windows de una manera rápida

Más detalles

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1 Departamento de Lenguajes y Sistemas Informáticos JavaScript Programación en Internet Curso 2005-2006 Contenidos Introducción El lenguaje Validación de formularios DLSI - Universidad de Alicante 1 Introducción

Más detalles

Programación declarativa ( )

Programación declarativa ( ) 1 / 24 Programación declarativa (2007 08) Tema 9: Retroceso, corte y negación José A. Alonso Jiménez Grupo de Lógica Computacional Departamento de Ciencias de la Computación e I.A. Universidad de Sevilla

Más detalles

Introducción al lenguaje de programación java

Introducción al lenguaje de programación java Introducción al lenguaje de programación java Algoritmia y Programación Slide 1 LENGUAJES DE PROGRAMACION Un lenguaje de programación es un idioma artificial diseñado y creado para expresar algoritmos

Más detalles

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo

Más detalles

Variables. Profesor Leonardo Carámbula - Programación III EMT I.S.B.O.

Variables. Profesor Leonardo Carámbula - Programación III EMT I.S.B.O. Variables Variables Variables: espacio en memoria que almacena un conjunto de información, haciendo referencia al mismo por un nombre. Declaración: Dim nombre_variable As tipo_dato Variables: Ejemplos:

Más detalles

Programación en Pascal

Programación en Pascal Programación en Pascal Segunda parte de la asignatura. El profesor: Nombre:. Despacho: Edificio de la ETSII 2ª Planta. Correo electrónico: fdoperez@ull.es. Miércoles, Viernes: 3.30 a 5.30. Objetivos: Aprender

Más detalles

Programación. Test Autoevaluación Tema 3

Programación. Test Autoevaluación Tema 3 Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

Introducción al lenguaje JAVA

Introducción al lenguaje JAVA Universidad Autónoma de Tlaxcala Introducción al lenguaje JAVA M.C.. José Juan Hernández ndez Mora Segunda Sesión 1. Arreglos 2. Matrices 3. Clases en Java 4. Clases de Usuario en Java 5. Objetos definidos

Más detalles

Tipos primitivos y clases de interés

Tipos primitivos y clases de interés Programación Avanzada para Sistemas de Telecomunicación Tipos primitivos y clases de interés Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Tipos primitivos. Clase String y asociadas. Clases

Más detalles

Lenguaje de programación C. Introducción

Lenguaje de programación C. Introducción Lenguaje de programación C Introducción 1 Elementos del lenguaje C Colección de funciones Estas funciones contienen declaraciones, sentencias, expresiones y otros elementos que en conjunto indican a la

Más detalles

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

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

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

Herramientas computacionales para la matemática MATLAB: Arreglos

Herramientas computacionales para la matemática MATLAB: Arreglos Herramientas computacionales para la matemática MATLAB: Arreglos Verónica Borja Macías Marzo 2013 1 Arreglos Un arreglo es una estructura que MATLAB utiliza para almacenar y manipular datos. Es una lista

Más detalles

TIPO DE DATO ABSTRACTO (TDA)

TIPO DE DATO ABSTRACTO (TDA) TIPO DE DATO ABSTRACTO (TDA) Ing. Eduard Antonio Lozano Córdoba Nota: Toda la información fue copiada de: Libros físicos e Internet Actividad Extra Clases #include #include int binario(int

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Variables y Tipos de Datos PRÁCTICA NÚM. [ 1 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

8. Sentencia return y métodos

8. Sentencia return y métodos 92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente

Más detalles

Conversión entre Tipos

Conversión entre Tipos Conversión entre Tipos La conversión entre tipos permite comparar y copiar valores entre diferentes tipos. En esta lección describiremos como convertir un tipo dado en otro. Conversión en VB y Existen

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

PHP HypertextPreProcessor

PHP HypertextPreProcessor PHP PHP HypertextPreProcessor PHP 1. Introducción 2. Comentarios 3. Variables 4. Operadores 5. Desplegar(output) 6. Arrays o matrices 7. Estructuras de control 8. Funciones 9. Manejo de strings Introducción

Más detalles

10. Algunas clases estándar de Java (I)

10. Algunas clases estándar de Java (I) Programación orientada a objetos con Java 113 10. Algunas clases estándar de Java (I) Objetivos: a) Presentar algunas de las clases predefinidas en Java b) Interpretar el código fuente de una aplicación

Más detalles

PROGRAMACION ORIENTADA A OBJETOS EN C++

PROGRAMACION ORIENTADA A OBJETOS EN C++ PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje

Más detalles

Lección 2 Introducción al lenguaje C

Lección 2 Introducción al lenguaje C Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)

Más detalles

Introducción a Protégé

Introducción a Protégé FACULTAD DE INFORMÁTICA LICENCIATURA EN DOCUMENTACIÓN SISTEMAS DE REPRESENTACIÓN Y PROCESAMIENTO AUTOMÁTICO DEL CONOCIMIENTO Práctica 1 2ª Parte Introducción a Protégé Febrero 2003 1 1. Objetivo La presente

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

Tema 2: Representación de problemas como espacios de estados

Tema 2: Representación de problemas como espacios de estados Tema 2: Representación de problemas como espacios de estados José Luis Ruiz Reina José Antonio Alonso Franciso J. Martín Mateos Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Operadores y Expresiones PRÁCTICA NÚM. [ 3 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

Álgebra Booleana y Circuitos Lógicos. UCR ECCI CI-1204 Matemáticas Discretas Prof. Kryscia Daviana Ramírez Benavides

Álgebra Booleana y Circuitos Lógicos. UCR ECCI CI-1204 Matemáticas Discretas Prof. Kryscia Daviana Ramírez Benavides Álgebra Booleana y Circuitos Lógicos UCR ECCI CI-1204 Matemáticas Discretas Prof. Kryscia Daviana Ramírez Benavides Álgebra Booleana Tanto los conjuntos como las proposiciones tienen propiedades similares.

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...

Más detalles

Representación de la información

Representación de la información Laboratorio de Introducción a las Ciencias de la Computación Página 1 UNIERSIDAD CATÓLICA DE SANTA MARÍA PROGRAMA PROESIONAL DE INGENIERÍA DE SISTEMAS SESIÓN 2: Representación de la información OBJETIOS

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

Guía práctica de estudio 06: Lenguaje binario

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

Más detalles

Programación en Visual Basic Ricardo Rodríguez García

Programación en Visual Basic Ricardo Rodríguez García Manual Básico de Programación en Visual Basic 1.- Estructura de un proyecto Visual Basic Los programas o aplicaciones desarrolladas en Visual Basic van a constituir un único paquete que denominaremos proyecto.

Más detalles