Exercici 1 · Metodologia de la Programació UAB 2024
Tema: Disseny de classes: declaració, const i sobrecàrrega d'operadors · Del examen Examen Primer Parcial Curs 2024-2025 (2024)
Enunciado
Exercici 1 (1,5 punts). Sobrecàrrega d'operadors a Conjunt
Es vol dissenyar una classe anomenada Conjunt que serveixi per gestionar col·leccions de valors enters mitjançant arrays estàtics. La representació privada definida és la següent:
const int MAX_ELEMENTS = 100;
class Conjunt {
private:
int m_elements[MAX_ELEMENTS];
int m_nElements;
};
Cal afegir la sobrecàrrega dels següents operadors:
Operador binari +: calcula la unió entre dos conjunts, creant i retornant una nova instància sense alterar els dos conjunts d'origen.
Operador binari *: calcula la intersecció de dos conjunts, retornant un nou objecte amb el resultat i preservant intactes els originals.
Operador binari +: insereix un nou número enter a un conjunt existent. L'objecte que fa la crida s'ha de modificar directament i no es retorna cap valor.
Operador ==: avalua si dos conjunts tenen exactament els mateixos elements.
Operador <: comprova si el primer conjunt es troba contingut (inclòs) dins d'un segon conjunt.
Operador >: determina si un valor enter concret forma part dels elements d'un conjunt.
a)
Especifiqueu la declaració de la interfície pública de la classe Conjunt que contingui les capçaleres de tots els operadors esmentats. Presteu atenció als tipus dels paràmetres, als valors retornats i a l'ús adequat del qualificador const (tant en els paràmetres com en els mètodes). Només cal escriure les signatures a la capçalera, no la seva implementació.
b)
Suposant declarades les variables Conjunt c1, c2, c3; int n;, redacteu les instruccions en C++ que executin la següent lògica emprant exclusivament els operadors sobrecarregats a l'apartat anterior:
Verificar si n no pertany a c1; en aquest cas, afegir n a c1 i seguidament calcular la unió de c1 amb c2, emmagatzemant el resultat final a c3.
Calcular la intersecció entre c1 i c2 (emmagatzemada a c3) únicament si c1 no està inclòs dins de c2.

Solución
Según los criterios oficiales de corrección
a. Especifiqueu la declaració de la interfície pública de la classe Conjunt que contingui les capçaleres de tots els operadors esmentats.
Solución: ```cpp Conjunt operator+(const Conjunt& altre) const; Conjunt operator*(const Conjunt& altre) const; void operator+(int nouElement); bool operator==(const Conjunt& altre) const; bool operator<(const Conjunt& altre) const; bool operator>(int element) const; ```
b. Suposant declarades les variables Conjunt c1, c2, c3; int n; , redacteu les instruccions en C++ que executin la següent lògica emprant exclusivament els operadors sobrecarregats a l'apartat anterior
Solución: ```cpp if (!(c1 > n)) { c1 + n; c3 = c1 + c2; } if (!(c1 < c2)) { c3 = c1 * c2; } ```
La explicación paso a paso, hecha con IA, es Premium. Premium
Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.