Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
Autor Mensaje
aaajfabio Sin conexión
Profesor del Modulo A
Retomando la carrera
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 260
Agradecimientos dados: 18
Agradecimientos: 18 en 7 posts
Registro en: Sep 2009
Mensaje: #1
[APORTE] Final de Paradigmas 18-07-15 (RESUELTO) Finales Paradigmas de Programación
Link del final:

https://docs.google.com/document/d/1czeo...oilgRs/pub

Resolución:

A)1)

Ver Diagrama de Clases.png
EDITO: Está mal el diagrama, por un error de copypaste repetí una clase, la cual yo llame ConNiebla
   


#Día
>> temperaturaBase
^(tRef * 1.15 + tMod sqrt)/ tInf.

>>temperatura
^tipo temperatura: (self temperaturaBase).

#Nublado
>>temperatura: base
^base*cantNubes.

#Normal
>>temperatura: base
^base.

#ConNiebla
>>temperatura:base
^base – cantNiebla.

#Mes
>> temperaturaPromedio
^(días sum: [:dia | dia temperatura]) / (días size).

La solución aquí propuesta es mejor en términos de polimorfismo al crear nuevas clases para los tipos de días, delegando de esta manera el cálculo de la temperatura a cada tipo de día. Esto permite un mayor encapsulamiento para el cálculo de la temperatura.

2) En un principio si, ya que permite delegar el cálculo de la temperatura en cada uno de los tipos de día, aumentando así la declaratividad de la solución. En el caso que yo propuse la solución es mejorada utilizando composición, ya que, de esa manera, un día puede pasar de estar normal a estar nublado.

3) La solución propuesta por el ejercicio tiene poca declaratividad ya que (por ejemplo, en el caso de temperaturaPromedio) el código muestra más COMO se realiza el cálculo. En la solución que propuse yo, es más fácil entender QUE es lo que se quiere obtener simplificando el código en una sola línea. A nivel expresividad, la solución propuesta por el ejercicio utiliza términos como tot, cant, d, entre otros, que restan expresividad en la solución. Esos términos son eliminados en la nueva propuesta ya que no son necesarios y se ve mejorada la expresividad con términos más claros.

4) Si, lo permite.
nublado := Nublado new.
nublado inicializar.
unDia tipo:nublado.

B)1) primerMayorQue valor criterio = (>valor).head.filter criterio
f = primerMayorQue 40 even
g = primerMayorQue 38.5 elevada
h = primerMayorQue “perez” ((==’s’).last)

2) El concepto es orden superior. Al utilizar una función de orden superior como primerMayorQue (que utiliza las funciones como head, filter y (>)), se permite evitar la lógica repetida, simplificando la solución y delegando la lógica en una única función.

3) Se realizó directamente en el punto 1.

C)1) Deben existir los siguientes predicados en la base de conocimientos:
- trabajaPara/2: Debe ser inversible respecto de la Persona.
- esMafioso/1.
- encargo/3: Debe ser inversible respecto de la Persona.
- pareja/2.
- personaje/2.

2) Si, ya que se utiliza un mismo predicado para tratar los distintos tipos de encargos. De esta manera, si se agregan más encargos, no es necesario generar nuevos predicados para tratarlos.

3) Si, es posible.

cuidador(Personaje):-
encargo(_,Personaje,_),
forall(encargo(_,Personaje,Encargo), Encargo = cuidar(_)).



Cualquier duda pregunten!!
Otros adjuntos en este tema
.pdf  Final18072015.pdf ( 123,22 KB / 76) por holautn
(Este mensaje fue modificado por última vez en: 25-08-2015 17:45 por aaajfabio.)
20-07-2015 12:05
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] aaajfabio recibio 12 Gracias por este post
fakukpg (20-07-2015), gabiiQ93 (21-07-2015), Bachii (27-07-2015), MrOneTwo (28-07-2015), c'thun (30-07-2015), mattias14 (11-12-2015), OnlyAmazing (12-02-2016), holautn (22-05-2016), LauV (24-05-2016), MelisaGodoy (14-07-2016), alan_0cool (25-07-2016), Andres_utn (28-07-2016)
LAUS Sin conexión
Campeon del cubo Rubik
:)
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 129
Agradecimientos dados: 52
Agradecimientos: 4 en 2 posts
Registro en: Jul 2008
Mensaje: #2
RE: [APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
En el mes, te faltó dividir por días size, ya que esta pidiendo el promedio de las temperaturas
30-07-2015 21:47
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] LAUS recibio 3 Gracias por este post
aaajfabio (25-08-2015), holautn (22-05-2016), alan_0cool (25-07-2016)
aaajfabio Sin conexión
Profesor del Modulo A
Retomando la carrera
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 260
Agradecimientos dados: 18
Agradecimientos: 18 en 7 posts
Registro en: Sep 2009
Mensaje: #3
RE: [APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
(30-07-2015 21:47)LAUS escribió:  En el mes, te faltó dividir por días size, ya que esta pidiendo el promedio de las temperaturas

Eso me pasa por pasarlo rápido jajaja. Bien ahí, ya lo corregí. Alguna otra cosa más que le veas decime.
03-08-2015 09:21
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] aaajfabio recibio 1 Gracias por este post
alan_0cool (25-07-2016)
15406644 Sin conexión
Campeon del cubo Rubik
nil
****

