1. Existe algún programa en C para el cual no hay equivalente (semántico) en Prolog? O viceversa? Explica brevemente tu respuesta.

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

Download "1. Existe algún programa en C para el cual no hay equivalente (semántico) en Prolog? O viceversa? Explica brevemente tu respuesta."

Transcripción

1 A. Semántica / Verificación de Programas 1. Existe algún programa en C para el cual no hay equivalente (semántico) en Prolog? O viceversa? Explica brevemente tu respuesta. Church s thesis: any computable function can be computed by a Turing machine. 2. Considera el siguiente programa en IMP donde inicialmente n 0. Encuentra un invariante para el loop en el programa. Entre mas fuerte sea tu invariante, mas útil es (por ejemplo, true es un invariante para cualquier loop, pero no es muy útil). j := 0; x := 1; while j < n do j := j + 1; x := 2 * x The loop invariant is 0 >= j and j =< n and x = 2^j 3. Nota que n (inicialmente n 0) no es modificado nunca en el programa de la pregunta anterior. Usando el método de prueba de tripletas de Hoare, prueba que la propiedad x = 2 n se satisface al terminar el while loop (es decir, al terminar el programa). Es decir, prueba formalmente la tripleta: {n 0} j := 0; x := 1; while j < n do j := j + 1; x := 2 * x {x:=2^n} B. Programación Lógica 1. Considera el siguiente programa lógico: m(x) :- s(x), n(b). m(x) :- s(x), n(x). s(x) :- l(x). s(x) :- q(y), r(x,y). q(x) :- p(x). p(b). r(a,b). l(c). n(a). Dibuja el arbol SLD completo para la pregunta?- m(a) 1

2 2. Considera el siguiente programa en Prolog: path(x,x). path(x,y) :- path(z,y), link(x,z). link(s,c). link(s,t). Que respuestas obtenemos del interprete de Prolog si le preguntamos?- path(s,t) y repetidamente pedimos mas soluciones tecleando ;.?- path(simula67,t). T = simula67 ; T = cplusplus ; T = smalltalk80 ; Stack Overflow 3. El siguiente predicado de Prolog determina si existe un camino entre dos nodos de una gráfica dirigida acíclica. reach(x, Y) :- arc(x, Y). reach(x, Y) :- arc(x, Z), reach(z, Y). Asume que arc(x,y) es verdadero cuando existe un arco desde el nodo X al nodo Y. Si hacemos la pregunta reach(a, b), la evaluación de Prolog simplemente nos dirá si existe un camino desde el nodo a al nodo b. Como podemos aumentar la funcionalidad de reach(a,b) para que también nos regrese el camino entre a y b (si es que existe alguno)?. Esto es, necesitas definir un predicado ternario reach(x,y,path). La pregunta reach(a,b,p) debe fallar si no existe camino alguno entre a y b, y en el caso contrario, debe tener éxito y regresarnos en P el camino entre a y b (como una lista en Prolog). reach(x, Y, [X, Y]) :- arc(x, Y). reach(x, Y, [X Path]) :- arc(x, Z), reach(z, Y, Path). C. Programación Funcional 1. A que evalúa la siguiente expresión: (fn g => g 3) (fn x => x * 2) (fn g => g 3) (fn x => x * 2) -> (fn x => x * 2) 3 -> 3 * 2 -> 6 2

