Programación Declarativa

Documentos relacionados
Lenguajes de Inteligencia Artificial Segundo curso. Primer cuatrimestre

PROCESADORES DE LENGUAJE. Hoja de ejercicios de FLEX

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

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Tema 3.- Predicados y sentencias condicionales

FLORIDA Secundaria. 1º BACH MATEMÁTICAS CCSS -1- BLOQUE ESTADÍSTICA: ESTADÍSTICA VARIABLE UNIDIMENSIONAL. Estadística variable unidimensional

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

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

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

TEMA 3 POTENCIAS Y RAÍCES

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Representación Gráfica (recta numérica)

Curso º ESO. UNIDADES 6 Y 7: EXPRESIONES ALGEBRAICAS Y ECUACIONES Departamento de Matemáticas IES Fray Bartolomé de las Casas de Morón

PRÁCTICA 1.BASE DE DATOS ACCESS

FUNCIONES Y FÓRMULAS FUNCIONES

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

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

Profesor(a): Ing. Miriam Cerón Brito

Mó duló 04: Á lgebra Elemental I

RECUPERACIÓN DE EXCEL TICO

Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 4: Diseñador de Consultas (+ info)

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

Una población es el conjunto de todos los elementos a los que se somete a un estudio estadístico.

MATEMÁTICAS UNIDAD 4 GRADO 6º. Números naturales

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

Para convertir un decimal a un binario se necesita la siguiente tabla.

TEMA 1. Números Reales. Teoría. Matemáticas

LENGUAJE DE PROGRAMACION UNO.

Actividad colaborativa Ejercicios de programación Programación básica C++

Redes Semánticas. IIMAS Inteligencia Artificial. Alumno: Vicente Iván Sánchez Carmona Profesora: Dr. Ana Lilia Laureano

1. ESQUEMA - RESUMEN Página EJERCICIOS DE INICIACIÓN Página EJERCICIOS DE DESARROLLO Página EJERCICIOS DE REFUERZO Página 25

2).- Nombre de función. Para obtener una lista de funciones disponibles, haga clic en una celda y presione MAYÚSC+F3.

Uniboyacá GUÍA DE APRENDIZAJE NO 7. Psicología e Ingeniería Ambiental

UNIDAD 12: ESTADISTICA. OBJETIVOS

GRAMATICAS LIBRES DEL CONTEXTO

U.D.1: Análisis estadístico de una variable Consideraciones iniciales: Propuesta: 1.1 Distribución de frecuencias. Variables Cualitativas: Ejemplo

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

Práctica 1 de Excel (Curso )

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

Sistemas Numéricos Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 5: Informes

Informática y Computación III Guía de Estudio (50 reactivos)

ƒ : {(1, 4), (2, 5), (3, 6), (4, 7)}.

Estructuras de datos Árboles B

Guía Nº 1(B) ALGEBRA

Operaciones básicas con hojas de cálculo

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

NÚMEROS ENTEROS. 2º. Representa en una recta numérica los números: (+4), (-3), (0), (+7), (-2), (+2) y luego escríbelos de forma ordenada.

HOJA DE REPASO: FRACCIONES

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

CORPORACION UNIFICADA NACIONAL DE EDUCACION SUPERIOR CUN DEPARTAMENTO DE CIENCIAS BASICAS: MATEMATICAS

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACION DE COMPUTACION

Capítulo 6. Relaciones. Continuar

COLEGIO ALEXANDER DUL

MATEMÁTICAS 5. º CURSO UNIDAD 1: SISTEMAS DE NUMERACIÓN

sumas = 58 = 48 = 73 = 59 =

LISTADO SUPLENCIAS PROGRAMA SICUE

1.- Para cada uno de los siguientes problemas escribir el diagrama de flujo y el pseudocódigo de un programa que lo resuelva:

Guía del estudiante. Actividad 1. Si la base de un triángulo es b y su altura es h: 1. Escriba la expresión algebraica que representa su área:

TEMA 7 PROBLEMAS DE ECUACIONES DE PRIMER GRADO

Pensamiento y sus procesos básicos

