Análisis Comparativo de Lenguajes - Año 2018 Práctico Nro. 2 Lenguaje Prolog Corresponde al Apunte El lenguaje de programación Prolog

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

Download "Análisis Comparativo de Lenguajes - Año 2018 Práctico Nro. 2 Lenguaje Prolog Corresponde al Apunte El lenguaje de programación Prolog"

Transcripción

1 Análisis Comparativo de Lenguajes - Año 2018 Práctico Nro. 2 Lenguaje Prolog Corresponde al Apunte El lenguaje de programación Prolog Ejercicio 1: Dado el siguiente programa Prolog: ciudad(la_punta). ciudad(mercedes). ciudad(rio_cuarto). ciudad(villa_maria). poblacion(la_punta,13182). poblacion(mercedes,112000). poblacion(villa_maria,79351). poblacion(rio_cuarto,158000). pertenece(la_punta,san_luis). pertenece(mercedes,san_luis). pertenece(rio_cuarto,cordoba). pertenece(villa_maria,cordoba). Explique cual considera es el objetivo de cada una de las siguientes consultas, ejecutando manualmente los pasos realizados para responder cada una de ellas. En todos los casos, muestre todas las respuestas diferentes que devuelve el intérprete Prolog si se usa el ;: a)?- ciudad(c). b)?- ciudad(c), pertenece(c,san_luis). c)?- ciudad(c), poblacion(c,pob), Pob < d)?- pertenece(villa_maria,cordoba). e)?- poblacion(mercedes,p1), poblacion(la_punta,p2), Dif is P1 - P2. Ejercicio 2: Dado el siguiente programa Prolog: ave(canario). ave(gallina). mamifero(perro). mamifero(gato). come(gato,carne). come(gallina,maiz). come(perro,carne). come(canario,alpiste). animal(x):- ave(x). animal(x):- mamifero(x). 1. Defina una consulta que permita conocer todos los animales que comen carne. 2. Ejecute manualmente los pasos realizados para responder dicha consulta.

2 Ejercicio 3: Suponga definidas las siguientes relaciones: padre(x,y). X es padre de Y. madre(x,y). X es madre de Y. hombre(x). X es hombre. mujer(x). X es mujer. progenitor(x,y). X es padre o madre de Y. Se pide definir en base a ellas las siguientes relaciones: espadre(x). X es padre. eshijo(x). X es hijo. hija(x,y). X es hija de Y. tio(x,y). X es tio de Y. primo(x,y). X es primo de Y. nieto a(x,y). X es nieto o nieta de Y. Ejercicio 4: Dada la siguiente definición de la relación hermana: hermana(x,y) :- mujer(x), progenitor(z,x), progenitor(z,y). 1. Explique por qué es posible que una persona sea hermana de sí misma. 2. Modifique la definición para que esto no suceda. Puede utilizar el operador distinto, cuya sintaxis es \= Ejercicio 5: Dado el siguiente programa Prolog: hombre(juan). hombre(raul). hombre(carlos). hermano(juan,maria). hermano(carlos,juan). hermano(juan,raul). hermano(raul,juan). madre(maria,luis). padre(juan,jose). tio(x,y) :- hombre(x), hermano(x,z), progenitor(z,y). tio(pablo,luis). progenitor(juan,pedro). progenitor(x,y) :- padre(x,y). progenitor(x,y) :- madre(x,y). Ejecute manualmente los pasos realizados para responder las siguientes consultas, para el ítem b) provea al menos 3 respuestas diferentes que devolvería el intérprete Prolog (si se usara el ; al menos 2 veces): a)?- tio(r,jose). b)?- tio(r,s).

3 Ejercicio 6: La función F act(n) retorna el factorial de N (es decir, el N!). Recursivamente se define como: F act(n) = { 1 si N = 1 F act(n 1) N si N 1 Defina el predicado factorial que implemente dicha función, donde el primer argumento es el número N, y el segundo argumento es el valor factorial correspondiente. Ejemplo:?- factorial(2,x). X = 2?- factorial(4,24). yes Ejercicio 7: La función F ibo(n) retorna el valor de Fibonacci de N. Recursivamente se define como: 0 si N = 0 F ibo(n) = 1 si N = 1 F ibo(n 1) + F ibo(n 2) si N > 1 Defina el predicado fibonacci que implemente dicha función, donde el primer argumento es el número N, y el segundo argumento es el valor de Fibonacci. Ejemplo:?- fibonacci(1,0). no?- fibonacci(6,x). X = 8 Ejercicio 8: Defina el predicado subfafi el cual, dado como primer argumento un número N, devuelve en el segundo argumento la diferencia del factorial de N y el valor de Fibonacci de N. Ejemplo:?- subfafi(3,x). X = 4?- subfafi(4,21). yes Ejercicio 9: Defina el predicado mayor el cual, dados dos número naturales ( 0) como su primer y segundo argumento, tendrá el mayor de ellos como tercer argumento. El ejercicio no se puede resolver utilizando los operadores de comparación (menor, mayor, etc.) provistos por Prolog. Ejemplo:?- mayor(3,5,x). X = 5?- mayor(8,5,8). yes

4 Ejercicio 10: Suponga que un programa Prolog tiene definidos los siguientes hechos: producto(celular(marcaymodelo(lg,g5),precio(13.999))). producto(tablet(marcaymodelo(android,hd70),precio(4.000))). producto(celular(marcaymodelo(samsung,a5),precio(9.999))). producto(tablet(marcaymodelo(amazon,fire8),precio(3.500))). 1. Escriba el resultado (y el significado) de las siguientes consultas: a)?- producto(tablet(x,precio(3.500))). b)?- producto(celular(x,precio(z))), Z > Escriba una consulta que permita obtener el precio de todos los celulares marca samsung. 3. Cómo modificaría la estructura tablet para que pueda contener detalles del producto tales como el tamaño de pantalla, procesador y memoria? Ejercicio 11: Escriba el resultado de las siguientes consultas: a)?- [a,b,c] = [a [b,c]]. b)?- [a,b,c] = [a,b [c]]. c)?- [a,b,c] = [a b,c]]. d)?- [a,b,c] = [a,b,c []]. e)?- [1,2,3,4] = [X,2,3,Y]. f)?- [1,2,3,4] = [X,3,2,Y]. g)?- [1,2,3,4] =.(X,.(Y,Z)). h)?- [1,2,3,4] = [_ _]. i)?- [1,2,3,4] = [1,2,3 Y]. j)?- [[1],2,[3]] = [X Y]. k)?- [[1],2,[3]] = [X,_ Z]. l)?- [5,[6,X,1],Q] = [Y,[R [4,1]],[10 []]]. Ejercicio 12: Para el siguiente programa Prolog: p([],0). p([f(x,y) T],R ) :- X > Y, p(t,r1), R is X + R1. p([f(x,y) T],R ) :- X =< Y, p(t,r1), R2 is Y - X, R is R1 + R2. p([f(_) T],R ) :- p(t,r). Responda cual es el resultado de la siguiente consulta, mostrando la ejecución paso a paso:?- p([f(2),f(4,3),f(1,4)],m).