3 2. Escribe definiciones en SML para las funciones (a) lenght (longitud de una lista) (b) append (concatenacion de 2 listas) (c) usando tus definiciones rescribe paso a paso las expresiones length([10,20,30]) y append [1,2] [3,4] fun length [] = 0 length (x::xs) = 1 + length(xs) ; length([10,10,10]) -> 1 + length([10,10]) length([10]) length([]) fun append [] ys = ys append (x::xs) ys = x :: (append xs ys); append [1,2] [3,4] -> append (1::2::nil) [3,4] 1::(append (2::nil) [3,4]) 1::(2::(append [] [3,4]) 1::(2::([3,4])) [1,2,3,4] 3. Lenguajes funcionales como SML permiten al usuario definir tipos de datos recursivos. Por ejemplo, un árbol binario de enteros puede ser definido por el tipo de datos datatype IntBinTree = Empty Node of (IntBinTree, int, IntBinTree) ; Define una función postorden : IntBinTree int list. Esta función toma un intbintree como argumento y regresa una lista de enteros. Esta lista contiene los enteros en el árbol binario; el orden de estos enteros es el generado recorriendo el árbol en post orden: en un recorrido post orden de un árbol cada nodo es visitado después de su subárbol izquierdo y derecho. fun postorder(empty) = nil postorder(node(t1,n,t2)) = append(postorder(t1), append(postorder(t2), [n])); fun append(nil, ys) = ys append(x::xs,ys) = x :: append(xs,ys); 3

4 D. Concurrencia 1. Considera el siguiente programa con dos procesos P1 y P2: var v1, v2 of boolean; initially v1=v2=false; P1 is v1:=true; while v2 do no-op; Critical_Section_1; v1:=false; Remainder_Section_1; P2 is v2:=true; while v1 do no-op; Critical_Section_2; v2:=false; Remainder_Section_2; (a) El programa satisface la propiedad de exclusión mutua? Explica. (b) El programa satisface la propiedad de progreso? Explica. 2. Usando semáforos como mecanismo de sincronización propón una solución al problema de los filósofos comensales (dining philosophers). Philosopher i: wait(chopstick[i]) wait(chopstick[i+1 mod 5]) eat signal(chopstick[i]); signal(chopstick[i+1 mod 5]); think 3. Contrasta brevemente la operacion x.wait de un monitor con la operacion wait(s) asociada con los semáforos. E. Practicas 1. Escribe el predicado transfiere(n,a,b,i) del problema de las torres de Hanoi, donde: N es el numero de discos a transferir A es la estaca en donde los discos están B es la estaca a donde queremos mover los discos I es la estaca intermedia que usamos para almacenar discos Asume (como en la practica) el predicado para mover los discos: mueve(a,b) :- nl, write('mueve el disco de arriba desde '), write(a), write(' a '), write(b). 4

5 transfiere(1,a,b,i) :- mueve(a,b). transfiere(n,a,b,i) :- M is N-1, transfiere(m,a,i,b), move(a,b), transfiere(m,i,b,a). 2. Escribe la definicion del predicado encodeestatement para compilar el ifthenelse (asume ya definidas encodetest y encodestatment para los otras instrucciones del lenguaje). Es decir, define encodestatement(if(test,then,else),d,(testcode; Thencode; instr(jump,l2); label(l1); Elsecode; label(l2)) ) :- encodestatement(if(test,then,else),d, (Testcode; Thencode; instr(jump,l2); label(l1); Elsecode; label(l2)) ) :- encodetest(test,d,l1,testcode), encodestatement(then,d,thencode), encodestatement(else,d,elsecode). 3. Escribe la definicion de assemble/3. Recuerda que el significado de assemble(x,y,z) es que Y es la dirección de inicio y Z la ultima dirección de la secuencia de instrucciones X. Recuerda que el contexto donde assemble aparece es el predicado compile: compile(source, (Code; instr(halt,0); block(l)) ) :- encodestatement(source,d,code), assemble(code,1,n0), N1 is N0+1, allocate(d,n1,n), L is N-N1. La definicion de assemble es algo asi: assemble((code1;code2),n0,n1) :- assemble(instr(_,_),n0,n) :- assemble(label(n),n,n). assemble((code1;code2),n0,n1) :- assemble(code1,n0,n2), assemble(code2,n2,n1). assemble(instr(_,_),n0,n) :- N is N0+1. assemble(label(n),n,n). 5

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

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

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Introducción al tema a. Formar grupos de 4 personas b. Tomar una hoja en blanco y una lapicera o lápiz c. En la hoja en blanco diseña un

Más detalles

Práctica 3: Funciones

Práctica 3: Funciones Fonaments d Informàtica 1r curs d Enginyeria Industrial Práctica 3: Funciones Objetivos de la práctica En esta práctica estudiaremos cómo podemos aumentar la funcionalidad del lenguaje MATLAB para nuestras

Más detalles

Solución Examen Febrero 2006

Solución Examen Febrero 2006 Solución Examen Febrero 2006 Lea detenidamente las siguientes instrucciones. No cumplir los requerimientos puede implicar la pérdida del examen. Formato Indique su nombre completo y número de cédula en

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

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

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

Inducción y recursión

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

Más detalles

COMO CREAR UN DIAGRAMA DE FLUJO

COMO CREAR UN DIAGRAMA DE FLUJO COMO CREAR UN DIAGRAMA DE FLUJO Los diagramas de flujo son una manera de representar visualmente el flujo de datos a través de sistemas de tratamiento de información. Los diagramas de flujo describen qué

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

Semántica de Primer Orden. Semántica de Primer Orden

Semántica de Primer Orden. Semántica de Primer Orden Para interpretar una fórmula de la lógica de predicados de primer orden: determinar qué objetos representan los términos (Dominio) definir las funciones y qué propiedades/relaciones representan los predicados

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

UNIDAD 4. Paradigma funcional. Introducción a la unidad

UNIDAD 4. Paradigma funcional. Introducción a la unidad UNIDAD 4 Paradigma funcional Introducción a la unidad Si hasta ahora pensabas que programar en ensamblador, C, Java, o incluso Ruby era todo lo que había en el mundo de los lenguajes de programación, pues

Más detalles

Estructuras de Datos Abstractas en Lenguaje Java

Estructuras de Datos Abstractas en Lenguaje Java Universidad de Santiago de Chile Facultad de Ingeniería Departamento de Ingeniería Industrial Estructuras de Datos Abstractas en Lenguaje Java Listas Enlazadas, Colas, Pilas y Árboles Binarios Creado por

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

árbol como un conjunto de nodos y líneas

árbol como un conjunto de nodos y líneas ÁRBOLES CAPÍTULO 6 ÁRBOLES Desde el punto de vista conceptual, un árbol es un objeto que comienza con una raíz (root) y se extiende en varias ramificaciones o líneas (edges), cada una de las cuales puede

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Características ARBOLES - CONCEPTOS Cada elemento del árbol se relaciona con cero o más elementos a quienes llama hijos. Si el árbol no

Más detalles

Instrumentación Virtual con LabVIEW

Instrumentación Virtual con LabVIEW Instrumentación Virtual con LabVIEW ESTRUCTURAS ESTRUCTURAS WHILE FOR.. CASE SEQUENCE Opciones de selección de CASE Controles Visibles Variables Locales y Globales Personalizar controles 1.- ENTORNO DE

Más detalles

Tiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador.

Tiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador. ORGANIZACIÓN DE LA MEMORIA EN TIEMPO DE EJECUCIÓN Compilador Tiempo de Compilación Programa fuente Secuencia de caracteres Scanner Secuencia de símbolos Parser Árbol sintáctico Analizador semántico Generador

Más detalles

ÁRBOLES GENERALES Y Y ESTRUCTURAS DE ÍNDICES DEFINICIONES Y REPRESENTACIONES DEFINICIONES Y REPRESENTACIONES. NOMENCLATURA SOBRE ÁRBOLES. DECLARACIÓN Y REPRESENTACIÓN.. CONSTRUCCIÓN.. ÁRBOLES 2-3-4. ÁRBOLES

Más detalles

PROGRAMACIÓN DECLARATIVA: LÓGICA Y RESTRICCIONES Grado en Ingeniería Informática / Grado en Matemáticas e Informática

PROGRAMACIÓN DECLARATIVA: LÓGICA Y RESTRICCIONES Grado en Ingeniería Informática / Grado en Matemáticas e Informática Nombre: PROGRAMACIÓN DECLARATIVA: LÓGICA Y RESTRICCIONES Nº de Matrícula: INSTRUCCIONES: El examen consta de 3 ejercicios. Todas las preguntas deben comenzar a contestarse en su hoja correspondiente. Pueden

Más detalles

Concurrencia entre Procesos.

Concurrencia entre Procesos. Concurrencia entre Procesos. Sistemas Operativos Tema 3. 1 Procesamiento concurrente. Procesamiento concurrente: base de los sistemas operativos modernos (multiprogramados): Un conjunto de procesos que

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

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS 1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para

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

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)

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