Una base de datos de Access puede estar conformada por varios objetos, los más comunes son los siguientes:

(b) Cuál es la desventaja principal de una heurística con aprendizaje? es más informada que otra función heurística optimista h 2 *?

Medidas de Tendencia Central

Los Conjuntos de Números

TEORIA DE NUMEROS (I) REGLAS DE DIVISIBILIDAD

Recursos. Temas. Tiempo. Evaluación. Competencias:

CUADRO SINÓPTICO PLANIFICACIÓN ANUAL Matemática 1 Básico

Programación PHP. orientada a formularios DISEÑOS CURRICULARES CON ENFOQUE POR COMPETENCIAS LABORALES

Tema Árboles generales. 9.2 Árboles binarios 9.3 Árboles de búsqueda

UNIVERSIDAD MAYOR DE SAN SIMÓN FACULTAD DE CIENCIAS Y TECNOLOGÍA INGENIERÍA DE SISTEMAS BÚSQUEDA PRIMERO EL MEJOR

UNIVERSIDAD TECNOLÓGICA DE BAHÍA DE BANDERAS PORTAFOLIO DE ACTIVIDADES DE APRENDIZAJE

Representación de números enteros: el convenio exceso Z

Paso 1: Autómata. A 1 sin estados inútiles, que reconoce el lenguaje denotado por a a* b*

Instituto Tecnológico de Celaya

Algoritmos y estructuras de datos

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

UNIVERSIDAD DON BOSCO DEPARTAMENTO DE CIENCIAS BÁSICAS LABORATORIO DE FÍSICA ASIGNATURA: ELECTRICIDAD Y MAGNETISMO

PLAN DE REFUERZO NOMBRE ESTUDIANTE: Nº

El curso está dividido en tres evaluaciones, de acuerdo con la programación general del Colegio, temporalizados así:

6) Introduce en la tabla USUARIOS los siguientes registros:

ESTADÍSTICA APLICADA. TEMA 1. ESTADÍSTICA DESCRIPTIVA

Normas Estatales Fundamentales Comunes

CENTRO UNIVERSITARIO MONTEJO A.C. SECUNDARIA Temario Matemáticas 1

PROGRAMACION ÁREA DE MATEMÁTICAS QUINTO DE PRIMARIA TEMA 1: LOS NÚMEROS NATURALES CRITERIOS DE EVALUACIÓN: MÍNIMO EXIGIBLE: EVALUACIÓN:

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

UNIDAD 1 Fracciones y decimales

EJERCICIOS PROPUESTOS. Escribe las expresiones algebraicas correspondientes. a) Tres números consecutivos. b) Tres números pares consecutivos.

BOLETÍN 5: Algoritmos II

INSTITUTO POLITECNICO NACIONAL CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS " GONZALO VAZQUEZ VELA "

FAMILIOGRAMA-GENOGRAMA

Tema: Clases y Objetos en C#. Parte II.

COLEGIO AUGUSTO WALTE INFORMACIÓN DE ASIGNATURA I PERÍOD DESCRIPCIÓN DE CONTENIDOS

A B MIN C D E F MAX x E.T.S.I. INFORMÁTICA 4º CURSO. INTELIGENCIA ARTIFICIAL E INGENIERÍA DEL CONOCIMIENTO

Transcripción:

Programación Declarativa Ingeniería Informática Especialidad de Computación Cuarto curso. Primer cuatrimestre Escuela Politécnica Superior de Córdoba Universidad de Córdoba Curso académico: 2016 2017 Práctica número 6.- Introducción al lenguaje Prolog Se deben presentar los ejercicios indicados con (*). 1. Amantes Escribe un fichero denominado amantes.pl que contenga los siguientes hechos o ama(juan,ana). o ama(ana,miguel). o ama(luis,isabel) o ama(miguel,ana). o ama(laura,juan). o ama(isabel,luis). donde el predicado ama(x,y) indica que X ama a Y. Escribe en prolog las siguientes preguntas o A quién ama Juan? o Quién ama a Ana? o Quién ama a alguien? o Quién es amado por alguien? o Quiénes se aman mutuamente? o Quién ama sin ser correspondido? Añade al fichero amantes.pl una regla que permita describir a los amantes, es decir, aquellas personas que se aman mutuamente. 2. Familia Escribe un fichero denominado familia.pl que contenga los siguientes hechos: o hombre(antonio). o hombre(juan). o hombre(luis). o hombre(rodrigo). o hombre(ricardo). o mujer(isabel). o mujer(ana). o mujer(marta). 1