Ing. Naval
Centro de Estudios Mar del Plata

Mensajes: 146
Agradecimientos dados: 43
Agradecimientos: 61 en 24 posts
Registro en: Jun 2012
Mensaje: #4
RE: [APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
saca el spam pibe, nadie se le ocurriría entrar ahí, el resto se agradece
20-08-2015 00:53
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
danila Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 127
Agradecimientos dados: 35
Agradecimientos: 32 en 23 posts
Registro en: Sep 2012
Facebook
Mensaje: #5
RE: [APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
Buenas creo q en la solucion del punto 4 no pones como se cambia de normal a nublado, solo pones nublado
25-09-2015 11:14
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
aaajfabio Sin conexión
Profesor del Modulo A
Retomando la carrera
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 260
Agradecimientos dados: 18
Agradecimientos: 18 en 7 posts
Registro en: Sep 2009
Mensaje: #6
RE: [APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
(25-09-2015 11:14)danila escribió:  Buenas creo q en la solucion del punto 4 no pones como se cambia de normal a nublado, solo pones nublado

Claro que si lo hago. Le modifiqué el atributo tipo a un objeto de la clase Nublado, instanciándolo previamente (según el ejercicio antes el atributo tipo era un objeto de la clase Normal).

El objetivo de ese ejercicio es ver si sabes qué atributo hay que modificar para cambiar de Normal a Nublado. Ponele que está implícito que se instanció unDía y un objeto normal de la clase Normal y unDía tipo: normal. Agregar eso lo veo de más ya que lo que se pide es lo otro.

Resumiendo, la sentencia que hace el cambio es unDia tipo:nublado, pero también es necesario instanciar previamente un objeto de clase Nublado para hacer el cambio.

Saludos.
(Este mensaje fue modificado por última vez en: 25-09-2015 15:05 por aaajfabio.)
25-09-2015 12:13
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] aaajfabio recibio 1 Gracias por este post
danila (27-09-2015)
danila Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 127
Agradecimientos dados: 35
Agradecimientos: 32 en 23 posts
Registro en: Sep 2012
Facebook
Mensaje: #7
RE: [APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
Gracias lo entendí =)
27-09-2015 15:31
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
dalepapa Sin conexión
Profesor del Modulo A
Estado Plasma
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 320
Agradecimientos dados: 190
Agradecimientos: 68 en 45 posts
Registro en: Mar 2015
Mensaje: #8
RE: [APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
Agregaría lo siguiente, respecto al punto C)

1) Ser inversible,
o ser un hecho, como por ejemplo: enProblemas(butch).


2) En el 3° argumento del predicado encargo/3 se usan functores que denotan el polimorfismo dentro del Paradigma Lógico.
Y así se puedan usar los encargos indistintamente (éstos y otros agregados en un futuro).
encargo(_,_,cuidar(Cuidado))
encargo(_,_,buscar(Buscado,_))


3) Si, es posible usando forall/2 (predicado de orden superior)

cuidador(Personaje):- encargo(_,Personaje,_),
forall(encargo(_,Personaje,Encargo), esCuidado(Encargo)).


esCuidado(cuidar(_)) :- encargo(_,_,cuidar(_))


encargo(_,Personaje,_)
Actúa de predicado "generador", para que la variable "Personaje" ya entre ligada/unificado al forall.
Y el predicado ya queda inversible.
(Este mensaje fue modificado por última vez en: 09-12-2015 19:17 por dalepapa.)
09-12-2015 19:10
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
speedy10 Sin conexión
Campeon del cubo Rubik
En camino...
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 174
Agradecimientos dados: 73
Agradecimientos: 19 en 17 posts
Registro en: Jun 2008
Mensaje: #9
RE: [APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
(09-12-2015 19:10)dalepapa escribió:  3) Si, es posible usando forall/2 (predicado de orden superior)