Secuencias. Mauro Jaskelioff 18/05/2015

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

Más detalles

1. El vocabulario de un programa PROLOG

1. El vocabulario de un programa PROLOG Tema 2. La Sintaxis 1. El vocabulario de un programa PROLOG 2. Términos 2.1. Constantes 2.2. Variables 2.3. Estructuras 3. Operadores 4. Igualdad y Desigualdad 5. Aritmética en los programas PROLOG 1.

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents

Más detalles

Creación de Funciones de Conducción

Creación de Funciones de Conducción Creación de Funciones de Conducción Requerimientos Para el desarrollo de esta actividad se requiere que: Contemos con un robot BoeBot armado con placa Arduino. Repetición En estos momentos habremos notado

Más detalles

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

Registro (record): es la unidad básica de acceso y manipulación de la base de datos. UNIDAD II 1. Modelos de Bases de Datos. Modelo de Red. Representan las entidades en forma de nodos de un grafo y las asociaciones o interrelaciones entre estas, mediante los arcos que unen a dichos nodos.

Más detalles

Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal

Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal Artículo adaptado del artículo de Wikipedia Sistema Binario en su versión del 20 de marzo de 2014, por varios autores bajo la Licencia de Documentación

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

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ÁRBOLES BINRIOS 2002 GRUPO # 22 lumnos: guilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURS DE DTOS TEM 6 Estructuras de datos no lineales. Árboles binarios ÍNDICE 6.1. Introducción.

