Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 1 votos - 2 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Aporte][Paradigmas][Spigariol] Final Septiembre 2015
Autor Mensaje
valtimore Sin conexión
Empleado del buffet
Que bruto póngale 0
*

Ing. en Sistemas
Facultad Regional Delta

Mensajes: 20
Agradecimientos dados: 15
Agradecimientos: 5 en 5 posts
Registro en: Jun 2015
Mensaje: #1
[Aporte][Paradigmas][Spigariol] Final Septiembre 2015 Finales Paradigmas de Programación
Chicos, como estan? Acá les dejo el final que me tomaron el 25/09/2015 en la FRD. La cátedra es de Lucas Spigariol.
Acá les dejo más o menos lo que me acuerdo de la resolución del final. El punto 3 no lo subo porque recuerdo que tenía varias cosas corregidas y no tengo intención de marearlos.

Ejericio 1:

-Herencia: Crear clases Hombre y Mujer, y que ambos hereden de Alumno los atributos nota, vestimenta y cartera. Eliminamos el atributo sexo porque ya tenes las dos clases diferenciadas. También debe heredar el método promedio. Yo lo que hice fue hacer un método nuevo que se llamaba promedioAprobado, en donde puse si promedio era mayor a 7, para meter la lógica de "alumnosDestacados" en la clase Alumno en lugar de Curso.

-Polimorfismo: Métodos de elegante y formal, ponerle un único nombre que sea distinto a esos dos, por ejemplo vestidoDeGala, y que en ese método tenga la lógica tanto para el hombre y la mujer en cada uno de esos casos.

Luego, en el método alumnosDestacados, en lugar de todo ese choclo se debería hacer un ^select alumnos: [x: x promedioBueno & x vestidoDeGala].

Lo que también se podría haber corregido es agregar un método que incluya a la lógica que está dentro del select que puse recién. Creería que hay que definir a ese método en la clase Alumnos, pero la verdad no lo sé. (Esto me faltó, pero el resto estaba bien).


Ejercicio 2:

Básicamente lo que hace eso es un map y un filter. El primer parámetro de la función es una lista, el segundo es la condición del filter y el tercero es la función que se mapea. Pongo un ejemplo así se entiende.

Si yo tengo las funciones esPar (que devuelve true si un número es par) y multiplicarPorDos (que recibe como argumento un entero y devuelve ese número multiplicado por 2), puedo invocar a la función de esta manera

f [1,2,3,4,5] esPar multiplicarPorDos = [4,8]

Una forma más declarativa de hacer esto, es justamente hacer una composición de un map y un filter (Perdón si pongo mal los paréntesis)

f lista a b = map(b).(filter(a) lista)

en el ejemplo anterior sería algo así

map(multiplicarPorDos).(filter(esPar) [1,2,3,4,5])


El ejercicio 3 no lo tenía tan bien y no me puedo acordar en dónde tenía los errores.


Archivo(s) adjuntos Imagen(es)
   
(Este mensaje fue modificado por última vez en: 30-09-2015 11:27 por valtimore.)
28-09-2015 09:21
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] valtimore recibio 1 Gracias por este post
speedy10 (29-09-2015)
speedy10 Sin conexión
Campeon del cubo Rubik
En camino...
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 168
Agradecimientos dados: 71
Agradecimientos: 17 en 15 posts
Registro en: Jun 2008
Mensaje: #2
RE: [Aporte][Paradigmas][Spigariol] Final Septiembre 2015
Gracias, lo tenes resuelto?

Mas alla de que sea un asco lo que hace "alumnosDestacados" en el Ejercicio 1), hay algun otro problema de concepto? Por ej, en Alumno? A todos los metodos de alumno les esta faltando el punto al final.. pero eso nose si entra como "error de concepto".
29-09-2015 18:45
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
valtimore Sin conexión
Empleado del buffet
Que bruto póngale 0
*

Ing. en Sistemas
Facultad Regional Delta

Mensajes: 20
Agradecimientos dados: 15
Agradecimientos: 5 en 5 posts
Registro en: Jun 2015
Mensaje: #3
RE: [Aporte][Paradigmas][Spigariol] Final Septiembre 2015
En cuanto a código no me corrigió el tema de los puntos al final de cada sentencia. Pongo la resolución de los ejercicios 1 y 2 en el post así no se pierde en los comentarios y lo pueden ver todos.
30-09-2015 11:24
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] valtimore recibio 1 Gracias por este post
speedy10 (30-09-2015)
Vodianisa Sin conexión
Empleado del buffet
Who let me adult?? I can't adu...
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 12
Agradecimientos dados: 38
Agradecimientos: 13 en 2 posts
Registro en: Feb 2015
Mensaje: #4
RE: [Aporte][Paradigmas][Spigariol] Final Septiembre 2015
3) Me parece que es asi, no estoy segura

3.1) esSobreOfertado(Producto):- base(Producto,Precio),oferta(_,Producto,_), forall(oferta(_,Producto,Oferta), Oferta>Precio).

huboOfertaSuperior(Producto):- base(Producto,Precio),oferta(_,Producto,Oferta),Oferta>Precio.

noHuboOfertaSuperior(Producto):-base(Producto,_), not(huboOfertaSuperior(Producto)).

3.2) El hecho de que un predicado sea inversible, me permite poder preguntar cualquier tipo de consulta: un producto en particular, si algun producto cumple, o CUALES son los que cumplen, siempre y cuando esten bien generados las respuestas a las consultas seran correctas.

3.3) Devolvera falso por el concepto de universo cerrado, lo que no es verdadero (los hechos que hay en la base de conocimiento) sera falso.
17-12-2015 23:52
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)



    This forum uses Lukasz Tkacz MyBB addons.