cuidador(Personaje):- encargo(_,Personaje,_),
forall(encargo(_,Personaje,Encargo), esCuidado(Encargo)).


esCuidado(cuidar(_)) :- encargo(_,_,cuidar(_))


encargo(_,Personaje,_)
Actúa de predicado "generador", para que la variable "Personaje" ya entre ligada/unificado al forall.
Y el predicado ya queda inversible.

Creo que asi tambien funcionaria:


cuidador(Personaje):- encargo(_,Personaje,_), forall(encargo(_,Personaje,Encargo),encargoCuidado(Encargo)).

encargoCuidado(cuidar(_)).
12-12-2015 21:29
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
aaajfabio Sin conexión
Profesor del Modulo A
Retomando la carrera
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 260
Agradecimientos dados: 18
Agradecimientos: 18 en 7 posts
Registro en: Sep 2009
Mensaje: #10
RE: [APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
(09-12-2015 19:10)dalepapa escribió:  Agregaría lo siguiente, respecto al punto C)

1) Ser inversible,
o ser un hecho, como por ejemplo: enProblemas(butch).


2) En el 3° argumento del predicado encargo/3 se usan functores que denotan el polimorfismo dentro del Paradigma Lógico.
Y así se puedan usar los encargos indistintamente (éstos y otros agregados en un futuro).
encargo(_,_,cuidar(Cuidado))
encargo(_,_,buscar(Buscado,_))


3) Si, es posible usando forall/2 (predicado de orden superior)

cuidador(Personaje):- encargo(_,Personaje,_),
forall(encargo(_,Personaje,Encargo), esCuidado(Encargo)).


esCuidado(cuidar(_)) :- encargo(_,_,cuidar(_))


encargo(_,Personaje,_)
Actúa de predicado "generador", para que la variable "Personaje" ya entre ligada/unificado al forall.
Y el predicado ya queda inversible.

En realidad dijiste lo mismo con otras palabras, pero en el punto 1, no aclarás qué predicado decis que debe ser inversible.
20-05-2016 11:08
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
dalepapa Sin conexión
Profesor del Modulo A
Estado Plasma
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 320
Agradecimientos dados: 190
Agradecimientos: 68 en 45 posts
Registro en: Mar 2015
Mensaje: #11
RE: [APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
Punto C)
Me refiero a que todos esos predicados anteriores....deben ser inversibles o deben ser hechos.
20-05-2016 13:17
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
holautn Sin conexión
Secretario de la SAE
IngMaster y Campeon del Cubo d...
******

Otra
Facultad Regional Buenos Aires

Mensajes: 695
Agradecimientos dados: 792
Agradecimientos: 113 en 83 posts
Registro en: Apr 2009
Mensaje: #12
RE: [APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
Buenas,
Subo el enunciado..por las dudas, que desaparezca en un futuro...

Saludos!


Archivo(s) adjuntos
.pdf  Final18072015.pdf (Tamaño: 123,22 KB / Descargas: 76)
22-05-2016 16:10
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] holautn recibio 1 Gracias por este post
aaajfabio (09-06-2016)
LauV Sin conexión
Empleado del buffet

*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 2
Agradecimientos dados: 6
Agradecimientos: 0 en 0 posts
Registro en: Jan 2014
Mensaje: #13
RE: [APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
Gracias, muy bueno!

thumbup3
(Este mensaje fue modificado por última vez en: 24-05-2016 12:34 por LauV.)
24-05-2016 12:28
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
alan_0cool Sin conexión
Empleado de Fotocopiadora
Levantate Hijo de °!"# p...
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 27
Agradecimientos dados: 53
Agradecimientos: 16 en 2 posts
Registro en: Sep 2011
Mensaje: #14
RE: [APORTE] Final de Paradigmas 18-07-15 (RESUELTO)
Hola, ¿Porque se utiliza una clase abstracta? ¿No puede heredar Normal, Nublado, Niebla de Dia directamente? Gracias por la ayuda.
(Este mensaje fue modificado por última vez en: 25-07-2016 18:38 por alan_0cool.)
25-07-2016 18:05
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 2 invitado(s)