UTNianos

Versión completa: [APORTE] Final Paradigmas de Programación 03/10/18
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola gente, acá les dejo el final de pdp de esa fecha. Realmente patearon el tablero en esa fecha, absolutamente NADA que ver con los modelos anteriores. No se si lo hicieron el dia previo o bien, cambiaron el modelo (ni idea si tomarán así ahora en diciembre). Lo subo asi lo tienen y de paso devuelvo un poco a esta gran página.

A pesar de que lo aprobé, no voy a subir las respuestas. Solamente voy a dejar una reflexion sobre este final: tuve que usar prácticamente todas las palabras teóricas de la cursada (usé la palabra currificación...), sobre conceptos de los 3 paradigmas. Te daban la opcion de "resolver con código o con palabras" pero fue un final ultra teórico a mi modo de ver.

Espero que les sirva, asi ven como viene la mano. Saludos y éxitos gente con sus carreras.

Off-topic:
Cita:A pesar de que lo aprobé, no voy a subir las respuestas.

[Imagen: 43fa1bb21225beb1730245be7c991036.jpg]
Hola tengo duda en el punto 1, a)
Se puede hacer? ya que tengo entendido que el mensaje lo va a entender de cualquier manera por herencia de la super clase

Gracias
(17-12-2018 19:43)joseOsvaldoFloresCopa escribió: [ -> ]Hola tengo duda en el punto 1, a)
Se puede hacer? ya que tengo entendido que el mensaje lo va a entender de cualquier manera por herencia de la super clase

Gracias

lee bien el enunciado, dice "indicar si modificando (o no)...". Se pueden hacer todos los puntos que dicen ahi, no en todos hace falta una modificacion. En este caso si, quitas la herencia y chau, no entiende mas el mensaje.
Gracias.
Buenas, dejo una solución, el que quiera la puede comentar para llegar a una conclusión.


1) a) Hacer que B deje de heredar de A.

1) b) Heredar de forma normal, hereda el método y su funcionalidad.

1) c) Sobreescribir el método usando @Override. Conserva el método pero cambia su funcionamiento.

1) d) Utilizando "super()" ejecuta la funcionalidad del mismo método en la clase padre, permitiendo agregar mas comportamiento luego.

1) e) Si B hereda de A y no se sobreescribe, va a dar un error.
Se puede crear una interfaz que obligue a implementar el metodo m2() y que tanto B como A la implementen. En ese caso, se puede utilizar m2() de forma polimorfica.


2) a) Falso. La currificacion es el concepto que permite la aplicación parcial de funciones.

2) b) Falso. Una función de orden superior es una función que recibe como parámetro otra función.

2) c) Falso. La inversibilidad permite realizar tanto consultas existenciales como individuales a un predicado.

3) a)

3) b)

Funcional: Componiendo funciones se logra una especie de "efecto".

Ejemplo de meter 10 goles y consultar los goles.


cuantosGolesTiene.(meterGoles 10) Jugador


Resultado = 10 goles.

Lógico:
No tengo idea.

3) c) Es mejor ya que, frente a errores conocidos, impide que el flujo de ejecucion avance y ademas se informa sobre el error.


Ejemplo: Retirar fondos de una cuenta de banco.



Class Persona{

var dinero

method retirarDinero(Cantidad){
dinero -= Cantidad;
}
}


Si la cantidad es mayor al dinero en la cuenta, queda con saldo negativo.



Class Persona{
var dinero;

method retirarDinero(Cantidad){
if(Cantidad < Dinero){
dinero -= Cantidad;
}
}


En este caso no hay inconsistencia, pero no se le indica al usuario cual es su problema.



Class Persona{
var dinero;

method retirarDinero(Cantidad){
if(Cantidad > Dinero){
throw new Exception("No hay dinero suficiente en la cuenta");
}
dinero -= cantidad;
}
}



En este caso, si no alcanza el dinero se corta la ejecucion y se indica cual es el problema.
URLs de referencia