Sunteți pe pagina 1din 4

Programacin Lgica y Funcional

Proyecto Final Opcin 1: Programacin de horario semestral

Suponga que se debe planificar el horario de clases semestral. Considere que todas las
semanas del curso tienen el mismo horario, por lo que basta planificar una semana tpica.
En la planificacin debe tenerse en cuenta lo siguiente:
a) El ao tiene una cantidad de grupos y cada grupo tiene una planificacin
diferente.
b) De cada asignatura se conoce el nombre del profesor que imparte cada grupo,
pudiendo repetirse el nombre del profesor en varios grupos.
c) Los horarios son los tpicos, pudiendo identificarse los turnos como: T1 (7AM),
T2 (9 AM), T3 (11 AM), T4 (13 AM), T5 (15 AM) y T6 (17 PM).
d) De cada asignatura se conoce el total de clases semanales a planificar.
e) Un profesor puede dar clase cualquier da y turno, excepto en aquellos turnos ya
planificados para otros grupos.
f) A una asignatura no puede asignrsele, en un grupo, ms de una clase en el
mismo da.
Teniendo en cuenta todo lo anterior, realice las siguientes acciones:
a) Incluir las informaciones necesarias teniendo en cuenta que: al cambiar la cantidad
de grupos, deben eliminarse los profesores definidos para la imparticin de cada
asignatura y la planificacin realizada, si existe alguna. Listar la informacin. Salvar
y cargar el horario generado.
b) Realizar la planificacin de una semana tpica, teniendo en cuenta que debe
planificarse primero los turnos de la maana (excepto el viernes), despus los de la
tarde (excepto el viernes), y por ltimo los del viernes. Mostrar la ltima
planificacin realizada.

Programacin Lgica y Funcional


Proyecto Final Opcin 2: Juego de domin decimal

Se ha de desarrollar en prolog un sistema que permita jugar el decimal, conociendo lo


siguiente:
a) Se tendrn las 28 fichas de domin.
b) Se deber poder jugar por al menos dos jugadores (puntos extra si se valida para tres
y cuatro jugadores).
c) Al inicio del juego se le asignarn siete fichas de manera aleatoria a cada jugador,
las restantes quedarn como reserva.
d) El primer movimiento es la mula de 5, o una ficha que tenga un mltiplo de 5.
e) Cuando el jugador no tenga una ficha para realizar su jugada, tomar de la reserva
(de manera aleatoria) hasta que tome una ficha que pueda colocar o bien las fichas
de reserva se terminen.
f) Cada vez que se coloque una ficha en la mesa debe hacerse el clculo de los puntos
que suman los extremos, en caso de ser un mltiplo de 5 se le agregarn a la cuenta
del jugador que lanz la ficha.
g) El juego termina cuando las fichas se acaban, o bien, no es posible realizar otra
jugada.

Programacin Lgica y Funcional


Proyecto Final Opcin 3: Pseudo-Analizador Gramatical

Definir en prolog un programa que reciba o lea de un archivo el


cdigo de un programa en seudo-java que cumpla las siguientes
reglas gramaticales. Entre comillas estn las palabras reservadas
del lenguaje.
Pueden existir N field_declaration de igual forma N if_statement.
La ejecucin puede invocarse
Evalua([public, class, {, [int, a,;],}]).
Salida true;
O puedes leer el programa de un archivo (puntos extras para estos
casos).
class_declaration

= < modifier > "class" identifier


"{" < field_declaration > <metod> "}"

Metod = <modifier> type_specifier identifier ";" "{"


<field_declaration > (<if_statement> / <statement> )"}"
field_declaration

variable_declaration
;"

variable_declaration
=

< modifier > type variable_declarator

variable_declarator =
boolean_literal]
expression

";"

identifier

"=" integer_literal /

testing_expression

testing_expression =
(integer_literal / identifier
( ">"
/ "<"
/ ">="
/ "<="
/ "=="
/ "!=" )
integer_literal / identifier)
type

type_specifier

type_specifier =
modifier =

"boolean"

"public"

"int"

"private"

integer_literal =

boolean_literal= true /
identifier

if_statement =
statement

"1..9"

<

"0..9"

>

false

"a..z,_"
"if"

"(" expression

")" statement

statement_block

aritmetica_expression = =
(identifier
( "+"
/ "-" )
integer_literal ;)
statement_block =
< statement > "}"

"="

(integer_literal

"{" <field_declaration><aritmetica_expression>

S-ar putea să vă placă și