/* programma che effettua operazioni matematiche con le matrici somma tra matrici prodotto tra matrici prodotto tra matrice e numero scalare Riontino Raffaele 3 AS INF 21-12-'09 aggiunta della matrice trasposta */ // direttive #include #include #include #include using namespace std; // variabili globali char scelta; int i, j, righe, colonne; // prototipi di funzioni void somma(); void prodotto(); void prodottoK(); void trasposta(); void menu(); void fine(); // main principale main() { system("color 79"); do{ menu(); // richiama la funzione menu switch (scelta) { case 'S': system("cls"); somma(); // richiama la funzione somma break; case 'P': system("cls"); prodotto(); // richiama la funzione prodotto break; case 'Y': system("cls"); prodottoK(); // richiama la funzione prodottoK break; case 'T': system("cls"); trasposta(); // richiama la funzione traversa break; case 'E': fine(); exit(0); //interrompe il programma break; default : system("cls"); cout << "\n\n Scelta non consentita.\n\n"; system("pause"); } // chiusura dello switch }while (1 == 1); } //chiusura del main principale // definizione della funzione menu void menu() { system("cls"); cout << "\n\t\tOperazioni con le Matrici.\n\n\n"; cout << "\t\t Menu' principale : \n\n\n\n"; cout << "\t - S - Somma di due matrici\n\n"; cout << "\t - P - Prodotto di due matrici\n\n"; cout << "\t - Y - Prodotto di una matrice con un numero scalare\n\n"; cout << "\t - T - Matrice trasposta\n\n"; cout << "\t - E - Esci\n\n\n\n"; cout << "\t Digita la lettera corrispondente alla scelta e premi invio..."; cin >> scelta; scelta = toupper(scelta); } // definizione della funzione somma() (somma di due matrici) void somma() { cout << "\n\n\t Somma di due matrici\n\n\n"; cout << " Dimensioni delle matrici \n\n"; cout << " Inserisci il numero di righe : = "; cin >> righe; cout << "\n\n Inserisci il numero di colonne : = "; cin >> colonne; cout << "\n\n Verranno create due matrici "<< righe << " X "<< colonne << "\n\n\n\n"; system("pause"); float ma[righe][colonne],mb[righe][colonne]; float mc[righe][colonne]; system("cls"); cout << "\n\tDimensione matrici = "<< righe<< " X "<< colonne; cout << "\n\n per ogni riga inserire " << colonne << " valori separati da spazio.\n\n"; cout << "\n\tCaricamento dei valori nella matrice A : \n\n"; for (i=0 ; i> ma[i][j]; cout << " \r"; } } cout << "\n\n\t Caricamento dei dati nella matrice B : \n\n"; for (i=0 ; i> mb[i][j]; cout << " \r"; } } cout << "\n\n\t Risultato della somma delle matrici :\n\n"; for (i=0 ; i> ma[i][j]; cout << " \r"; } } cout << "\n\n\t Caricamento dei dati nella matrice B "<< righeb << " X "<< colonneb << "\n\n"; cout << "\n per ogni riga inserire " << colonneb << " valori separati da spazio.\n\n"; for (i=0 ; i> mb[i][j]; cout << " \r"; } } cout << "\n\n\tRisultato del prodotto tra le matrici A e B : dimensione "<< righe<< " X "<< colonneb<< "\n\n"; mc[0][0]=0; for (i=0 ; i> righe; cout << "\n\n Inserisci il numero di colonne : = "; cin >> colonne; cout << "\n\n Verra' creata una matrice "<< righe << " X "<< colonne << "\n\n"; float ma[righe][colonne],k; cout << "\n\n Inserisci il valore del numero scalare : = "; cin >> k; cout << "\n\n\n"; system("pause"); system("cls"); cout << "\n\n\tCaricamento dei valori nella matrice "<< righe <<" X "<< colonne << " : \n"; cout << "\n\n per ogni riga inserire " << colonne << " valori separati da spazio.\n\n"; for (i=0 ; i> ma[i][j]; cout << " \r"; } } cout << "\n\n Prodotto della matrice con il numero scalare "<< k << " : \n\n"; for (i=0 ; i> righe; cout << "\n\n Inserisci il numero di colonne : = "; cin >> colonne; cout << "\n\n Verra' creata una matrice "<< righe << " X "<< colonne << "\n\n"; float ma[righe][colonne]; system ("pause"); system("cls"); cout << "\n\n\tCaricamento dei valori nella matrice "<< righe <<" X "<< colonne << " : \n"; cout << "\n\n per ogni riga inserire " << colonne << " valori separati da spazio.\n\n"; for (i=0 ; i> ma[i][j]; cout << " \r"; } } cout << "\n\n La matrice trasposta della matrice inserita e' :\n\n"; for (i=0 ; i