5 Ejercicio 13: Responda cual es el resultado de las siguientes consultas en Prolog:?- [X,1 T] = [f(2),y,4,pepe].?- [f(2,3) T] = [f(a,b),3,4], Y is A + B / 2, Z = [Y,Y T].?- [[_,X,[_ [_ Y]]], [a,1,1], fun(x,[a T])] = [[1,1,[2,3,4]],T,M]. Ejercicio 14: Dada la siguiente definición del predicado concate: concate([], L2, L2). concate([x L1], L2, [X L3]) :- concate(l1, L2, L3). Evalúe las siguientes invocaciones (al menos 2 en clase):?- concate([a,e],[i],[a,e,i]).?- concate([a,e],x,[a,e,i,o]).?- concate(x,y,[a,e,i,o]). Ejercicio 15: Suponga que para implementar el predicado suma lista se cuenta con las siguientes dos versiones para este predicado: /* Version 1 de suma_lista */ suma_lista([],0). suma_lista([x T],R) :- suma_lista(t,r1), R is R1 + X. /* Version 2 de suma_lista */ suma_lista(l,r) :- suma_lista3(l,0,r). suma_lista3([],n,n). suma_lista3([x T],N,R) :- N1 is N + X, suma_lista3(t,n1,r). Ejecute manualmente y compare ambas versiones del predicado cuando se realizan las consultas:?- suma_lista([],x).?- suma_lista([2,4,6],x). Ejercicio 16: Defina el predicado longi que calcula la longitud de la lista.?- longi([],0). yes?- longi([3,2,1],x). X = 3

6 NOTA: Tenga en cuenta que para la programación de los siguientes predicados, puede utilizar predicados definidos en ejercicios anteriores. Ejercicio 17: Defina el predicado may que tiene como primer y segundo argumento dos listas arbitrarias. Este predicado devuelve en su tercer argumento la lista de mayor longitud.?- may([0,pepe],[1,2,3,tito],x). X = [1,2,3,tito]?- may([1,2,3],[],x). X = [1,2,3] Ejercicio 18: Defina el predicado elimp que permita eliminar de la lista, el elemento que se encuentra en la posición suministrada.?- elimp(2,[3,2,1,2],[3,1,2]). yes?- elimp(1,[3,2,1,1],x). X = [2,1,1] Ejercicio 19: Defina el predicado subconj que verifica si una lista es subconjunto de otra. Una lista L1 es subconjunto de L2 cuando todos sus elementos pertenecen a L2.?- subconj([2,1],[1,3,2]). yes?- subconj([1,2],[1,3,1]). no Ejercicio 20: Defina el predicado convbd cuyo primer argumento es una lista de digitos binarios (0 o 1) que representa un número binario positivo. Este predicado dará como resultado en su segundo argumento el número decimal correspondiente al primer argumento.?- convbd([1,0,1], R). R = 5?- convbd([1,1], R). R = 3 Ejercicio 21: Defina el predicado obtiene pre el cual toma como primer argumento una lista de precios de productos, en el segundo argumento recibe una estructura rango(linf,lsup) donde Linf y Lsup son valores reales que cumplen Linf < Lsup. Este predicado obtendrá en su tercer argumento la lista con los precios que están entre Linf y Lsup.?- obtiene_pre([47.30,28.10,150.24,30.0],rango(20.0,45.0),r). R = [28.10,30.0]?- obtiene_pre([72.50,15.10,90.75],rango(20.0,50.0),r). R = []

