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

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

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

Transcripción

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

2 ...but note that an implementation need not be actualized as code a concrete design is sufficient. Chris Okasaki Purely Functional Data Structures

3 Abstracción de datos Abstracción de datos Metodología que separa cómo se usa un dato compuesto de cómo se implementa. El programa se estructura para usar los datos no haciendo más suposiciones de las necesarias. La barrera de abstracción separa el nivel de uso, el nivel de implementación, y provee una interfase entre ambos niveles.

4 Abstracción de datos Las barreras de abstracción inducen tres vistas de las estructuras de datos La visión del diseñador La visión del usuario/programador La visión del implementador Es imprescindible saber seperarlas para comprender y manejar correctamente la abstracción de datos

5 Abstracción de datos Para especificar un tipo de datos debemos Especificar los constructores y selectores. Establecer las condiciones que deben cumplir. A veces se agregan restricciones de eficiencia. Existen dos maneras de hacer esto modelos abstractos (Hoare, 1972) Métodos y condiciones basados en otros modelos previos especificaciones algebraicas (Goguen,Tatcher,Wagner,Wright, 1978) Sistemas algebraicos abstractos con axiomas

6 Abstracción de datos Ejemplo: números racionales Rational makerat :: Integer -> Integer -> Rational numer :: Rational -> Integer denom :: Rational -> Integer si x es (makerat n d), entonces (numer x)/(denom x) = n/d

7 Implementando tipos abstractos Números racionales: implementación 1 Usando pares, sin preprocesamiento makerat n d = (n, d) numer r = fst r denom r = snd r No representa a un racional de manera única

8 Implementando tipos abstractos Números racionales: implementación 2 Usando pares, con preprocesamiento al construir makerat n d = let g = gcd n d in (n/g, d/g) numer r = fst r denom r = snd r Cada racional está representado de manera única

9 Implementando tipos abstractos Números racionales: implementación 3 Usando pares, con preprocesamiento al acceder makerat n d = (n, d) numer r = let g = gcd (fst r) (snd r) in fst r / g denom r = let g = gcd (fst r) (snd r) in snd r / g

10 Implementando tipos abstractos Números racionales: implementación 4 Usando pares, con preprocesamiento mixto makerat n d = let g = gcd n d in ((n, d), g)) numer r = fst (fst r) / snd r denom r = snd (fst r) / snd r

11 Implementando tipos abstractos Números racionales: implementación 5 Sin usar pares makerat n d = 2^n + 3^d numer r = factor 2 r denom r = factor 3 r factor k m = if m >= k && divide k m then 1 + factor k (m `div` k) else 0 divide k m = m `mod` k == 0 No funciona para números negativos...

12 Implementando tipos abstractos Propiedades Toda implementación satisface la especificación Una implementación específica satisface otras propiedades adicionales Obligaciones NO SE DEBEN usar estas propiedades adicionales SÓLO DEBEN usarse las propiedades especificadas Ejemplo: Cuál es el valor de (fst (makerat n d))? Tiene sentido esta expresión?

13 Implementando tipos abstractos NO SE DEBEN usar propiedades adicionales Pueden ser difíciles de identificar! Ejemplo: if numer r1 == numer r2 then 0 else 1 Da lo mismo en toda implementación? La propiedad de igualdad de numeradores NO ES consecuencia de la especificación. Entonces, NO DEBE usarse. Esta propiedad NO SE PUEDE ocultar. Hay formas de violar un TAD hasta en el mejor lenguaje!

14 Implementando tipos abstractos Qué propiedades se usan es cuestión de disciplina por parte del programador Sin embargo, un buen lenguaje provee mecanismos para garantizar la disciplina Ocultamiento de información Módulos, procedimientos locales, objetos con métodos privados, compilación separada, packages, etc. NO DEBE CONFUNDIRSE ocultar información con abstraer datos!

15 Implementando tipos abstractos Pilas Misma signatura que las listas! Stack a empty :: Stack a push :: a -> Stack a -> Stack a top :: Stack a -> a pop :: Stack a -> Stack a isempty :: Stack a -> Bool top (push x p) = x pop (push x p) = p isempty empty = True isempty (push x p) = False (top empty) y (pop empty) no están definidos

16 Implementando tipos abstractos Pilas Implementación con listas empty = [] push = (:) top = head pop = tail isempty = isnil Equivalentemente... empty = [ ] push a s = a : s top s = head s pop s = tail s isempty s = isnil s