o mujer(carmen). o mujer(laura). o mujer(alicia). Define hechos en los que se afirmen los siguientes enunciados: o Antonio y Ana son matrimonio o Juan y Carmen son matrimonio. o Luis e Isabel son matrimonio o Rodrigo y Laura son matrimonio. o Juan, Rodrigo y Marta son hijos de Antonio y Ana. o Carmen es hija de Luis e Isabel. o Ricardo es hijo de Juan y Carmen. o Alicia es hija de Rodrigo e Isabel. Define una regla que indique que matrimonio es reflexivo, es decir, si X e Y forma un matrimonio entonces Y y X también lo forman. Define reglas para obtener: o los nietos de una persona o los abuelos de una persona o los hermanos de una persona o los tíos de una persona o las tías de una persona o los primos de una persona o las primas de una persona o los suegros de una persona 3. (*) Declara los siguientes hechos relativos a trabajadores de una empresa. Utiliza el predicado encargado_de_tarea(trabajador,tarea) o Miguel está encargado de las tareas de admisión, control y vigilancia. o Ricardo está encargado de las tareas de planificación y asesoramiento. o Alicia está encargada de la dirección y control. Define reglas que permitan comprobar los siguientes hechos: o Si una tarea ha sido encargada a alguna persona. Utiliza el predicado encargada(tarea). o Si dos personas comparten alguna tarea, es decir, comparten_tarea(persona1,persona2). 4. Predicados sobre deportistas: Utiliza el predicado juega(persona,deporte) para declarar lo siguientes hechos relativos a deportistas: o Héctor juega al baloncesto. o Miguel juega al balonmano y rugby o Alicia juega al tenis, baloncesto y ajedrez. Define un predicado que permita comprobar si dos personas juegan al mismo deporte. 2