7 Ejercicio 22: Defina el predicado long(l,r), donde L es una lista de listas y R es una lista con las longitudes de aquellas listas de L, en las que el primer y el último elemento coinciden.?- long([[a,b],[d,e,d],[c,e,f,g],[g,a,c,g]],r). R = [3,4]?- long([[c,b,a],[a,b,b,d],[c,b]],r). R = []?- long([[d,d],[],[b]],r). R = [2,1] Ejercicio 23: Defina el predicado conv el cual toma como primer argumento una lista de estructuras par(x, Y ) (donde X es una letra e Y un entero), como segundo argumento una lista L de números que representan posiciones en la primera lista. El resultado será una lista de letras correspondientes a las estructuras par(x, Y ) que indican las posiciones de L, y que se obtiene de repetir la letra X tantas veces como lo indique el entero Y.?- conv([par(c,2), par(b,3), par(a,1), par(f,2)],[2,4],r). R = [b,b,b,f,f]?- conv([par(e,5)], [1], [e,e,e,e,e]). yes Ejercicio 24: Suponga que los votos recibidos por los distintos candidatos son almacenados en una lista de estructuras r(c,l) donde c es la identificación del candidato y L es una la lista de enteros que representa los votos de un candidato particular recibidos en las distintas mesas. Defina el predicado porcentajes, el cual dado como primer argumento una lista con el significado especificado previamente, obtiene en su segundo argumento un estructura p(c,p) donde C es la identificación del candidato que obtuvo mayor porcentaje de votos y P es el porcentaje obtenido. Cada porcentaje se obtiene calculando la relación entre la suma de los votos obtenidos por cada candidato, y el total de los votos.?- porcentajes([r(c1,[10,25]),r(c2,[12,13]),r(c3,[25,15])],r). R = p(c3,0.4)?- porcentajes([r(c1,[2,3]),r(c2,[4,6]),r(c3,[1,2,2])],r). R = p(c2,0.50)

8 Ejercicios Complementarios Ejercicio 1: Suponga una lista de enteros L que contiene una estructura par(x,y), en cualquier posición de la lista. Defina el predicado predi que toma como primer argumento una lista con el formato definido más arriba. Este predicado devolverá en su segundo argumento un entero Z tal que: Si X <= Y en la estructura par(x,y), el Z será la suma de los elementos que están antes y después de la estructura. Si, por el contrario, X > Y el Z será la resta de la suma de los elementos que están antes de la estructura y la suma de los que están después de la estructura.?- predi([3,8,par(2,3),4,5,1],r). R = 21?- predi([par(3,2),4,5,1],r). R = -10 Ejercicio 2: Defina el predicado ejecutar el cual toma como primer argumento una lista Lfun de estructuras. Los elementos de Lfun son estructuras de 2 tipos: a) suma(e) indicando que se debe sumar el valor E y b) resta(e) indicando que se debe restar el valor E. Como segundo argumento una lista L con posiciones de la primera lista, en su tercer argumento un valor inicial N y en el cuarto argumento devuelve una estructura resu(r), donde el R es el resultado de ejecutar las operaciones, que se encuentran en las posiciones de la lista del segundo argumento utilizando como valor inicial el valor de N.?- ejecutar([suma(5), resta(6),suma(7), suma(8)],[4,2],2,r). R = resu(4)?- ejecutar([suma(1), resta(8),suma(5)],[1,3,1],5,r). R = resu(12)

9 Ejercicio 3: Suponga que representamos un árbol binario utilizando la convención de que un árbol vacío se representa con el símbolo nil y que un árbol no vacío se define recursivamente mediante una estructura de tres componentes arbol(n,si,sd), donde N es un entero que representa la información que contiene el nodo y SI y SD son los subárboles izquierdo y derecho del árbol los cuales también son árboles binarios. Ejemplo: el siguiente árbol binario Se representa con la estructura arbol(3,arbol(2,nil,nil),arbol(6,nil,arbol(8,nil,nil))). Codifique en Prolog los siguientes predicados: 1. Defina el predicado cantnodos que retorna el número de nodos del árbol (cantidad de árboles no vacíos).?- cantnodos(arbol(3,arbol(2,nil,nil),arbol(6,nil,arbol(8,nil,nil))), R). R = 4 2. Defina el predicado inorden que devuelve una lista, con los nodos obtenidos del recorrido inorden de un árbol binario ordenado. Este recorrido se realiza en el siguiente orden: nodo izquierdo, nodo raíz y nodo derecho. Ejemplo:?- inorden(arbol(3,arbol(2,nil,nil),arbol(6,nil,arbol(8,nil,nil))), R). R = [2,3,6,8]

ESTRUCTURAS DE DATOS Y ALGORITMOS

ESTRUCTURAS DE DATOS Y ALGORITMOS ESTRUCTURAS DE DATOS Y ALGORITMOS CURSO 2009 PRÁCTICO 8 Nota: al igual que en los prácticos 6 y 7, en los problemas que siguen se usarán los tipos lista y árbol binario, como tipos abstractos, cada uno

Más detalles

A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES

A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES Capitulo 5. Arboles 1. Al recorrer el siguiente árbol en se visitan más nodos para llegar al número 38. Justifique su respuesta mostrando cada uno de los recorridos. Tipo de Recorrido Recorrido A) PREORDEN

Más detalles

PRÁCTICO N o 7. Lenguaje de Diseño (Tercera Parte): Modularización. Ejercicio 1: Teniendo en cuenta la resolución del ejercicio 7 del Práctico 6:

PRÁCTICO N o 7. Lenguaje de Diseño (Tercera Parte): Modularización. Ejercicio 1: Teniendo en cuenta la resolución del ejercicio 7 del Práctico 6: PRÁCTICO N o 7 Lenguaje de Diseño (Tercera Parte) Modularización Ejercicio 1 Teniendo en cuenta la resolución del ejercicio 7 del Práctico 6 a Analice su solución identificando las distintas tareas que

Más detalles

El lenguaje Prolog. Prolog es un lenguaje Declarativo, a diferencia de otros lenguajes que son orientados a objetos o procedurales