17 Implementando tipos abstractos Deben probarse las propiedades especificadas (top empty) no está definido top empty = head [], por lo que no está definido top (push x p) = x top (push x p) = head (x : p) = x (pop empty) no está definido pop empty = tail [ ], por lo que no está definido pop (push x p) = p pop (push x p) = tail (x : p) = p isempty empty = True isempty empty = isnil [] = True isempty (push x p) = False isempty (push x p) = isnil (x : p) = False

18 Implementando tipos abstractos Calcular el costo de las operaciones Definición muy simple El costo de cada operación es 1 más el costo de la operación correspondiente de listas Cada operación de listas tiene costo constante Por lo tanto CADA OPERACIÓN tiene costo de peor caso O(1)

19 Implementando tipos abstractos Colas Otra estructura con acceso restringido Queue a emptyq :: Queue a queue :: Queue a -> a -> Queue a firstq :: Queue a -> a dequeue :: Queue a -> Queue a isemptyq :: Queue a -> Bool isemptyq emptyq = True Y condiciones sobre isemptyq (queue q x) = False operaciones no definidas firstq (queue emptyq x) = x firstq (queue (queue q y) x) = firstq (queue q y) dequeue (queue emptyq x) = emptyq dequeue (queue (queue q y) x) = queue x (dequeue (queue q y))

20 Implementando tipos abstractos Colas Implementación con listas emptyq = [ ] queue = snoc firstq = head dequeue = tail isemptyq = isnil snoc xs x = xs ++ [ x ]

21 Implementando tipos abstractos Propiedades de las colas isemptyq emptyq = True isemptyq emptyq = isnil [] = True isemptyq (queue q x) = False isemptyq (queue q x) = isnil (snoc q x) = isnil (q ++ [ x ]) Probamos que isnil (q ++ (x : xs)) = False para cualquier xs por recursión sobre la forma de la lista q Si q = [] isnil ([ ] ++ (x : xs)) = isnil (x : xs) = False Si q = snoc q' x' isnil ((q' ++ [ x' ]) ++ (x : xs)) = isnil (q' ++ (x' : (x : xs))) (por HI) = False

22 Implementando tipos abstractos Propiedades de las colas (cont. 2) (firstq emptyq) no está definido firstq emptyq = head nil, por lo que no está definido firstq (queue emptyq x) = x firstq (queue emptyq x) = head (snoc [] x) = head ([] ++ [ x ]) = head [ x ] = x firstq (queue (queue q y) x) = firstq (queue q y) firstq (queue (queue q y) x) = head (snoc (snoc q y) x) = head (snoc q y) = firstq (queue q y) Probar que head (snoc (snoc q y) x) = head (snoc q y) por inducción en la estructura de la lista q Observar que se demuestra usando propiedades de la representación!

23 Implementando tipos abstractos Propiedades de las colas (cont. 3) (dequeue emptyq) no está definido dequeue emptyq = tail [], por lo que no está definido dequeue (queue emptyq x) = emptyq dequeue (queue emptyq x) = tail (snoc [] x) = tail ([] ++ [ x ]) = tail [ x ] = [] = emptyq dequeue (queue (queue q y) x) = queue x (dequeue (queue q y)) dequeue (queue (queue q y) x) = tail (snoc (snoc q y) x) = snoc (tail (snoc q y)) x = queue (dequeue (queue q y)) x Probar que tail (snoc (snoc q y) x) = snoc (tail (snoc q y) por inducción en la estructura de la lista q En algunas presentaciones se usan funciones de abstracción y representación explícitas

24 Implementando tipos abstractos Colas: costo de las operaciones Salvo queue, las demás son O(1) El costo de queue es el costo de snoc que depende del costo de append En una implementación algebraica de listas, el costo de append es O(n), siendo n la longitud de xs En una implementación imperativa, tanto snoc como append se pueden implementar en O(1) Hay otras implementaciones funcionales... snoc xs x = xs ++ [ x ]

25 Implementando tipos abstractos Colas Implementación con dos listas Invariante de representación: (fst q) es [] sólo cuando (snd q) es [] emptyq = ([], []) queue q x = check (fst q) (x : snd q) firstq q = head (fst q) dequeue q = check (tail (fst q)) (snd q) isemptyq q = isnil (fst q) check [] r = (reverse r, []) check f r = (f, r)

26 Implementando tipos abstractos Propiedades de las colas isemptyq emptyq = True isemptyq emptyq = isnil (fst ([ ], [ ]))) = (isnil [ ]) = True isemptyq (queue q x) = False isemptyq (queue q x) = isnil (fst (check (fst q) (x : snd q))) Análisis por casos: fst q = [ ] (y entonces, (snd q) = [ ], por el invariante) = isnil (fst (reverse (x : snd q), [ ])) = isnil (reverse [ x ]) = isnil [ x ] = False fst q <> nil = isnil (fst (fst q, x : snd q)) = isnil (fst q) = False