5. (*) Escribe un programa que permita realizar las siguientes operaciones aritméticas: o Mínimo de dos números. o Área de un círculo. o Área de un trapecio. o Producto de los números comprendidos entre dos dados. 6. (*) Lectores Escribe un fichero denominado lectores.pl que contenga los siguientes hechos que utilizan la estructura nombre y el predicado lector: o lector(nombre( Ana, Garrido, Aguirre ),mujer,31). o lector(nombre( Marta, Cantero, Lasa ),mujer,20). o lector(nombre( Rodrigo, Duque, Soto ),hombre,30). o Etc. Escribe en Prolog las siguientes preguntas: o Hay lectores? o Quiénes son lectores? o Qué lectores son mujeres? y hombres? o Hay lectores con el mismo nombre y diferentes apellidos? Escribe una regla para comprobar si unos apellidos están repetidos. o Nota: utiliza el predicado bagof y un predicado auxiliar para contar los elementos de una lista. 7. Libros Utiliza el predicado prestado para definir algunos hechos en los que se indique que un libro (con título y autor) ha sido prestado a una persona (con nombre y apellidos). Por ejemplo: prestado(libro( Misericordia,autor( Benito, Pérez, Galdós ), persona( Almudena, Alegría, Sol )). donde libro y persona son estructuras. Construye preguntas en las que se indique: o Si un lector tiene prestado algún libro. o Si un libro está prestado a alguien. o Si una persona es un escritor. o Si un escritor es leído. o Si existen autores leídos. Define una regla para comprobar que un escritor es leído si alguno de sus libros está prestado. 8. (*) Codifica los siguientes predicados sobre listas numéricas. Media de una lista Máximo de una lista. crear(n,l): crea una lista a partir de un número. o Por ejemplo:?crear(n,l) 3

L = [0,1,...,N]. 9. (*) Números primos Define el predicado primo(n) para comprobar si el número N es primo o no o Nota: un número es primo si no tiene divisores propios menores o iguales que su raíz cuadrada. Define el predicado crear_primos(n,l) para crear una lista compuesta por los números primos menores o iguales que el número N. o Por ejemplo:?- crear_primos(10,l). L = [2,3,5,7] 10. (*) Codifica un predicado denominado invertir para invertir todos los elementos de una lista que puede contener sublistas: Por ejemplo?- invertir([1,2,3,4,5],r). R = [5, 4, 3, 2, 1].?- invertir([1,[2,3],[4,5]],r). R = [[5, 4], [3, 2], 1]. Observación: codifica los siguientes predicados auxiliares o es_lista(x): comprueba si X es una lista o concatenar(l1,l2,l): L es el resultado de concatenar L1 y L2. 11. (*) Monumentos Utiliza el predicado monumento(nombre,localidad,estilo) para definir hechos asociados a los siguientes monumentos: o Mezquita, Córdoba, Árabe o Medina Azahara, Córdoba, Árabe o Catedral, Santiago de Compostela, Románico Define el predicado contar_monumentos(localidad,n) para contar los monumentos que hay en una localidad. o Por ejemplo?- contar_monumentos("córdoba",n). N = 2. Observación: o Utiliza el predicado bagof o findall o Define un predicado auxiliar para contar para contar los elementos de una lista. 12. (*) Método de ordenación mergesort. Codifica un predicado que permita ordenar una lista de números utilizando el método mergesort. 4

o Ejemplo Lista original: 5 4 1 3 2 División Primera: 5 1 2 ; 4 3 ; Segunda: 5 2 ; 1 ; ; 4 ; 3 ; ; Tercera: 5 ; 2 ; ; 1 ; ; 4; 3 ; ; Fusión: Primera: 2 5 ; 1 ; ; 3 4 ; Segunda: 1 2 5 ; 3 4 ; Tercera: 1 2 3 4 5 Observación o Utiliza predicados auxiliares para la división (split): reparte los elementos de una lista en dos listas, dependiendo de que ocupen un "lugar" par o impar y para la fusión (merge): une de forma ordenada dos listas ordenadas 13. (*) Donantes de sangre Declara los hechos relativos a una base de datos de donantes que contiene la siguiente información: o donante(persona(juan,campos,ruiz),a,positivo). o donante(persona(ana,lara,silva),ab,negativo). o donante(persona(luis,luna,pachecho),ab,negativo). o Nota: persona es una estructura Escribe los hechos y las reglas que permitan comprobar si una persona puede donar sangre a otra teniendo en cuenta el grupo sanguíneo y el factor RH. Define reglas para el predicado contar_por_grupo_y_factor que permita contar todos los donantes de un grupo sanguíneo y factor rh específicos. o Por ejemplo:?- contar_por_grupo_y_factor (ab,negativo,n). N = 2 o Nota: utilizar el predicado bagof y un predicado auxiliar para contar los elementos de una lista. Escribe una regla que permita hacer las siguientes acciones consecutivas 1. Pedir por pantalla un grupo sanguíneo y un factor rh, 2. Pedir por pantalla el nombre de un fichero, 3. Y escribir en dicho fichero los nombres de todos los donantes que tengan el grupo sanguíneo y el factor rh indicados. 14. (*) Un árbol binario es representado por una lista de la forma [raíz, hijo izquierdo,hijo derecho] donde raíz es un átomo e hijo izquierdo e hijo derecho son árboles binarios. Define predicados para: 5

o Escribir la lista en orden prefijo, sufijo e infijo. o Determinar la profundidad del árbol. o Comprobar si un elemento está en el árbol. o Determinar el número de nodos del árbol. o Determinar el número de hojas del árbol. Un nodo es una hoja si sus hijos izquierdo y derecho son listas vacías. Cómo se pueden redirigir las salidas de los predicados anteriores hacia un fichero de escritura? 15. (*) Escribe un programa que sume los números contenidos en un fichero y que escriba el resultado en otro fichero. 16. Escribe un programa que permita contar los términos contenidos en un fichero y que escriba el resultado en otro fichero. 6