El lenguaje Prolog. Prolog es un lenguaje Declarativo, a diferencia de otros lenguajes que son orientados a objetos o procedurales II.4 Prolog El lenguaje Prolog Prolog es un lenguaje Declarativo, a diferencia de otros lenguajes que son orientados a objetos o procedurales Creador: Robert Kowalski Algoritmo = Lógica + Control Aspectos

Más detalles

Versión Iterativa de recuperar en un. Ejercicios Tema 11. Implementa una versión del método recuperar iterativa con la siguiente especificación:

Versión Iterativa de recuperar en un. Ejercicios Tema 11. Implementa una versión del método recuperar iterativa con la siguiente especificación: Versión Iterativa de recuperar en un ABB Ejercicios Tema 11 Ejercicios Adaptados de Apuntes y Exámenes de EDA Germán Moltó Martínez gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica

Más detalles

Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez

Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez Análisis y Complejidad de Algoritmos Arboles Binarios Arturo Díaz Pérez Arboles Definiciones Recorridos Arboles Binarios Profundidad y Número de Nodos Arboles-1 Arbol Un árbol es una colección de elementos,

Más detalles

Estructura de datos y de la información Boletín de problemas - Tema 10

Estructura de datos y de la información Boletín de problemas - Tema 10 Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico

Más detalles

Algoritmos y Programación II Curso 2006

Algoritmos y Programación II Curso 2006 Arboles: Un árbol es una colección de elementos, llamados nodos, uno de los cuales se distingue con el nombre de raíz. Los nodos mantienen entre ellos una relación que define una estructura jerárquica

Más detalles

Ejercicios Scheme. Para cada función escriba su contrato, descripción, ejemplos y los tests necesarios, antes de su implementación.

Ejercicios Scheme. Para cada función escriba su contrato, descripción, ejemplos y los tests necesarios, antes de su implementación. Ejercicios Scheme Para cada función escriba su contrato, descripción, ejemplos y los tests necesarios, antes de su implementación. 1 Para soltar la mano 1. Represente la siguiente expresión en Scheme:

Más detalles

Estructura de Datos Unidad 6: ARBOLES

Estructura de Datos Unidad 6: ARBOLES Estructura de Datos Unidad 6: ARBOLES A. CONCEPTO DE ARBOL B. TIPOS DE ARBOL C. ARBOL BINARIO D. IMPLEMENTACION DE UN ARBOL BINARIO E. PROYECTO Introducción En ciencias de la informática, un árbol es una

Más detalles

Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que:

Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que: Instituto Universitario de Tecnología Industrial Rodolfo Loero Arismendi I.U.T.I.R.L.A. ÁRBOLES Sección 3DA Asignatura: Estructura de Datos Lenguaje (C). Ciudad Bolívar _ abril_ 2006. Introducción El siguiente

Más detalles

Programación 2 Práctico 9 - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario

Programación 2 Práctico 9 - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario Práctico - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario Objetivos Trabajar con los tipos abstractos de datos Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario. Desarrollar y analizar

Más detalles

Práctica N o 5 - Programación Lógica

Práctica N o 5 - Programación Lógica Práctica N o 5 - Programación Lógica Para resolver esta práctica, recomendamos usar el SWI-Prolog, de distribución gratuita, que puede bajarse de http://www.swi-prolog.org. No utilizar cut (!) ni predicados

Más detalles

GRAMATICAS LIBRES DEL CONTEXTO

GRAMATICAS LIBRES DEL CONTEXTO GRMTICS LIBRES DEL CONTEXTO Estas gramáticas, conocidas también como gramáticas de tipo 2 o gramáticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto.

Más detalles

ESTRUCTURA DE DATOS. ABB Arboles de Búsqueda Binaria

ESTRUCTURA DE DATOS. ABB Arboles de Búsqueda Binaria ESTRUCTURA DE DATOS ABB Arboles de Búsqueda Binaria ÁRBOLES BINARIOS Hasta ahora nos hemos dedicado a estudiar TAD que de una u otra forma eran de naturaleza lineal, o unidimensional. En los tipos abstractos

Más detalles

ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES

ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES ÁRBOL Un árbol es un grafo no dirigido, conexo, sin ciclos (acíclico), y que no contiene aristas

Más detalles

Teoría de los Lenguajes de Programación Práctica curso

Teoría de los Lenguajes de Programación Práctica curso Teoría de los Lenguajes de Programación Práctica curso 2013-2014 Índice 1. Introducción: Sumas...3 2. Enunciado de la práctica...3 2.1 Método de Resolución...3 Generación de los nodos...4 Función Principal...5

Más detalles

Cómo Implementar una Ontología? Prolog Datalog Description Logic

Cómo Implementar una Ontología? Prolog Datalog Description Logic Cómo Implementar una Ontología? Prolog Datalog Description Logic Reglas como LPO CláusulaHorn: Una cláusula con a lo sumo un literal positivo Cláusulas: Subconjuntos de LPO con la siguiente forma: x 1,.,x

Más detalles

Primera práctica de Temas Avanzados en Ingeniería Informática (I)-Lógica Curso

Primera práctica de Temas Avanzados en Ingeniería Informática (I)-Lógica Curso Primera práctica de Temas Avanzados en Ingeniería Informática (I)-Lógica Curso 2005-2006 1. Fecha de entrega La fecha límite de entrega será el 13 de Marzo (Lunes) hasta las 20:00 horas. 2. Objetivo El

Más detalles

INTELIGENCIA ARTIFICIAL II