27 Implementando tipos abstractos Propiedades de las colas (cont. 2) (firstq emptyq) no está definido firstq emptyq = head (fst ([ ], [ ])) = head [ ], no está definido firstq (queue emptyq x) = x firstq (queue emptyq x) = head (fst (check [ ] [ x ])) = head (fst (check [ ] [ x ])) = head [ x ] = x El resto, de ejercicio

28 Implementando tipos abstractos Colas: costo de las operaciones emptyq, firstq, isemptyq y queue son O(1) dequeue depende de check check es peor caso O(n) Sin embargo, se puede hacer otro análisis COSTO AMORTIZADO Se mide el costo de una sequencia de operaciones en lugar de medir el costo de cada una Así, todas las operaciones de esta implementación tienen costo amortizado O(1)

29 TADs en Haskell Cómo expresamos TADs en Haskell? Mediante MÓDULOS Un módulo Permite agrupar definiciones relacionadas Modularidad Es la unidad de compilación ( no en Hugs!) Compilación separada Limita el scope (alcance) de las variables Reuso de nombres Permite exportación e importación explícita Ocultación de información

30 TADs en Haskell Ejemplo: de agrupación de funciones Así todo el tipo es visible! module Complejos (Complex(..), realpart, imagpart, mkpolar) where data Complex = C Float Float realpart, imagpart :: Complex -> Float realpart (C r i) = r imagpart (C r i) = i...

31 TADs en Haskell Ejemplo: de ocultación de información Así la implementación está oculta! module Racionales (Rational, makerat, numer, denom) where data Rational = R Float Float makerat n r = reduce (n * signo d) (abs d) reduce x 0 = error Racional con denom. 0 reduce x y = R (x `quot` d) (y `quot` d) where d = gcd x y... Esta función no es visible para los usuarios

32 TADs en Haskell Cómo se utiliza un módulo? Mediante la cláusula import module Main where import Complejos import Racionales (Rational, makerat) mipar :: (Complex, Rational) mipar = (C 1 0, makerat 4 2) -- (numerador (snd mipar)) está permitido? -- Y (reduce (R 4 2))? Por qué?

33 TADs en otros lenguajes En general los lenguajes no proveen TADs, sino ocultación de información Como vimos, la idea de TAD es transversal a esta noción En lenguajes imperativos Módulos, APIs, etc. En lenguajes orientados a objetos Clases, interfases Lo importante es distinguir entre la especificación del TAD, y su implementación

34 Tipos algebraicos como TADs Recordemos que para un tipo algebraico (TAlg) Se determina la forma de sus elementos Se provee un mecanismo único de acceso a ellos Los TAlgs son más sencillos para razonar e implementar que los TADs Todo TAlg puede definirse como TAD Operaciones constructoras Operaciones de acceso o inspección

35 Tipos algebraicos como TADs Ejemplo: listas (versión 1) Lista a Nil :: Lista a Cons :: a -> Lista a -> Lista a isnil :: Lista a -> Bool hd :: Lista a -> a tl :: Lista a -> Lista a hd (Cons x xs) = x tl (Cons x xs) = xs isnil Nil = True isnil (Cons x xs) = False (hd Nil) y (tl Nil) no están definidos } Constructores } Funciones de acceso

36 Tipos Algebraicos como TADs Observaciones los constructores, con mayúsculas (convención) las funciones de acceso deben contemplar TODAS las partes a acceder Para especificar el comportamiento, basta dar una ecuación por cada combinación función de acceso/constructor Si hay casos no definidos, se agregan funciones que determinen el dominio de tales operaciones