Más detalles

UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano.

UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano. UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano. EL PLANO CARTESIANO. El plano cartesiano está formado

Más detalles

((X A Y ) = A ) si y solo si X = Y, A = B, A X = X, (X A Y ) = X Y, (X A Y ) = X Y

((X A Y ) = A ) si y solo si X = Y, A = B, A X = X, (X A Y ) = X Y, (X A Y ) = X Y El examen de Lógica y fundamentos del 11-02-2005 resuelto por cortesía de Alberto Castellón 1) Sea A = P(B) el conjunto de los subconjuntos de un conjunto B. a) Pruébese que A es un modelo de la teoría

Más detalles

Comunicación con la Computadora

Comunicación con la Computadora Comunicación con la Computadora Programación Básica Copyright CARIMOBITS Comunicación con la computadora Se logra a través de lenguajes de computadoras o lenguajes de programación. Tipos de lenguajes de

Más detalles

Implementación de monitores POSIX

Implementación de monitores POSIX Implementación de monitores POSIX Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Programación concurrente: Problemática Presencia de condiciones de

Más detalles

Introducción. Lógica de proposiciones: introducción. Lógica de proposiciones. P (a) x. Conceptos

Introducción. Lógica de proposiciones: introducción. Lógica de proposiciones. P (a) x. Conceptos Introducción César Ignacio García Osorio Lógica y sistemas axiomáticos 1 La lógica ha sido históricamente uno de los primeros lenguajes utilizados para representar el conocimiento. Además es frecuente

Más detalles

PROCESSING SEMANA 1. PROYECTO RED SNAKE. SERPIENTE ROJA. IES Sefarad. Departamento de Tecnología

PROCESSING SEMANA 1. PROYECTO RED SNAKE. SERPIENTE ROJA. IES Sefarad. Departamento de Tecnología PROCESSING SEMANA 1. PROYECTO RED SNAKE. SERPIENTE ROJA IES Sefarad. Departamento de Tecnología qué es? LENGUAJE DE PROGRAMACIÓN para qué sirve? un idioma con normas de escritura y palabras propias para

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

METODOS NUMERICOS CATEDRA 0 2. Ingeniería Civil ING.CRISTIANCASTROP. Facultad de Ingeniería de Minas, Geología y Civil

METODOS NUMERICOS CATEDRA 0 2. Ingeniería Civil ING.CRISTIANCASTROP. Facultad de Ingeniería de Minas, Geología y Civil CATEDRA 0 2 Facultad de Ingeniería de Minas, Geología y Civil Departamento académico de ingeniería de minas y civil METODOS NUMERICOS Ingeniería Civil ING.CRISTIANCASTROP. Capitulo II Herramientas de Cálculo

Más detalles

1 Agencia de viajes: enunciado