INTELIGENCIA ARTIFICIAL II ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ MANUEL FÉLIX LÓPEZ CARRERA INFORMÁTICA SEMESTRE SÉPTIMO PERIODO ABR. /SEP.-2015 INTELIGENCIA ARTIFICIAL II TEMA: RESUMEN#6: INTRODUCCIÓN A PRÓLOG AUTORA:

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 Informática E.T.S.I. Informática Enero de 2008 Tema 5. Programación lógica con árboles Ejercicios Ejercicio 1. Dada la siguiente representación

Más detalles

Abstracción de procedimientos

Abstracción de procedimientos Abstracción de procedimientos 1.- Consideremos ABN (árboles binarios numéricos) sin nodos repetidos. Denimos los siguientes conceptos: Se pide: Dados dos ABN, A y B, decimos que B es SUBARBOL PRINCIPAL

Más detalles

Temas Avanzados en Ingeniería Informática (I)-Lógica Curso

Temas Avanzados en Ingeniería Informática (I)-Lógica Curso Temas Avanzados en Ingeniería Informática (I)-Lógica Curso 209-2010 1. Fecha de entrega La fecha límite de entrega será el 22 de Marzo (Lunes) hasta las 20:00 horas. 2. Objetivo El objetivo de esta práctica

Más detalles

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS TEMA 4. - La Estructura de datos Árbol 4.1. Árboles, definiciones 4.2 Árboles binarios y su representación 4.3 Operaciones básicas de un árbol binario

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Introducción Un árbol es una estructura no lineal en la que cada nodo puede apuntar a uno o varios nodos. A B C D E F G H I J K Clasificación con respecto a su relación: Nodo hijo: cualquiera de los nodos

Más detalles

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Programación MODULAR: Subalgoritmos - funciones y procedimientos Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas

Más detalles

Para la resolución de los ejercicios, se dispone de una implementación de árbol binario a través de la clase BinTree con la siguiente especificación.