37 Tipos Algebraicos como TADs Pattern matching Acceso genérico a un tipo algebraico Notación alternativa a las funciones de acceso Dependiendo del lenguaje se escribe diferente En Haskell, se usa la expresión case Pero el pattern matching es primitivo En lenguajes imperativos se puede usar otra versión de las funciones de acceso, más parecida al pattern matching

38 Tipos Algebraicos como TADs Pattern matching, ejemplo 1 Equivalencia entre la notación Haskell y el uso de funciones de acceso tradicionales y lenght xs = case xs of Nil -> 0 Cons y ys -> 1 + length ys lenght xs = if (isnil xs) then 0 else let y = hd xs; ys = tl xs in 1 + length ys son equivalentes (salvo detalles en el orden de reducción)

39 Tipos algebraicos como TADs Ejemplo: listas (versión 2; matching en imperativo) Lista a Nil :: Lista a Cons :: a -> Lista a -> Lista a matchnil :: Lista a -> Bool matchcons :: Lista a -> (Bool, (a, Lista a)) matchnil Nil = True matchnil (Cons x xs) = False fst (matchcons Nil) = False snd (matchcons Nil) no está definido cuando el fst da False matchcons (Cons x xs) = (True, (x, xs))

40 Tipos Algebraicos como TADs Posible implementación imperativa en C struct LIBase; typedef LIBase* ListInt; typedef struct LIBase { int head; ListInt tail; } LIBase; ListInt nil() { return NULL; } ListInt cons (int x, ListInt xs) { ListInt ys = (ListInt)malloc(sizeof(LIBase)); ys->head = x; ys->tail = xs; return ys; } bool matchnil (ListInt xs) { return (xs == NULL); } bool matchcons (ListInt ys, int x, ListInt xs) { bool retval = (ys == NULL); // o: bool retval = matchnil(ys); if (retval) { x = ys->head; xs = ys->tail; } return retval; } NO HACE ADMINISTRACIÓN DE MEMORIA!

41 Tipos Algebraicos como TADs Pattern matching, ejemplo 2 Equivalencia entre la notación Haskell y el uso de funciones de matching imperativas lenght xs = case xs of Nil -> 0 Cons y ys -> 1 + length ys y int lenght(listint xs) { int y; ListInt ys; if (matchcons(xs, y, ys)) { return 0; } else { return (1 + length(ys)); } } son equivalentes (salvo detalles en el orden de reducción)

42 Tipos Algebraicos como TADs Valores que pueden no estar... Maybe a Nothing :: Maybe a Just :: a -> Maybe a isnothing :: Maybe a -> Bool fromjust :: Maybe a -> a isnothing Nothing = True isnothing (Just x) = False fromjust (Just x) = x (fromjust Nothing) no está definido

43 Tipos Algebraicos como TADs Se puede hacer lo mismo con cualquier TAlg Ej: árboles de todo tipo binarios, tip, generales, etc. Hay que tener cuidado con la elección de las funciones de acceso el uso de las mismas pues puede violarse la abstracción, o la naturaleza algebraica

44 Ejercicio Implementar el tipo de datos abstracto IntSet single :: Integer -> IntSet insert :: IntSet -> Integer -> IntSet min :: IntSet -> Integer min (single x) = x min (insert s x) = if (min s) > y then y else (min s) TODAS LAS OPERACIONES O(1) en peor caso

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 In contrast, functional implementations of these data structures abstract away from troublesome pointer manipulations

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

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

Introducción a los Tipos Abstractos de Datos

Introducción a los Tipos Abstractos de Datos Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de

Más detalles

Tema 5: Abstracción. Índice

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

Más detalles

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Especificación algebraica ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Un tipo abstracto de datos se determina por las operaciones asociadas, incluyendo constantes que se consideran como operaciones sin

Más detalles

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008 INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema

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

Semántica Denotacional

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

Más detalles

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,

Más detalles

Tema: Sobrecarga de Operadores.

Tema: Sobrecarga de Operadores. Programación II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen

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

Tema 1. Introducción a las estructuras y tipos de datos

Tema 1. Introducción a las estructuras y tipos de datos Tema 1. Introducción a las estructuras y tipos de datos http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia,bmartine,morales,sanchiz}@icc.uji.es Estructuras

Más detalles

Euclides extendido y Test de primalidad probabiĺıstico

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

Más detalles

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos Conceptos ELO329: Diseño y Programación Orientados a Objetos 1 Paradigmas de Programación Historia: Los computadores parten cableados por hardware, Luego se introduce la programación en binario, Se desarrolla

