Esercizio 1 Scrivere una classe per gestire i numeri complessi con: - due attributi pubblici float: re, im - metodo di stampa del numero complesso su cout void stampa(); - metodo che richiede parte reale e parte immaginaria via cin all'utente void input(); // Basta fare due cin: una su parte reale, l'altra su parte immaginaria // Le operazioni lavorano sull'oggetto a destra dell'operatore punto. - metodo di calcolo del modulo del numero complesso float modulo(); - metodo di somma void somma(Complesso a); - metodo di moltiplicazione void moltiplicazione(Complesso a); - metodo di divisione void divisione(Complesso a); - metodo di sottrazione void sottrazione(Complesso a); Esercizio 2 Scrivere un programma che generi due matrice di dimensione mxn e nxk con m, n e k chiesti all'utente. Inizializzare la matrice nella posizione i,j con il valore i*j Calcolare il prodotto delle due matrici Stampare a video la matrice risultante. Dividere il programma in sottoprogrammi. Per esempiO: // Istanzia una matrice mxn e restituisce il puntatore alla memoria allocata double ** inputMatrice(int m, int n); // Istanzia una nuova matrice mxk e ne restituisce il puntatore. La matrice mxk conterrą il prodotto delle matrici mat1 (di dimensione mxn) e mat2 (di dimensione nxk). double ** moltiplicaMatrice(double **mat1, int m, double **mat2, int m, int n, int k); // Stampa a video la matrice mat di dimensione mxn void stampaMatrice(double **mat, int m, int k);