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
[Pedido] Final de Pdep 01/12/2012
Autor Mensaje
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: #1
[Pedido] Final de Pdep 01/12/2012 Finales Paradigmas de Programación
Holaa, Saben que tomaron el Final pasado 01/12/2012? Alguien tiene una copia?
08-12-2012 01:14
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: #2
RE: [Pedido] Final de Pdep 01/12/2012
???
13-12-2012 21:20
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
diegoutn Sin conexión
Empleado del buffet
mi sufragio es no positivo...
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 21
Agradecimientos dados: 8
Agradecimientos: 1 en 1 posts
Registro en: Apr 2012
Mensaje: #3
RE: [Pedido] Final de Pdep 01/12/2012
te paso el link
Final PDEP 01/12/12

suerte y saludos!!!!
(Este mensaje fue modificado por última vez en: 14-12-2012 00:38 por diegoutn.)
14-12-2012 00:35
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gtronco Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 2
Agradecimientos dados: 1
Agradecimientos: 0 en 0 posts
Registro en: Jun 2009
Facebook LinkedIn
Mensaje: #4
RE: [Pedido] Final de Pdep 01/12/2012
Una ayuda con este final?
Ejercicio 1 parte 3?
Ejercicio 2 parte 1, solución sin polimorfismo?
Ejercicio 2 parte 3?
...
14-12-2012 04:26
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rod77 Sin conexión
Presidente del CEIT
:o
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.164
Agradecimientos dados: 154
Agradecimientos: 498 en 217 posts
Registro en: Mar 2011
Mensaje: #5
RE: [Pedido] Final de Pdep 01/12/2012
Lo que haria en el ejercicio 1 parte 3 seria:


tiene= [( "juan", "auto"),("ana","moto"),("juan","casa")]
cantidadDeCosas persona = length(filter (\(x,y) -> x==persona) tiene)


14-12-2012 08:41
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rod77 Sin conexión
Presidente del CEIT
:o
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.164
Agradecimientos dados: 154
Agradecimientos: 498 en 217 posts
Registro en: Mar 2011
Mensaje: #6
RE: [Pedido] Final de Pdep 01/12/2012
ejercicio 2 parte 1:

Primero el que es polimorfico:
Hay una clase Zoo, otra Animales,que tiene como subclases a: Mono, Jirafa, Leones. Se supone que zoo conoce a todos los animales. y cada animal tiene el metodo "meAdapto" que valida que el alimento sea el solicitado, y en el caso de la jirafa valida también que el peso sea mayor a 500.
Y lo único que hay que hacer es crear un método en Zoo que se llama seAdaptanTodos que haga un allSatisfy a animales con meAdapto.
codificado:


#mono>>meAdapto
^((self tipoDeComidaNecesaria: self comida) = 'nutritiva')
#jirafa>>meAdapto
^((self tipoDeComidaNecesaria: self comida) = 'balanceada') &&(self peso > 500)
#leones>>meAdapto
^((self tipoDeComidaNecesaria: self comida) = 'natural'))

#zoo>>seAdaptanTodos
^self animales allSatisfy:[:unAnimal|unAnimal meAdapto]


La forma no polimorfica:
Lo que hice fue cambiarle el nombre a cada uno de los metodos meAdapto, haciendo que cada objeto no pueda entender otro mensaje de otro animal. Ahora el Zoo tiene que tratar a cada animal por distinto y tener una coleccion de Monos, Jirafas y Leones


#mono>>meAdaptoMono
^((self tipoDeComidaNecesaria: self comida) = 'nutritiva')
#jirafa>>meAdaptoJirafa
^((self tipoDeComidaNecesaria: self comida) = 'balanceada') &&(self peso > 500)
#leones>>meAdaptoLeon
^((self tipoDeComidaNecesaria: self comida) = 'natural'))

#zoo>>seAdaptanTodos
^((self monos allSatisfy:[:unMono|unMono meAdaptoMono])&&(self jirafas allSatisfy:[:unaJirafa|unaJirafa meAdaptoMono])&&(self leones allSatisfy:[:unLeon|unLeon meAdaptoLeon]))


La ventaja de usar Polimorfismo:
Si aparece un nuevo animal, lo unico que hay que hacer es crear la clase, y listo. En cambio sin polimorfismo, debemos crear la clase y ademas modificar Zoo.

La ventaja de no usar polimorfismo: La verdad que no se si hay ventaja, lo unico que se puede hacer, es ponerle un nombre mas expresivo a cada metodo... pero eso depende de cada uno.

Aclaro que puede ser que este todo mal, como asi todo bien, o mas o menos =P[/code]
y ejercicio 2 parte 3:


%% Los animales lo representamos con functores: leon(alimento),jirafa(alimento,peso),mono(alimento)
%% Animales es una lista de los functores

seAdapta(leon(Alimento)):-
Alimento=natural.

seAdapta(mono(Alimento)):-
Alimento=nutritiva.

seAdapta(jirafa(Alimento,Peso)):-
Alimento=balanceada,
Peso > 500.

seAdaptanTodosBien(Animales):-
forall(member(Animal,Animales),seAdapta(Animal)).


Fortaleza de usar Polimorfismo en Logico:
La bueno de haber realizado seAdaptanTodosBien polimorficamente es que funciona para todos los tipos de animal, si aparece un nuevo animal, solo deberiamos crear un predicado "seAdapta" con sus propias validaciones, pero no tocariamos nada mas.

Fortaleza de usar Orden Superior:
Usamos orden superior, en seAdaptanTodosBien, ya que insertamos un forall que es un predicado de orden superior, ya que recibe como parametro otro predicado. Gracias a esto podemos olvidarnos de como funciona internamente el forall, siempre y cuando sepamos que hace (forall(P1,P2), si todos los elementos de P1 cumplen con P2, da Verdadero), y esto hace que el programa tome mayor expresividad. Ya que si no usamos el forall tenemos que ponerlo de la siguiente forma: not(P1,not(P2)) haciendo mas dificil a la lectura
Lo unico que no entiendo del punto 3, es que hace metodoLoco, no faltaría la colección entre self y copyFrom, y entre self y size ? es decir ^self coleccion copyFrom: 1 to: (self coleccion size // 2)?

Hago el resto del ejercicio 3, así queda completo:

A-metodoLoco
^self copyFrom: 1 to: (self size // 2)

B-funcionLoca algo = take (length algo `div` 2) algo

C-predicadoLoco(L1, L2):- length(L1, C), C2 is C//2, takelist(L1,C2,L2).

1-
A- ¿?
B- se tiene una lista de algo y devuelve la mitad de esa lista.
C- Se tiene una lista de algo ligada en 'L1', el predicado hace que se ligue en 'L2', la mitad de L1.

2-
A- ??
B- [a] -> [a]
C- L1 y L2 son listas, con los mismos elementos. Pueden ser numero, functores, sublistas, etc

3-
A-
B- [1,2,3,4] -> [1,2]
[(A,B),(C,D),(E,F),(G,H)] -> [(A,B),(C,D)]

c- L1:[1,2,3,4] -> L2:[1,2]
L1:[A(1,2),B(1),C(1,1,3),D(5)] -> L2:[A(1,2),B(1)]

4-
A-
B- Se observa polimorfismo en 'ALGO', ya que no importa que tenga adentro la lista, va a funcionar.
C- Se observa polimorfismo en L1, ya que no importa que tenga adentro la lista, va a funcionar.

La ventaja en ambos casos es que no hace falta definir mas funciones o predicados, definiendo los tipos en cada caso, es decir no vas a necesitar crear una "funcionloca" para una lista con números enteros, y otra funcionloca para una lista con nombres.
(Este mensaje fue modificado por última vez en: 14-12-2012 14:17 por rod77.)
14-12-2012 13:29
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] rod77 recibio 2 Gracias por este post
gtronco (14-12-2012), aleixen (21-02-2014)
nicmora Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 7
Agradecimientos dados: 3
Agradecimientos: 0 en 0 posts
Registro en: Dec 2012
Mensaje: #7
RE: [Pedido] Final de Pdep 01/12/2012
(14-12-2012 13:29)rod77 escribió:  Lo unico que no entiendo del punto 3, es que hace metodoLoco, no faltaría la colección entre self y copyFrom, y entre self y size ? es decir ^self coleccion copyFrom: 1 to: (self coleccion size // 2)?

Me paso exactamente lo mismo, me quedé pensando si no existen Clases donde su instancia sea una colección, y ese self sea la colección. Pero jamás, por lo menos en mi cursada, instancie de una clase, una colección. Si hicimos instancias de objetos, que tienen como atributo una colección y la inicializas como Set o Bag..
14-12-2012 18:07
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rod77 Sin conexión
Presidente del CEIT
:o
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.164
Agradecimientos dados: 154
Agradecimientos: 498 en 217 posts
Registro en: Mar 2011
Mensaje: #8
RE: [Pedido] Final de Pdep 01/12/2012
(14-12-2012 18:07)nicmora escribió:  
(14-12-2012 13:29)rod77 escribió:  Lo unico que no entiendo del punto 3, es que hace metodoLoco, no faltaría la colección entre self y copyFrom, y entre self y size ? es decir ^self coleccion copyFrom: 1 to: (self coleccion size // 2)?

Me paso exactamente lo mismo, me quedé pensando si no existen Clases donde su instancia sea una colección, y ese self sea la colección. Pero jamás, por lo menos en mi cursada, instancie de una clase, una colección. Si hicimos instancias de objetos, que tienen como atributo una colección y la inicializas como Set o Bag..

Me quede pensando y creo que es un metodo para usar en colecciones.

o sea:
metodoLoco
^self copyFrom: 1 to: (self size // 2)

Lo uso de la siguiente forma:

otroMetodo
^self coleccion metodoLoco


y este 'otroMetodo', lo que devuelve es la mitad de la coleccion
14-12-2012 18:30
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
sebbab Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 53
Agradecimientos dados: 70
Agradecimientos: 60 en 10 posts
Registro en: Feb 2012
Mensaje: #9
RE: [Pedido] Final de Pdep 01/12/2012
Cual seria la posible mejora para en el ejercicio 1 parte 2?
15-12-2012 00:05
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rod77 Sin conexión
Presidente del CEIT
:o
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.164
Agradecimientos dados: 154
Agradecimientos: 498 en 217 posts
Registro en: Mar 2011
Mensaje: #10
RE: [Pedido] Final de Pdep 01/12/2012
(15-12-2012 00:05)sebbab escribió:  Cual seria la posible mejora para en el ejercicio 1 parte 2?

hay una inversilidad que es parcial. para que sea totalmente inversible lo que hay que hacer es ponerle un "generador", lo que equivale a que personas entre ligado:

cantidadDeCosas(Persona, Cantidad):-
tiene(Persona, _),
findall( Cosa, tiene( Persona, Cosa), Cosas),
length(Cosas, Cantidad).

ingresando eso se pueden hacer cualquier tipo de consultas (poniendo a Persona como variable a Cantidad como variable, o a las 2)
15-12-2012 06:29
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] rod77 recibio 1 Gracias por este post
sebbab (15-12-2012)
Nacho14 Sin conexión
Profesor del Modulo A
-
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 295
Agradecimientos dados: 36
Agradecimientos: 50 en 36 posts
Registro en: Aug 2009
Mensaje: #11
RE: [Pedido] Final de Pdep 01/12/2012
ya que estamos alguien tiene la resolución del punto 2 del ejercicio 2
(se que el concepto es herencia pero quiero ver si estoy codificando bien pq recien arranque a estudiar y hace un año que la curse esta materia)

GRACIAS!
16-12-2012 17:06
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rod77 Sin conexión
Presidente del CEIT
:o
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.164
Agradecimientos dados: 154
Agradecimientos: 498 en 217 posts
Registro en: Mar 2011
Mensaje: #12
RE: [Pedido] Final de Pdep 01/12/2012
ejercicio 2 punto 2, lo hice asi:
Animal nuevo, que es subclase de jirafa ( o sea Jirafa es la superclase), y hay una Variable de Instancia en animalNuevo que es vacunado, que puede ser True o False.

#animalNuevo>>meAdapto
^(super meAdapto && self vacunado)
16-12-2012 19:24
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nacho14 Sin conexión
Profesor del Modulo A
-
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 295
Agradecimientos dados: 36
Agradecimientos: 50 en 36 posts
Registro en: Aug 2009
Mensaje: #13
RE: [Pedido] Final de Pdep 01/12/2012
(16-12-2012 19:24)rod77 escribió:  ejercicio 2 punto 2, lo hice asi:
Animal nuevo, que es subclase de jirafa ( o sea Jirafa es la superclase), y hay una Variable de Instancia en animalNuevo que es vacunado, que puede ser True o False.

#animalNuevo>>meAdapto
^(super meAdapto && self vacunado)

esto podría hacerse tambien de esta manera:

#animalNuevo>>meAdapto
^(super meAdapto && self estaVacunado)

poniendo un método que te diga si esta vacunado o no devolviendote un booleano en vez de una variable de instancia?
y el concepto que evita la duplicación de código sería la herencia de Jirafa, ya que le "presta" su método, no?
(Este mensaje fue modificado por última vez en: 17-12-2012 17:36 por Nacho14.)
17-12-2012 17:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rod77 Sin conexión
Presidente del CEIT
:o
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.164
Agradecimientos dados: 154
Agradecimientos: 498 en 217 posts
Registro en: Mar 2011
Mensaje: #14
RE: [Pedido] Final de Pdep 01/12/2012
si, es como decís, ya que en realidad lo hice con un método que se llama vacunado, perdón por no aclarar, seria así:

>>vacunado
^vacunado
18-12-2012 07:31
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




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