Más detalles

Instituto de Computación - Facultad de Ingeniería - Universidad de la República

Instituto de Computación - Facultad de Ingeniería - Universidad de la República Parcial de Programación 2 Julio de 2011 Generalidades: La prueba es individual y sin material. Duración: 3hs. Sólo se contestan dudas acerca de la letra de los ejercicios. Escriba las hojas de un sólo

Más detalles

Técnicas Avanzadas de Testing Automático

Técnicas Avanzadas de Testing Automático Técnicas Avanzadas de Testing Automático Marcelo Frias ITBA - Buenos Aires, Argentina CONICET Preliminares: Calidad Validación y Verificación Especificaciones y V&V Análisis estático y dinámico Inspecciones

Más detalles

SEGURIDAD Y PROTECCION DE FICHEROS

SEGURIDAD Y PROTECCION DE FICHEROS SEGURIDAD Y PROTECCION DE FICHEROS INTEGRIDAD DEL SISTEMA DE ARCHIVOS ATAQUES AL SISTEMA PRINCIPIOS DE DISEÑO DE SISTEMAS SEGUROS IDENTIFICACIÓN DE USUARIOS MECANISMOS DE PROTECCIÓN Y CONTROL INTEGRIDAD

Más detalles

Lección 24: Lenguaje algebraico y sustituciones

Lección 24: Lenguaje algebraico y sustituciones LECCIÓN Lección : Lenguaje algebraico y sustituciones En lecciones anteriores usted ya trabajó con ecuaciones. Las ecuaciones expresan una igualdad entre ciertas relaciones numéricas en las que se desconoce

Más detalles

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores PROGRAMACIÓN CONCURRENTE Tema 5 Monitores 1 Indice Definición de los monitores Sincronización condicional usando monitores Algunos problemas con monitores 2 Problemas de las regiones críticas condicionales

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

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

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

Nociones Básicas de Sémantica: Semántica Denotacional

Nociones Básicas de Sémantica: Semántica Denotacional Nociones Básicas de Sémantica: Semántica Denotacional Análisis de Lenguajes de Programación Mauro Jaskelioff 21/08/2015 Acerca de la Semántica Operacional En la semántica operacional el significado de

Más detalles

- Bases de Datos - - Diseño Físico - Luis D. García

- Bases de Datos - - Diseño Físico - Luis D. García - Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo

Más detalles

Árboles AVL. Laboratorio de Programación II

Árboles AVL. Laboratorio de Programación II Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

Más detalles

Metodología Orientada a Objetos Clave 43100007 Maestría en Sistemas Computacionales

Metodología Orientada a Objetos Clave 43100007 Maestría en Sistemas Computacionales Metodología Orientada a Objetos Clave 43100007 Maestría en Sistemas Computacionales Modulo 03 UML: Vista de Casos de Uso Artefacto: Actores Catedrático MSC. Jose Juan Aviña Grimaldo e-mail josejuan_avina@gmail.com

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

CAPÍTULO 2 INTERFASE VISUAL BASIC 6.0

CAPÍTULO 2 INTERFASE VISUAL BASIC 6.0 CAPÍTULO 2 INTERFASE VISUAL BASIC 6.0 El dispositivo que mide el nivel del agua necesita una interfase sencilla para el usuario, amigable y sin rutinas difíciles de entender, haciendo de esta manera una

Más detalles

LÍMITES Y CONTINUIDAD DE FUNCIONES

LÍMITES Y CONTINUIDAD DE FUNCIONES Capítulo 9 LÍMITES Y CONTINUIDAD DE FUNCIONES 9.. Introducción El concepto de ite en Matemáticas tiene el sentido de lugar hacia el que se dirige una función en un determinado punto o en el infinito. Veamos

Más detalles

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS 4.1 Antecedentes históricos El lenguaje de programación BASIC (Beginner's All purpose Symbolic Instruction Code)

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

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

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante) 1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los

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

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006 ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los

Más detalles

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones Fracciones. Las fracciones y los números Racionales Las fracciones se utilizan cotidianamente en contextos relacionados con la medida, el reparto o como forma de relacionar dos cantidades. Tenemos entonces

Más detalles

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

Módulo 9 Sistema matemático y operaciones binarias