Para la resolución de los ejercicios, se dispone de una implementación de árbol binario a través de la clase BinTree con la siguiente especificación. Para la resolución de los ejercicios, se dispone de una implementación de árbol binario a través de la clase BinTree con la siguiente especificación. public class BinTree { public BTNode root; // la raiz

Más detalles

Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:

Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación: Clase teórica 2 Algoritmos en C Página 1 de 6 TIPOS DE DATOS Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación: Por el momento nuestro

Más detalles

LABORATORIO 5 FUNCIONES

LABORATORIO 5 FUNCIONES LABORATORIO 5 FUNCIONES 1 OBJETIVOS Al finalizar esta actividad, serás capaz de: Utilizar en la función main funciones matemáticas predefinidas. Entender que es posible aislar subtareas o subcálculos dentro

Más detalles

Práctica N o 4 - Programación Lógica

Práctica N o 4 - Programación Lógica Práctica N o 4 - Programación Lógica Para resolver esta práctica, recomendamos usar el SWI-Prolog, de distribución gratuita, que puede bajarse de http://www.swi-prolog.org. No utilizar cut (!) ni predicados

Más detalles

Segundo parcial de Programación 2

Segundo parcial de Programación 2 Generalidades: Segundo parcial de Programación 2 a. La prueba es individual y sin material. b. La duración es 3hs. c. Sólo se contestan dudas acerca de la letra. 8 de Julio de 2016 d. Escriba las hojas

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Facultad de Informática Universidad de A Coruña Table of Contents Árboles binarios de búsqueda 1 Árboles binarios de búsqueda 2 Table of Contents Árboles

Más detalles

Tema 4.- Recursión e iteración

Tema 4.- Recursión e iteración 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

Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades:

Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades: Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades: La prueba es individual y sin material. La duración es 3 horas.

Más detalles

Curso Básico de Computación

Curso Básico de Computación CINVESTAV IPN México City 2010 1 Preliminares 1.1 Cadenas, alfabetos y lenguajes Un símbolo es un ente abstracto que no se puede definir formalmente. Letras o dígitos son ejemplos

Más detalles

CAPÍTULO 2. ÁRBOLES 2.0. CONCEPTOS GENERALES

CAPÍTULO 2. ÁRBOLES 2.0. CONCEPTOS GENERALES CAPÍTULO 2. ÁRBOLES 2.0. CONCEPTOS GENERALES Los árboles (en general) se utilizan para representar fórmulas algebraicas, para organizar objetos en orden de tal forma que las búsquedas sean muy eficientes

Más detalles

Ejercicios del Tema 3 Estructuras jerárquicas: Árboles

Ejercicios del Tema 3 Estructuras jerárquicas: Árboles ALGORITMOS Y ESTRUCTURAS DE DATOS II Ingeniería Técnica en Informática de Gestión Ingeniería Técnica en Informática de Sistemas Ejercicios del Tema 3 Estructuras jeráruicas: Árboles Árboles n-arios 1.

Más detalles

Temas Avanzados en Ingeniería Informática (I)-Lógica Curso

Temas Avanzados en Ingeniería Informática (I)-Lógica Curso 1. Fecha de entrega Temas Avanzados en Ingeniería Informática (I)-Lógica Curso 2011-2012 La fecha límite de entrega será el 22 de Marzo (jueves) hasta las 20:00 horas. 2. Objetivo El objetivo de esta práctica

Más detalles

Cadenas de caracteres

Cadenas de caracteres Trabajo práctico Nº 6 (Trabajos con cadenas de caracteres y estructuras) Realiza el programa en Lenguaje C correspondiente. Cadenas de caracteres 1- Construir una función PASSWORD que pida por teclado

Más detalles

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona

Más detalles

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010 Estructura de Datos Árboles Binarios de Búsqueda ABB Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 20 1 Arboles de Búsqueda Binaria El árbol binario de búsqueda (ABB) toma su nombre del

Más detalles

Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1.

Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1. Ejercicios Resueltos del Práctico 4 Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1. 1 2 struct NodoLista { 3 int elem ; 4 NodoLista * sig ;

Más detalles

Programación lógica con árboles. Introducción. Contenido. Introducción. 1. Programación con árboles 2. Otras estructuras arbóreas

Programación lógica con árboles. Introducción. Contenido. Introducción. 1. Programación con árboles 2. Otras estructuras arbóreas Contenido 1. Programación con árboles 2. Otras estructuras arbóreas Ingeniería Informática Ingeniería Técnica en Informática Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga

Más detalles

Tema 6: Estructuras de datos recursivas

Tema 6: Estructuras de datos recursivas Tema 6: Estructuras de datos recursivas Índice 1 Listas jerárquicas...2 2 Árboles binarios... 4 3 Árboles genéricos...7 4 Referencias...10 1. Listas jerárquicas Las listas tienen la propiedad de la clausura

Más detalles

Guía 2: Listas, recursión e inducción

Guía 2: Listas, recursión e inducción Introducción a los Algoritmos - 2do cuatrimestre 2014 Guía 2: Listas, recursión e inducción Docentes: Walter Alini, Luciana Benotti En esta guía comenzaremos a trabajar con listas Para familiarizarnos

Más detalles

95.12 Algoritmos y Programación II Práctica 7: árboles

95.12 Algoritmos y Programación II Práctica 7: árboles Notas preliminares 95.12 Algoritmos y Programación II Práctica 7: árboles El objetivo de esta práctica es introducir distintas clases de estructuras de datos arbóreas y algoritmos para manipularlas. Los

Más detalles

Introducción a los árboles. Lección 11

Introducción a los árboles. Lección 11 Introducción a los árboles Lección 11 Árbol: Conjunto de elementos de un mismo tipo, denominados nodos, que pueden representarse en un grafo no orientado, conexo y acíclico, en el que existe un vértice

Más detalles

Programación Estructuras Arborescentes

Programación Estructuras Arborescentes Programación 2 4 - Estructuras Arborescentes 1 Definición La recursión puede ser utilizada para la definición de estructuras realmente sofisticadas. Una estructura árbol (árbol general o finitario) con

Más detalles

Variables, expresiones y sentencias

Variables, expresiones y sentencias Introducción a la Programación Pontificia Universidad Javeriana Generado con LAT E X Febrero de 2010 Recorderis Recorderis Algoritmo Colección de instrucciones junto con un orden en el cual deben ser ejecutados.

Más detalles

Lógica: Algoritmo: Archivo: Base de datos: Bit:

Lógica: Algoritmo: Archivo: Base de datos: Bit: Lógica: Algoritmo: Archivo: Base de datos: Bit: 1 LÓGICA: Es una secuencia de operaciones realizadas por el hardware o por el software. Lógica del hardware, Son los circuitos y Chips que realizan las operaciones

Más detalles

Árboles generales. Un árbol es una estructura no lineal acíclica utilizada para organizar información de forma eficiente. La definición es recursiva:

Árboles generales. Un árbol es una estructura no lineal acíclica utilizada para organizar información de forma eficiente. La definición es recursiva: Capítulo 9. Programación con Árboles 107 Árboles Árboles generales Un árbol es una estructura no lineal acíclica utilizada para organizar información de forma eficiente. La definición es recursiva: Un

Más detalles

PROgramación LOGica PROLOG. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional

PROgramación LOGica PROLOG. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional PROgramación LOGica PROLOG Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional Dónde bajar? Strawberry PROLOG: www.dobrev.com PROLOG -> PROgramming in LOGig Paradigma -> El lenguaje

Más detalles

Prof. María Alejandra Quintero. Informática Año

Prof. María Alejandra Quintero. Informática Año Prof. María Alejandra Quintero Informática Año 2014-2015 Es la acción de escribir programas de computación con el objetivo de resolver un determinado problema. Implica escribir instrucciones para indicarle

Más detalles

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos

Más detalles

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 17 de Febrero de 2005 Alumno: Grupo: Prolog Ejercicio 1 (a)(2 pts.) Realiza el árbol de búsqueda

Más detalles

Curso Básico de Computación Preliminares

Curso Básico de Computación Preliminares Curso Básico de Computación Preliminares Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN 2010 Curso Básico de Computación (Matemáticas) Preliminares 2010 1 / 11 1 Preliminares

Más detalles

La máxima distancia entre dos nodos de un árbol está dada por alguna de las 3 siguientes: La máxima distancia entre dos nodos del subárbol izquierdo.

La máxima distancia entre dos nodos de un árbol está dada por alguna de las 3 siguientes: La máxima distancia entre dos nodos del subárbol izquierdo. Dado un árbol binario cualquiera, calcular la máxima distancia entre dos nodos. El algoritmo debe funcionar en orden de complejidad, siendo n la cantidad de nodos. Idea del algoritmo: La máxima distancia

Más detalles

Programación II Sesión 4: Inmersión, desplegado-plegado, transformación recursivo-iterativo

Programación II Sesión 4: Inmersión, desplegado-plegado, transformación recursivo-iterativo Programación II Sesión 4: Inmersión, desplegado-plegado, transformación recursivo-iterativo Diego R. Llanos Ferraris UNED, Centro Asociado de Palencia Nota: Estos apuntes son la guía utilizada por el Profesor

Más detalles

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices.

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices. ÁRBOLES Árboles Un grafo conectado que no contiene circuitos simples. Utilizados desde 1857, por el matemático Ingles Arthur Cayley para contar ciertos tipos de componentes químicos. Un árbol es un grafo

Más detalles

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios

Más detalles

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Práctico 4 Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Clasificación de ejercicios: (I) Imprescindibles (R) Recomendados (C) Complementarios Árboles balanceados (AVL)

Más detalles

Árboles y esquemas algorítmicos. Tema III

Árboles y esquemas algorítmicos. Tema III Árboles y esquemas algorítmicos Tema III Bibliografía Tema III (lecciones 15 a 22) del libro Campos Laclaustra, J.: Estructuras de Datos y Algoritmos, Prensas Universitarias de Zaragoza, Colección Textos

Más detalles

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down).

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down). PLANTEMAIENTO DEL PROBLEMA Identificación de entradas y salidas Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a la resolución de un problema dado y

