Download Ejercicios - Universidad de Málaga
Document related concepts
Transcript
Programación Declarativa 3.o de Ingeniería en Informática Universidad de Málaga E.T.S.I. Informática Noviembre de 2007 Ejercicios Ejercicio 1. Define los siguientes predicados Prolog: es_natural(X) X es un natural (0,1,2,...) es_entero(X) X es un entero (0,-1,1,-2,2,...) num_digitos(X,N) el entero X tiene N dígitos dig_iesimo(X,I,D) D es el I-ésimo dígito de X mcd(X,Y,M) M es el máximo común divisor de X e Y fibonacci(I,F) F es el I-ésimo Fibonacci pascal(I,J,P) P es el elemento (I,J) del triángulo de Pascal capicua(X) el entero X es capicúa primo(X) el natural X es primo Ejercicio 2. Define el predicado entre_paso(+I,+J,+P,?K) que se satisface si I ≤ K ≤ J y K = I + iP, donde i ∈ N. Por ejemplo: ?- entre_paso(1,8,3,K). K = 1 ; K = 4 ; K = 7 ; No Es decir, se trata de un bucle «para» desde I hasta J con paso P. Ejercicio 3. Resuelve los siguientes rompecabezas aritméticos: ANA + USA = ESO LOBO + FEROZ = MIEDO SEND + MORE = MONEY CAMA + VINO = VICIO CAMA + CASA + MESA = VICIO Ejercicio 4. Un cuadrado mágico es una matriz cuadrada de orden n con los enteros positivos 1, 2, ..., n2 dispuestos de tal manera que todas las filas, columnas y las diagonales principales suman la misma cantidad M (n), conocida como número mágico, y que viene dada por la expresión: 2 1 1 n M ( n ) = ∑ k = n ( n2 + 1) n k =1 2 1 Escribe programas Prolog para resolver cuadrados mágicos de orden 3 y 4. Ejercicio 5. Un número está formado por 8 cifras decimales desconocidas de la A a la H ABCDEFGH. Se considera que A es la primera cifra. Para averiguar el número contamos con las siguientes pistas: Las cifras se pueden repetir. la 3.a y 5.a cifras son iguales. La suma de la 2.a y 4.a cifras es igual al doble de la 1.a . La última cifra es el doble de la anterior. La última cifra es igual a la suma de la 1.a y la 6.a. La suma de todas las cifras es 39. Escribe un programa Prolog que empleando la técnica generar/comprobar asigne dígitos a las cifras del número. Ejercicio 6. Completa la matriz de la figura inferior con números del 4 al 39, de manera que las filas, columnas y diagonales principales sumen 85. 25 23 22 24 23 17 11 10 12 11 9 Ejercicio 7. Rellena la matriz binaria de 4 × 4 de la figura de manera que los números que orlan la matriz correspondan a la suma de sus filas, columnas y diagonales principales. 2 2 2 1 1 1 2 2 2 1 Ejercicio 8. Asigna dígitos del 1 al 9 sin repetir a los nodos del grafo de la figura, de manera que la suma de los nodos coincida con el número que encierran sus arcos. 2 15 13 17 17 21 21 Ejercicio 9. ¿Dónde deben impactar 7 dardos en la diana de abajo para que sumen un total de 100 puntos? 19 1 17 3 18 Ejercicio 10. Entre un preso y un carcelero se produce el siguiente diálogo: — ¿Cuándo saldré de aquí? — ¿Qué edad tienes? — Veinticinco. — Yo tengo cincuenta y cuatro. Saldrás cuando te duplique la edad. Escribe un programa Prolog que empleando la técnica generar/comprobar te ayude a encontrar cuántos años de condena le quedan por cumplir al preso. 3