Módulo 9 Sistema matemático y operaciones binarias Módulo 9 Sistema matemático y operaciones binarias OBJETIVO: Identificar los conjuntos de números naturales, enteros, racionales e irracionales; resolver una operación binaria, representar un número racional

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

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

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación

Más detalles

Organización de Computadoras

Organización de Computadoras Organización de Computadoras Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Segundo Cuatrimestre de 2015 Proyecto N 1 Programación en Lenguaje C El objetivo principal

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 8. Elementos Básicos 1.- Ejemplo Introductorio. 2.- Dominios. 3.- Relaciones. 4.- Bases de Datos Relacionales. (Capítulo 11 del Date) EJEMPLO

Más detalles

Tema 1. Introducción a los TAD

Tema 1. Introducción a los TAD Tema 1. Introducción a los TAD Objetivos En este tema nos ocupamos inicialmente del concepto de abstracción, dedicando la mayor atención a la abstracción de datos, estudiando aspectos relacionados con

Más detalles

6.8 La Arquitectura del Sistema. [Proceso]

6.8 La Arquitectura del Sistema. [Proceso] 6.8 La Arquitectura del Sistema. [Proceso] En el Caso de Estudio se ha hecho énfasis en los objetos del Dominio del problema, ya que representan la esencia del sistema y definen su comportamiento. Sin

Más detalles

Tema 07. LÍMITES Y CONTINUIDAD DE FUNCIONES

Tema 07. LÍMITES Y CONTINUIDAD DE FUNCIONES Tema 07 LÍMITES Y CONTINUIDAD DE FUNCIONES Límite de una función en un punto Vamos a estudiar el comportamiento de las funciones f ( ) g ( ) ENT[ ] h ( ) i ( ) en el punto Para ello, damos a valores próimos

Más detalles

1. Que es un nombre de dominio? Es un conjunto de caracteres alfanuméricos utilizados para identificar una computadora determinada en Internet.

1. Que es un nombre de dominio? Es un conjunto de caracteres alfanuméricos utilizados para identificar una computadora determinada en Internet. Preguntas Frecuentes: 1. Que es un nombre de dominio? Es un conjunto de caracteres alfanuméricos utilizados para identificar una computadora determinada en Internet. Cada computadora en Internet tiene

Más detalles

EL PROCESO DE DISEÑO DEL SOFTWARE

EL PROCESO DE DISEÑO DEL SOFTWARE UNIDAD VI EL PROCESO DE DISEÑO DEL SOFWARE Contenido: 6.1 El diseño en la Ingeniería de Software 6.2 El proceso de Diseño 6.3 Fundamentos de Diseño 6.4 Diseño de Datos 6.5 Diseño Arquitectónico 6.6 Diseño

Más detalles

Divisibilidad y números primos

Divisibilidad y números primos Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos

Más detalles

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases. BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades

Más detalles

Álgebra Relacional. Unidad 5

Álgebra Relacional. Unidad 5 Álgebra Relacional Unidad 5 Definición Álgebra es un sistema matemático que está formado por: Operandos. Valores o variables con los cuáles se pueden construir nuevos valores o variables Operadores. Símbolos

Más detalles

Pilas y Colas. Capítulo 3

Pilas y Colas. Capítulo 3 Pilas y Colas Capítulo 3 Pilas Una pila representa una estructura lineal de datos en que se puede agregar o quitar elementos únicamente por uno de los dos extremos. En consecuencia, los elementos de una

Más detalles

Sistemas de numeración, operaciones y códigos.

Sistemas de numeración, operaciones y códigos. Tema : Sistemas de numeración, operaciones y códigos. Para representar ideas, los seres humanos (al menos los occidentales) utilizamos cadenas de símbolos alfanuméricos de un alfabeto definido. En el mundo

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

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

Figura 4.1 Clasificación de los lenguajes de bases de datos

Figura 4.1 Clasificación de los lenguajes de bases de datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje

Más detalles

Introducción a la Programación Orientada a Objetos (POO) Introducción a la Programación Orientada a Objetos (POO)

Introducción a la Programación Orientada a Objetos (POO) Introducción a la Programación Orientada a Objetos (POO) Diseño Orientado a Objetos. Metodología enfocada a la solución de problemas complejos. Complejidad del software. Problemas difíciles de precisar. Definición de requerimientos vago y cambio en el desarrollo

Más detalles