Más detalles

UN CONJUNTO QUEDA DETERMINADO POR SUS ELEMENTOS QUE PERTENECEN A ÉL.. 2) PARA QUE UN CONJUNTO EXISTA ES NECESARIO QUE SUS ELEMENTOS

UN CONJUNTO QUEDA DETERMINADO POR SUS ELEMENTOS QUE PERTENECEN A ÉL.. 2) PARA QUE UN CONJUNTO EXISTA ES NECESARIO QUE SUS ELEMENTOS CONJUNTOS La palabra CONJUNTO nos remite, intuitivamente a una agrupación o colección de objetos. Sin embargo para que una colección de objetos sea un conjunto, deberá cumplir algunas condiciones: UN CONJUNTO

Más detalles

Tema 09: TAD Árbol binario

Tema 09: TAD Árbol binario Tema 09: TAD Árbol binario M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Introducción El árbol binario

Más detalles

Programación de sistemas Árboles

Programación de sistemas Árboles Programación de sistemas Árboles Departamento de Ingeniería Telemática 1 Contenidos Concepto de árbol Terminología Implementación Casos especiales Árboles binarios de búsqueda Montículos (heaps) 2 Concepto

Más detalles

LENGUAJES Y GRAMÁTICAS

LENGUAJES Y GRAMÁTICAS LENGUAJES Y GRAMÁTICAS Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 20 de septiembre de 2008 Contenido Lenguajes y Gramáticas Gramáticas Gramáticas

Más detalles

Implementación de diccionarios sobre Trie en C++

Implementación de diccionarios sobre Trie en C++ Implementación de diccionarios sobre Trie en C++ Algoritmos y Estructuras de Datos II 2. do cuatrimestre de 2016 Introducción Vamos a implementar una interfaz de diccionario en C++ La representación interna

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

Introducción a la programación en C eme - Escuela Universitaria de Música

Introducción a la programación en C eme - Escuela Universitaria de Música Introducción a la programación en C eme - Escuela Universitaria de Música Hoja de ejercicios Nro 3 Ejercicio 1 Considere la siguiente secuencia de 13 números, [0 5 10 2 7 12 4 9 1 6 11 3 8] La regla de

Más detalles

Generación de Código Intermedio

Generación de Código Intermedio Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede

Más detalles

Expresión C. numérico Factor literal 9abc 9 abc

Expresión C. numérico Factor literal 9abc 9 abc GUÍA DE REFUERZO DE ÁLGEBRA Un término algebraico es el producto de una o más variables (llamado factor literal) y una constante literal o numérica (llamada coeficiente). Ejemplos: 3xy ; 45 ; m Signo -

Más detalles

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales.

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. Los nodos terminales (nodos hojas) están rotulados por los

Más detalles

1. Cuál es el número total máximo de nodos que tiene un árbol binario de N niveles? a. N 2-1 b. 2 N+1-1 c. 2 N d. 2 N+1 i.

1. Cuál es el número total máximo de nodos que tiene un árbol binario de N niveles? a. N 2-1 b. 2 N+1-1 c. 2 N d. 2 N+1 i. 1. Cuál es el número total máximo de nodos que tiene un árbol binario de N niveles? a. N - 1 b. N1-1 c. N d. N1 i.. Dado el siguiente árbol binario: raiz Q K T D M R Y B J P W N a. Cuáles son los antecesores

Más detalles

ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES TEMAS Recorrido de un árbol Máximo y mínimo Búsqueda de un elemento Borrado de un nodo 3 Características ARBOLES - CONCEPTOS Cada elemento del árbol

Más detalles

Sistemas Inteligentes de Gestión. Relación de ejercicios PROLOG. Carlos Cubero & Fernando Berzal

Sistemas Inteligentes de Gestión. Relación de ejercicios PROLOG. Carlos Cubero & Fernando Berzal Sistemas Inteligentes de Gestión Relación de ejercicios PROLOG Juan Carlos Cubero & Fernando Berzal ENTREGA DE LA PRÁCTICA 1_ejemplos.txt 2_ejemplos.pl 2_ejemplos.txt 3_ejemplos.txt 4_ejemplos.pl 5_genealogia.pl

Más detalles

Optimizador de rol para jugadores de lol por medio de árbol binario y algoritmo. Introducción.

Optimizador de rol para jugadores de lol por medio de árbol binario y algoritmo. Introducción. Optimizador de rol para jugadores de lol por medio de árbol binario y algoritmo Introducción. A la hora de empezar a jugar el MOBA lol (league of legends) [1], se tienen que aprender normas básicas a la

Más detalles

Estructuras de Datos y Algoritmos

Estructuras de Datos y Algoritmos Estructuras de Datos y Algoritmos Tema 5.1. Árboles. Árboles binarios y generales Prof. Dr. P. Javier Herrera Contenido 1. Introducción 2. Terminología 3. Árboles binarios 4. Árboles generales Tema 5.1.

