UTNianos

Versión completa: [Aporte] Final Paradigmas de Programacion 12/12/2015
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
[Imagen: aLlexY1.jpg]
[Imagen: QMzDtiD.jpg]



Comparto mi solucion:


Spoiler: Mostrar
Me saque un 8 y ni idea en que me equivoque

Parte A
1)
a) Falso, La empresa deberia delegarle esa responsabilidad al medio de pago. Asi se lograria mas declaratividad y abstraccion en la solucion.. mas justificacion de esto ultimo
b) Falso, esta desarrollado para que sea polimorfico pero no esta implementado. Para lograrlo Empresa no debe y no necesita preguntar que tipo de tarjeta es para mandarle el mensaje pagar:
c) Verdadero (dudas), como no hay asignacion destructiva, no hay forma de modificar el dinero o la deuda de una persona


2) En el metodo pagar de la clase Efecto, por el lado falso de la pregunta, se podria llamar una excepcion. De esta forma se detiene el programa y no llega a ejecutarse el mensaje reservarAsiento

3)
#Empresa
>> vender: pasaje a: cliente
cliente medioDePago pagar: (pasaje costo) (Aca tuve dudas si mandarle un mensaje al cliente, y que luego el cliente le diga a su tarjeta que pague, creo que hubiera sido mejor)
pasaje micro reservarAsiento

#Efecto
>> pagar:monto
(dinero >= monto) ifTrue:[dinero:=dinero-monto]
ifFalse:[ ErrorDinero signal 'No alcanza el dinero']

Parte B

1) funcionA funcion destino destinos = (funcion.head.filter (esDe destino)) destinos
esDe destino (c,_,_) = destino == c

Se aproveho el orden superior para no repetir logica identica. Tambien se hizo mas declarativa la solucion delegando en la funcion esDe el criterio de filtro

2)
a) Error de tipo al comprar 5 con un string
b) Devuelve 425 correctamente
c) No devuelve nada porque la lista luego de filtrarse queda vacia
d) Hay error porque falta un parametro. Facil de confundirse con aplicacion parcial... si en la definicion de la funcion falta el parametro destinos no pasaba nada porque por aplicacion parcial se mandaba al final de la funcion, pero en la consulta tiene que estar el parametro
e) Devuelve 350 correctamente. No se mete con el /0 por la evaluacion diferida

Parte C
1)
noIncluidoEn(Destinos, DestinosVisitados, Destino):-
destinos(Destinos),
member(Destino,Destinos),
not(member(Destino,DestinosVisitados).

2) a) Falso, devuelve una o multiples respuestas segun sea el caso. El member unifica cada una de los elementos encontrados de la lista y los evalua a todos sin importar si alguno ya cumplio el predicado

b) Falso, devuelvo False, porque por el principio de universo cerrado todo lo que no esta definido es falso, y neuquen no esta definido en destinos


Pd. Daban 2 hs para hacerlo y 10 min para verlo e irse
(13-12-2015 11:13)Camper escribió: [ -> ]e) Al igual que b, devuelve vacio porque no encuentra a Peguajo. Aca justificando que pasaria sin la evaluacion diferida/perezosa

Aca creo que devuelve 350. Fijate que la lista que le estas pasando no es la de destinosDeEjemplo, sino una lista con el destino "Pehuajo".

Gracias igual por subir el final, cuando puedas subis esos finales resueltos que dijiste?
(13-12-2015 13:39)speedy10 escribió: [ -> ]
(13-12-2015 11:13)Camper escribió: [ -> ]e) Al igual que b, devuelve vacio porque no encuentra a Peguajo. Aca justificando que pasaria sin la evaluacion diferida/perezosa

Aca creo que devuelve 350. Fijate que la lista que le estas pasando no es la de destinosDeEjemplo, sino una lista con el destino "Pehuajo".

Gracias igual por subir el final, cuando puedas subis esos finales resueltos que dijiste?

Totalmente, no me di cuenta, ya venia embalado con las otras e hice alta mezcla jajaja
Hola!! podrías subir de nuevo el final? porque parece que los link a las imágenes están rotos..

Saludos!!
Buenas!, yo también me presenté a este final y me saqué un 7 y tampoco se en que me confundí.
En gral conteste lo mismo que vos, en el punto 2)c de Funcional, no sabía si devolvía NADA, o algún error al enviarle a distancia una lista vacía, pero deje que no devolvía nada.
Después en el punto de Lógico, el predicado NoIncluidoEn yo lo hice sin el destino(Destinos), asumiendo que el member ya me generaba los destinos ,ya que el argumento que le enviaba era la lista de todos.

La parte de objetos pense la misma lógica, capaz alguna flecha mal en el diagrama o algún método mal la verdad no se!.

Saludos
URLs de referencia