_ Antología de Física I. Unidad II Vectores. Elaboró: Ing. Víctor H. Alcalá-Octaviano

_ Antología de Física I. Unidad II Vectores. Elaboró: Ing. Víctor H. Alcalá-Octaviano 24 Unidad II Vectores 2.1 Magnitudes escalares y vectoriales Unidad II. VECTORES Para muchas magnitudes físicas basta con indicar su valor para que estén perfectamente definidas y estas son las denominadas

Más detalles

Reduce expresiones algebraicas (páginas 469 473)

Reduce expresiones algebraicas (páginas 469 473) A NOMRE FECHA PERÍODO Reduce expresiones algebraicas (páginas 469 473) Reduce expresiones algebraicas Los expresiones 3(x 4) 3x 2 son expresiones equivalentes, porque tienen el mismo valor sin importar

Más detalles

Una desigualdad se obtiene al escribir dos expresiones numéricas o algebraicas relacionadas con alguno de los símbolos

Una desigualdad se obtiene al escribir dos expresiones numéricas o algebraicas relacionadas con alguno de los símbolos MATEMÁTICAS BÁSICAS DESIGUALDADES DESIGUALDADES DE PRIMER GRADO EN UNA VARIABLE La epresión a b significa que "a" no es igual a "b ". Según los valores particulares de a de b, puede tenerse a > b, que

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

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

Capítulo 1 Documentos HTML5

Capítulo 1 Documentos HTML5 Capítulo 1 Documentos HTML5 1.1 Componentes básicos HTML5 provee básicamente tres características: estructura, estilo y funcionalidad. Nunca fue declarado oficialmente pero, incluso cuando algunas APIs

Más detalles

Álgebra y Matemática Discreta Sesión de Prácticas 1

Álgebra y Matemática Discreta Sesión de Prácticas 1 Álgebra y Matemática Discreta Sesión de Prácticas 1 (c) 2013 Leandro Marín, Francisco J. Vera, Gema M. Díaz 16 Sep 2013-22 Sep 2013 Estructuras Algebraicas La Estructura como Variable Tenemos una gran

Más detalles

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones Contenidos 1. Justificación del uso de funciones. 2. Declaración de funciones: prototipos. 3. Prototipos y ficheros de cabecera. 4. Polimorfismo (sobrecarga de funciones). 5. Argumentos formales y actuales.

Más detalles

Resortes y fuerzas. Analiza la siguiente situación. Ley de Hooke. 2do Medio > Física Ley de Hooke. Qué aprenderé?

Resortes y fuerzas. Analiza la siguiente situación. Ley de Hooke. 2do Medio > Física Ley de Hooke. Qué aprenderé? 2do Medio > Física Ley de Hooke Resortes y fuerzas Analiza la siguiente situación Aníbal trabaja en una fábrica de entretenimientos electrónicos. Es el encargado de diseñar algunas de las máquinas que

Más detalles

Base de datos relacional

Base de datos relacional Base de datos relacional Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para modelar problemas reales y administrar

Más detalles

Operaciones Booleanas y Compuertas Básicas

Operaciones Booleanas y Compuertas Básicas Álgebra de Boole El álgebra booleana es la teoría matemática que se aplica en la lógica combinatoria. Las variables booleanas son símbolos utilizados para representar magnitudes lógicas y pueden tener

Más detalles

Árboles balanceados. Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1. Thursday, April 30, 15

Árboles balanceados. Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1. Thursday, April 30, 15 Árboles balanceados Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1 Árboles balanceados Los algoritmos en árboles binarios de búsqueda dan buenos resultados en el caso promedio pero el

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Técnica de modelado de objetos (I) El modelado orientado a objetos es una técnica de especificación semiformal para

Más detalles

Técnicas Avanzadas de Testing Automatizado

Técnicas Avanzadas de Testing Automatizado Técnicas Avanzadas de Testing Automatizado Criterios de cobertura: Caja blanca/caja negra Clases de Equivalencia Valores de borde Cobertura basada en flujo de control CodeCover Mutación Jumble Criterios

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

Listas, Pilas, Colas y Punteros. Semana 3

Listas, Pilas, Colas y Punteros. Semana 3 Listas, Pilas, Colas y Punteros Semana 3 Dictado por Marco González Núñez 14 de Febrero de 2011 Estructuras de datos simples Hoy hablaremos de lo que sin duda me motivó a crear este curso que son los punteros,