Más detalles

Examen de Traductores, Intérpretes y Compiladores. Convocatoria ordinaria de Junio de er Curso de I.T. Informática de Sistemas.

Examen de Traductores, Intérpretes y Compiladores. Convocatoria ordinaria de Junio de er Curso de I.T. Informática de Sistemas. Examen de Traductores, Intérpretes y Compiladores. Convocatoria ordinaria de Junio de 2001 3 er Curso de I.T. Informática de Sistemas. Apellidos, Nombre: Calificación: PRÁCTICA Con el presente problema,

Más detalles

Introducción a Árboles Árboles Binarios

Introducción a Árboles Árboles Binarios Introducción a Árboles Árboles Binarios Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Introducción a Árboles Estructuras hasta ahora Estructuras

Más detalles

Tema: Métodos de Ordenamiento. Parte 3.

Tema: Métodos de Ordenamiento. Parte 3. Programación IV. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Métodos de Ordenamiento. Parte 3. Objetivos Específicos Identificar la estructura de algunos algoritmos

Más detalles

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R. Conjuntos Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por se entiende que a pertenece a R. a R Normalmente, podremos definir a un conjunto de dos maneras: Por

Más detalles

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo: Cuestionario Modulo 1.1 GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo: 1001 0110. 2. qué es Dato? Definición: Es toda

Más detalles

Máquinas de estado finito y expresiones regulares

Máquinas de estado finito y expresiones regulares Capítulo 3 Máquinas de estado finito y expresiones regulares En este tema definiremos y estudiaremos máquinas de estado finito, llamadas también máquinas de estado finito secuenciales o autómatas finitos.

Más detalles

Árboles n-arios de búsqueda. Lección 16

Árboles n-arios de búsqueda. Lección 16 Árboles n-arios de búsqueda Lección 16 Definiciones Los árboles n-arios de búsqueda (árboles de búsqueda múltiples o multicamino) son árboles de grado n definidos de la forma: si el árbol A es vacío, entonces

Más detalles

1.2 Hechos. Ejemplo: La capital de Francia es París. En Prolog se escribe capital(francia,parís). En general, la sintaxis es

1.2 Hechos. Ejemplo: La capital de Francia es París. En Prolog se escribe capital(francia,parís). En general, la sintaxis es Hechos 1.2 Hechos Un hecho, en PROLOG, es una relación entre objetos. Ejemplo: La capital de Francia es París. En Prolog se escribe capital(francia,parís). En general, la sintaxis es relacion(objeto, objeto,...).

Más detalles

5.3 Tipos de Datos en Prolog

5.3 Tipos de Datos en Prolog 5.3 Tipos de Datos en Prolog Objetos de Datos en Prolog Objetos de datos simples Objetos estructurados Calce de operaciones fundamentales sobre objetos 1 Tipos de Objetos de Datos Objetos de datos Objetos

Más detalles

5.3 Tipos de Datos en Prolog

5.3 Tipos de Datos en Prolog 5.3 Tipos de Datos en Prolog Objetos de Datos en Prolog Objetos de datos simples Objetos estructurados Calce de operaciones fundamentales sobre objetos Tipos de Objetos de Datos Objetos de datos Objetos

Más detalles

Práctica N o 1 - Programación Funcional

Práctica N o 1 - Programación Funcional Práctica N o 1 - Programación Funcional Para resolver esta práctica, recomendamos usar el Hugs 98, de distribución gratuita, que puede bajarse de http://www.haskell.org/hugs/. Ejercicio 1 Dado el siguiente

Más detalles

GUÍA DE TRABAJO Tecnología en Sistemas de Información

GUÍA DE TRABAJO Tecnología en Sistemas de Información 1. IDENTIFICACIÓN Asignatura Lógica y Programación Guía No. 3 Área Básica de la Ingeniería Nivel II Código LPI24 Pensum 10 Correquisito(s) Prerrequisito(s) Créditos 4 TPS 4 TIS 8 TPT 64 TIT 96 TRABAJO

Más detalles

Ejercicios sobre recursividad

Ejercicios sobre recursividad Ejercicios sobre recursividad 11 de febrero de 2003 1. Implementa una función recursiva que devuelva la suma de los dígitos de un número natural, que se le pasa por parámetro. 2. Implementa una función

Más detalles

Listas en Prolog. Capítulo. Listas como sujetos

Listas en Prolog. Capítulo. Listas como sujetos Capítulo 5 Listas en Prolog Este capítulo introduce el concepto de lista, un tipo de dato de gran influencia dentro de la inteligencia artificial. Se comienza con una introducción a listas en Prolog y

Más detalles

TECNOLOGIAS PARA LA INTEGRACION DE SOLUCIONES. Facultad de Estadística e Informática

TECNOLOGIAS PARA LA INTEGRACION DE SOLUCIONES. Facultad de Estadística e Informática TECNOLOGIAS PARA LA INTEGRACION DE SOLUCIONES Clase 12 Tema 2: Tecnologías XML XPath Bibliografía A. Rodríguez, Publicación en Internet y Tecnología XML, Alfa-Omega Ra-Ma, Madrid. España, 2004 World Wide

Más detalles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz

Más detalles

Números reales Conceptos básicos Algunas propiedades

Números reales Conceptos básicos Algunas propiedades Números reales Conceptos básicos Algunas propiedades En álgebra es esencial manejar símbolos con objeto de transformar o reducir expresiones algebraicas y resolver ecuaciones algebraicas. Debido a que

Más detalles