2012-02 Examen Solucion
2012-02 Examen Solucion
2012-02 Examen Solucion
Solucion ejercicio 1
Restricciones:
-- En una etapa, las parejas sentenciadas deben competir en el concurso al que la etapa pertenece.
self.pareja->forAll(p | p.concurso = self.concurso)
-- La pareja con menor cantidad de votos en una etapa no participa de una sentencia posterior
let eliminada :
Pareja = self.sentencia->select(s1|self.sentencia->forAll(s2|s2 <> s1
implies s1.cantVotos < s2.cantVotos) )->any().pareja in
eliminada.etapa->forAll(e|e.fecha <= self.fecha)
-- Para un concurso no puede haber dos etapas con una misma fecha.
self.etapa->isUnique(fecha)
-- Para un concurso no puede haber dos parejas con el mismo número de teléfono.
self.pareja->isUnique(nroTel)
Dentro de los casos de uso a soportar por el sistema, se encuentran las siguientes
operaciones:
Operación consultarPolizaDeAutomovil():Set(DataCliente)
Se pide:
i) Completar los contratos de las operaciones incluyendo las pre y post condiciones
correspondientes. Considere exclusivamente la información dada en el problema y
particularmente en la descripción de las operaciones.
Solución Ejercicio 2
a)
i) ¿A qué se le llama visibilidad?
La visibilidad es la capacidad de un objeto de tener una referencia a otro.
b)
i)
Tecnólogo en Informática – Programación Avanzada – Curso 2011
ii)
Tecnólogo en Informática – Programación Avanzada – Curso 2011
iii)
Tecnólogo en Informática – Programación Avanzada – Curso 2011
Se pide:
Observaciones:
- Asuma que existe una implementación estándar de las interfaces
ICollectible, ICollection, IIterator, Idictionary e Ikey y que existe una clase
Lista que realiza las interfaces Icollection e Idictionary y una clase KeyString
que realiza la interfaz IKey. No defina colecciones concretas.
- Asuma la existencia de una clase String
- No incluya directivas de preprocesador.
Tecnólogo en Informática – Programación Avanzada – Curso 2011
Solución ejercicio 3
class Controller {
private:
Controller();
IDictionary * usuarios;
public:
};
Controller::Controller() {
Controller * Controller::getInstance(){
if (instance == NULL)
return instance;
if (usr == NULL)
else
return usuario->consultarPublicacion(titPub);
}
Tecnólogo en Informática – Programación Avanzada – Curso 2011
private:
String titulo;
public:
};
private:
ICollection * articulos;
public:
};
private:
ICollection * autores;
public:
};
Tecnólogo en Informática – Programación Avanzada – Curso 2011
while (iter->hasCurrent()){
res->add(data);
iter->next();
return res;
}
Tecnólogo en Informática – Programación Avanzada – Curso 2011
if (cons == NULL){
consultas->add(ks,consulta);
else{
consulta->setNumero(num+1);