1 Agencia de viajes: enunciado 1 AGENCIA DE VIAJES: ENUNCIADO 1 1 Agencia de viajes: enunciado Una agencia de viajes mantiene una base de datos con exactamente N clientes y M destinos turísticos. En una situación real, estos valores

Más detalles

Tema 1 Programación Funcional

Tema 1 Programación Funcional Tema 1 Programación Funcional Curso de Python Avanzado Juan Pedro Boĺıvar Puente Instituto de Astrofísica de Andalucía Mayo de 2011 Juan Pedro Boĺıvar Puente (Instituto de Astrofísica Tema de Andalucía)

Más detalles

Capítulo 1 Introducción a la Computación

Capítulo 1 Introducción a la Computación Capítulo 1 Introducción a la Computación 1 MEMORIA PRINCIPAL (RAM) DISPOSITIVOS DE ENTRADA (Teclado, Ratón, etc) C P U DISPOSITIVOS DE SALIDA (Monitor, Impresora, etc.) ALMACENAMIENTO (Memoria Secundaria:

Más detalles

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

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

Más detalles

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4 Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4 by S. Muñoz-Gutiérrez stalinmunoz@yahoo.com, informes@grupolinda.org Grupo LINDA Facultad de Ingeniería UNAM México Octubre-Diciembre 2009 Identificando

Más detalles

Unidad: Representación gráfica del movimiento

Unidad: Representación gráfica del movimiento Unidad: Representación gráfica del movimiento Aplicando y repasando el concepto de rapidez Esta primera actividad repasa el concepto de rapidez definido anteriormente. Posición Esta actividad introduce

Más detalles

Programando en C a Bajo Nivel

Programando en C a Bajo Nivel Universidad de Buenos Aires Facultad De Ingeniería Programando en C a Bajo Nivel [75.40] Algoritmos y Programación I 1er Cuatrimestre 011 Cátedra: Ing. Pablo Guarna Autor: Bernardo Ortega Moncada Versión

Más detalles

Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio

Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio Fundamentos de Arquitectura de Computadores Presentación del Curso Profesor: Felipe Cabarcas Correo:cabarcas@udea.edu.co Oficina:

Más detalles

Tema 3. Monitores Programación Concurrente

Tema 3. Monitores Programación Concurrente Tema 3. Monitores Programación Concurrente Depto. de Lenguajes y Sistemas Informáticos Universidad de Granada Contenidos 1. Concepto de Monitor 1.1. Fundamento teórico de los monitores 1.2. Sintaxis de

Más detalles

PROGRAMACION CONCURRENTE

PROGRAMACION CONCURRENTE PROGRAMACION CONCURRENTE II.3 Sincronización basada en memoria compartida: Semáforos J.M. Drake 1 Procesos concurrentes y memoria compartida. Si los diferentes procesos de un programa concurrente tienen

Más detalles

02 Lenguajes de programación y compiladores

02 Lenguajes de programación y compiladores 2 Contenido Introducción Lenguaje de programación Traductor Compilador Interprete Lenguaje compilado Lenguaje interpretado Compiladores (just in time) Lenguaje ensamblador Programa objeto Lenguajes de

Más detalles

Mensajes. Interbloqueo

Mensajes. Interbloqueo CONCURRENCIA DE PROCESOS Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen Los procesos comparten variables globales, comparten y compiten por recursos, se ejecutan simultáneamente intercalándose

Más detalles

UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS.

UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS. UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS. 5.1.- SECUENCIA En este caso, las instrucciones se ejecutan una después de la otra sin omitir ninguna de ellas. La sintaxis para

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

Lenguaje C. Tipos de Datos Simples y Estructuras de Control

Lenguaje C. Tipos de Datos Simples y Estructuras de Control Lenguaje C Tipos de Datos Simples y Estructuras de Control Lenguaje C C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje

Más detalles

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. II.5 Sincronización basada en memoria compartida: Monitores

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. II.5 Sincronización basada en memoria compartida: Monitores PROGRAMACION CONCURRENTE Y DISTRIBUIDA II.5 Sincronización basada en memoria compartida: Monitores J.M. Drake 1 Monitor Son módulos que encierran los recursos o variables compartidas como componentes internos

Más detalles

Academia técnica de computación A.T.C.

Academia técnica de computación A.T.C. Academia técnica de computación A.T.C. Free Pascal (FPC) El Free Pascal es un compilador Pascal portable, libre y de código abierto, que representa una alternativa a los productos comerciales Turbo Pascal

Más detalles

Receta general para resolver problemas de sincronización con semáforos

Receta general para resolver problemas de sincronización con semáforos Receta general para resolver problemas de sincronización con semáforos La primera vez que te enfrentas a la tarea de implementar una solución a un problema de sincronización entre procesos, es normal que

Más detalles

Fundamentos de Investigación de Operaciones Asignación y Vendedor Viajero

Fundamentos de Investigación de Operaciones Asignación y Vendedor Viajero Fundamentos de Investigación de Operaciones y Vendedor Viajero 23 de mayo de 2004 Si bien la resolución del problema de transporte mediante tableau parece ser muy expedita, existen ciertos tipos de problemas

Más detalles

Sentencias o instrucciones en Visual BASIC

Sentencias o instrucciones en Visual BASIC Tecnología a de la Informació Sentencias o instrucciones en Visual BASIC REM Tecnología a de la Informació REM es una sentencia no ejecutable y permite introducir comentarios en los programas. A esta práctica

Más detalles

Traductores DDS con CUP

Traductores DDS con CUP Gramática para reconocer expresiones lógicas. Resultado: valor de verdad (true false) A::= L semicolon A L semicolon; L::= L opand J L opor J L opnand J L opnor J L opxor J L opxnor J J; J::= apertura_parentesis

Más detalles

MLM 1000 - Matemática Discreta

MLM 1000 - Matemática Discreta MLM 1000 - Matemática Discreta L. Dissett Clase 04 Resolución. Lógica de predicados c Luis Dissett V. P.U.C. Chile, 2003 Aspectos administrativos Sobre el tema vacantes: 26 personas solicitaron ingreso

Más detalles

SAGE (ENTORNO DE CÁLCULOS MATEMÁTICOS)

SAGE (ENTORNO DE CÁLCULOS MATEMÁTICOS) SAGE (ENTORNO DE CÁLCULOS MATEMÁTICOS) PRESENTACIÓN El siguiente texto forma parte de una guía acerca del Programa SAGE que tiene por finalidad actuar como un material de asesoramiento en la instalación

Más detalles

Comencemos a programar con. Entrega 10. Estructuras de Control II

Comencemos a programar con. Entrega 10. Estructuras de Control II Comencemos a programar con VBA - Access Entrega 10 Estructuras de Control II Eduardo Olaz 10-2 Estructuras de Control, segunda parte Las Instrucciones While - - - Wend La estructura de bucle For Contador

Más detalles

4 o Ingeniería Informática

4 o Ingeniería Informática Esquema del tema 1. Introducción 4 o Ingeniería Informática II26 Procesadores de lenguaje Estructura de los compiladores e intérpretes 2. Etapas del proceso de traducción 3. La interpretación 4. La arquitectura

Más detalles

Contenido. Capítulo 1. Introducción a lenguaje C 1

Contenido. Capítulo 1. Introducción a lenguaje C 1 Contenido Capítulo 1. Introducción a lenguaje C 1 Introducción... 2 Qué es un lenguaje de programación?... 2 Tipos de lenguajes de programación... 2 Introducción a lenguaje C... 2 Historia de lenguaje

Más detalles

Clase 32: Árbol balanceado AVL

Clase 32: Árbol balanceado AVL Clase 32: Árbol balanceado AVL http://computacion.cs.cinvestav.mx/~efranco @efranco_escom efranco.docencia@gmail.com (Prof. Edgardo A. Franco) 1 Contenido Problema de los árboles binarios de búsqueda Variantes

Más detalles

Tema 3: Concurrencia de procesos

Tema 3: Concurrencia de procesos Tema 3: Concurrencia de procesos Yolanda Blanco Fernández yolanda@det.uvigo.es Concurrencia, Tiempo Real y Paralelismo Concurrencia: Convivencia de un conjunto de procesos en un mismo ordenador. Sistemas

Más detalles

APRENDE A CREAR UNA PÁGINA WEB CON HTML

APRENDE A CREAR UNA PÁGINA WEB CON HTML APRENDE A CREAR UNA PÁGINA WEB CON HTML Introducción a PHP INTRODUCCIÓN PHP es una lenguaje de programación del lado del servidor. En este curso, lo usaremos para recibir los datos de un formulario, realizar

Más detalles

Lógica de Predicados 1

Lógica de Predicados 1 Lógica de Predicados 1 rafael ramirez rafael@iua.upf.es Ocata 320 Porqué Lógica de Predicados La logica proposicional maneja bien afirmaciones compuestas de no, y, o, si entonces En situaciones con un

Más detalles

PART II: Moviendo al jugador

PART II: Moviendo al jugador UNITY PART II: Moviendo al jugador El movimiento se lo vamos a dar a través de un programa Definición de programa: Un programa es una secuencia de instrucciones, escritas para realizar una tarea específica

Más detalles

1. Resolución de problemas con computadoras

1. Resolución de problemas con computadoras Fundamentos de Programación I 1. Resolución de problemas con computadoras Luis Rodríguez Baena (luis.rodriguez@upsam.es) Universidad Pontificia de Salamanca Escuela Superior de Ingeniería y Arquitectura

Más detalles

SALIDAS ANALÓGICAS. Adquisición de datos y acondicionamiento de la señal Tema 6

SALIDAS ANALÓGICAS. Adquisición de datos y acondicionamiento de la señal Tema 6 SALIDAS ANALÓGICAS A. Arquitectura de la salida analógica B. Uso del DAQmx Write VI C. VI, AO Multipuntos (Buffered) D. Generación del Buffer Finito E. Generación del Buffer Continuo Página 1 de 8 A. ARQUITECTURA

Más detalles

Objetivos. El alumno conocerá los elementos indispensables de un ambiente de programación y será capaz de realizar programas básicos en lenguaje C.

Objetivos. El alumno conocerá los elementos indispensables de un ambiente de programación y será capaz de realizar programas básicos en lenguaje C. Objetivos El alumno conocerá los elementos indispensables de un ambiente de programación y será capaz de realizar programas básicos en lenguaje C. Al final de esta práctica el alumno podrá: 1. Decir cuáles

Más detalles

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012 Prácticas: Introducción a la programación en Java Informática (1º Ingeniería Civil) Índice Introducción a Java y al entorno de desarrollo NetBeans Estructura de un programa Tipos de datos Operadores Sentencias

Más detalles

Capítulo 1 Instrucciones Básicas de Mathematica

Capítulo 1 Instrucciones Básicas de Mathematica Capítulo 1 Instrucciones Básicas de Mathematica En este capítulo se presentan algunas instrucciones y operaciones básicas para empezar a familarizarse con el programa Mathematica. Se pueden encontrar explicaciones

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

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS

SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º, Año 2004/2005 SEMINARIO DE ESPECIFICACIONES ALGEBRAICAS Contenidos: 1. Descripción general de Maude 2. Comandos básicos 3. Formato

Más detalles

Una (muy) breve introducción a la teoría de la computación

Una (muy) breve introducción a la teoría de la computación Una (muy) breve introducción a la teoría de la computación Marcelo Arenas M. Arenas Una (muy) breve introducción a la teoría de la computación 1 / 48 Ciencia de la computación Cuál es el objeto de estudio

Más detalles

Práctico 5. Definiciones Inductivas - Segunda Parte -

Práctico 5. Definiciones Inductivas - Segunda Parte - Práctico 5 Definiciones Inductivas - Segunda Parte - Objetivos: Trabajar con tipos inductivos. Realizar pruebas por inducción y análisis de casos. Familiarizarse con los lemas de inversión y las tácticas

Más detalles

Problemas indecidibles

Problemas indecidibles Capítulo 7 Problemas indecidibles 71 Codificación de máquinas de Turing Toda MT se puede codificar como una secuencia finita de ceros y unos En esta sección presentaremos una codificación válida para todas

Más detalles

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA INSTITUTO POLITÉCNICO NACIONAL SECRETARIA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR ESIME CULHUACAN NOMBRE ALUMNO: FECHA DIA MES AÑO INGENIERÍA EN COMPUTACIÓN ASIGNATURA 1. Objetivo Apellido paterno ESTRUCTURAS

Más detalles

Apuntes de Algoritmos y Estructuras de Datos, Programación III, Fac. de Informática UNLP. Alejandro Santos. 7 de agosto de 2012. 1.

Apuntes de Algoritmos y Estructuras de Datos, Programación III, Fac. de Informática UNLP. Alejandro Santos. 7 de agosto de 2012. 1. Apuntes de Algoritmos y Estructuras de Datos, Programación III, Fac. de Informática UNLP Índice Alejandro Santos 7 de agosto de 2012 1. Introducción 4 2. Tiempo de Ejecución 5 2.1. Análisis Asintótico

Más detalles

3. COLA DE PRIORIDAD DEFINICION (I)

3. COLA DE PRIORIDAD DEFINICION (I) 3. COLA DE PRIORIDAD DEFINICION (I) Conjunto de elementos ordenados con las operaciones: Crear ( ) > ColaPrioridad EsVacio () > Boolean Insertar (ColaPrioridad, Item) > ColaPrioridad BorrarMínimo (ColaPrioridad)

Más detalles

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción Árbol binario Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción Un Árbol Binario es un conjunto finito de Elementos, de nombre Nodos de forma que: El Árbol Binario

Más detalles

Generación de Código Intermedio

Generación de Código Intermedio Generación de Código Intermedio Francisco Rodríguez Zamora Universidad de Costa Rica, Escuela de Ciencias de Computación e Informática San José, Costa Rica francisco.rodriguez@ecci.ucr.ac.cr Jonathan Calderón

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

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES 3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES 3.1 Estructuras de repetición Una estructura de repetición, también llamada lazo o bucle, hace posible la ejecución repetida de secciones específicas de código.

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

Curso de Visual Basic 6.0 - Lección 1 Area Interactiva - www.areaint.com

Curso de Visual Basic 6.0 - Lección 1 Area Interactiva - www.areaint.com LECCIÓN 6 En esta lección vamos a familiarizarnos con las estructuras de repetición, las cuales nos sirven para realizar una misma instrucción un número determinado de veces o indeterminado dependiendo

Más detalles

INGENIERÍA DEL CONOCIMIENTO

INGENIERÍA DEL CONOCIMIENTO INGENIERÍA DEL CONOCIMIENTO Representación no formal del conocimiento M.I. Jaime Alfonso Reyes Cortés Redes semánticas (redes de proposiciones, conceptuales o asociativas) o Representación gráfica de las

Más detalles

Cadenas de Markov y Perron-Frobenius

Cadenas de Markov y Perron-Frobenius Cadenas de Markov y Perron-Frobenius Pablo Lessa 10 de octubre de 2014 1. Cadenas de Markov En 1996 Larry Page y Sergey Brin, en ese momento en Stanford, inventaron una manera de asignar un ranking de

Más detalles

Filósofos comensales

Filósofos comensales Deadlocks Filósofos comensales Deadlock Los tenedores son los recursos En una computadora, que recursos tenemos? CPU, memoria, placa gráfica, teclado, HD, impresora, CD writer Cuales recursos pueden generar

Más detalles

UTN FRR Ingeniería en Sistemas de Información Algoritmos y Estructuras de Datos Archivos Directos GUIA DE ESTUDIO: ARCHIVOS DIRECTOS

UTN FRR Ingeniería en Sistemas de Información Algoritmos y Estructuras de Datos Archivos Directos GUIA DE ESTUDIO: ARCHIVOS DIRECTOS GUIA DE ESTUDIO: ARCHIVOS DIRECTOS Introducción: Una característica común de los tipos de datos que hemos visto hasta ahora es que la información que cargamos se mantiene vigente solamente mientras está

Más detalles

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal ELO320 Estructuras de Datos y Algoritmos Arboles Binarios Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et

Más detalles

Tablas. Estas serán las tablas que usaremos en la mayoría de ejemplos. Empleado

Tablas. Estas serán las tablas que usaremos en la mayoría de ejemplos. Empleado Álgebra Relacional Un álgebra es un sistema matemático constituido por Operandos: objetos (valores o variables) desde los cuales nuevos objetos pueden ser construidos. Operadores: símbolos que denotan

Más detalles