Más detalles

DIRECCIONAMIENTO IPv4

DIRECCIONAMIENTO IPv4 DIRECCIONAMIENTO IPv4 Para el funcionamiento de una red, todos sus dispositivos requieren una dirección IP única: La dirección MAC. Las direcciones IP están construidas de dos partes: el identificador

Más detalles

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Entidad Formadora: Plan Local De Formación Convocatoria 2010 Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú

Más detalles

El Proceso Unificado de Desarrollo de Software

El Proceso Unificado de Desarrollo de Software El Proceso de Desarrollo de Software Ciclos de vida Métodos de desarrollo de software El Proceso Unificado de Desarrollo de Software 1 Fases principales del desarrollo de software Captura de requisitos:

Más detalles

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de diseño Patrón básico Handler Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de diseño Introducción Objetivos: Diseño específico para el problema, pero general para

Más detalles

Patrones para persistencia (I) Ingeniería del Software II

Patrones para persistencia (I) Ingeniería del Software II Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura

Más detalles

CDI Exclusión mutua a nivel alto. conceptos

CDI Exclusión mutua a nivel alto. conceptos conceptos El concepto de usar estructuras de datos a nivel alto libera al programador de los detalles de su implementación. El programador puede asumir que las operaciones están implementadas correctamente

Más detalles

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

= x + x + x + 1 por definición de exponente 2

= x + x + x + 1 por definición de exponente 2 Equivalencia de expresiones algebraicas En este documento exploramos un concepto simple, en apariencia, enseñado en escuelas de nivel secundaria: la equivalencia de dos expresiones algebraicas Empecemos

Más detalles

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: 5 10 2 2 10 1 8 10 0 =528 8 10 3 2 10 2 4 10 1 5 10 0 9 10 1 7 10 2 =8245,97

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: 5 10 2 2 10 1 8 10 0 =528 8 10 3 2 10 2 4 10 1 5 10 0 9 10 1 7 10 2 =8245,97 SISTEMAS DE NUMERACIÓN Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. La norma principal en un sistema de numeración posicional es que un mismo símbolo

Más detalles

SOLUCIÓN DE INECUACIONES DE UNA VARIABLE

SOLUCIÓN DE INECUACIONES DE UNA VARIABLE SOLUCIÓN DE INECUACIONES DE UNA VARIABLE Resolver una inecuación es hallar el conjunto de soluciones de las incógnitas que satisfacen la inecuación. Terminología: ax + b > cx + d Primer miembro Segundo

Más detalles

Definición de vectores

Definición de vectores Definición de vectores Un vector es todo segmento de recta dirigido en el espacio. Cada vector posee unas características que son: Origen: O también denominado Punto de aplicación. Es el punto exacto sobre

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

INSTITUTO TECNOLOGICO de la laguna Programación Orientada a Objetos en C++

INSTITUTO TECNOLOGICO de la laguna Programación Orientada a Objetos en C++ 5.- Herencia Múltiple. Un hecho natural es que una persona tenga más de un pariente mayor, esta situación también se puede dar en la herencia de clases, naturalmente este tipo de herencia involucra un

Más detalles

BASE DE DATOS RELACIONALES

BASE DE DATOS RELACIONALES BASE DE DATOS RELACIONALES Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para implementar bases de datos ya

Más detalles

Tipos Abstractos de Datos y Diseño por Contrato

Tipos Abstractos de Datos y Diseño por Contrato Tipos Abstractos de Datos y Diseño por Contrato 1.- Motivación de los tipos abstractos de datos Nuestro objetivo es obtener descripciones apropiadas de los objetos, para lo cual se necesita un método que

Más detalles

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014 Tecnologías en la Educación Matemática jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR 1 Datos Los algoritmos combinan datos con acciones. Los datos de entrada

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

2.4 Modelado conceptual

2.4 Modelado conceptual 2.4 Modelado conceptual 2.4. Búsqueda de conceptos Un modelo conceptual muestra clases conceptuales significativas en un dominio del problema; es el artefacto más importante que se crea durante el análisis

Más detalles

1.4.- D E S I G U A L D A D E S

1.4.- D E S I G U A L D A D E S 1.4.- D E S I G U A L D A D E S OBJETIVO: Que el alumno conozca y maneje las reglas empleadas en la resolución de desigualdades y las use para determinar el conjunto solución de una desigualdad dada y

Más detalles