Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- *
- * @author chesi.luca
- */
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- using namespace std;
- const int N=3, M=3;
- void leggiMatrice(int matrice[N][M]);
- void visualizzaMatrice(int matrice[N][M]);
- void diagonalePrincipale(int matrice [N][M]);
- void calcolaVisualizzaTrasposta(int m[N][M], int t[M][N]);
- void calcolaVisualizzaProdotto(int m1[N][M],int m2[M][N], int prodotto[N][N]);
- void randMatrice(int matrice[N][M]);
- void visualizzaRandMatrice(int matrice[N][M]);
- void sostituzioneValoreMatriciale(int matrice[N][M]);
- int main(){
- //system("COLOR 1F");
- srand(time(0));
- int matrice[N][M], trasposta[M][N], prodotto[N][N];
- int ciclo = 1, scelta = 0;
- // s==1 programma ciclico
- //
- //
- while (ciclo == 1)
- {
- cout << "Inserisci:\n0) Per uscire\n1) LETTURA MATRICE\n2) VISUALIZZA MATRICE\n3) VISUALIZZA MATRICE TRASPORTATA";
- cout << "\n4) VISUALIZZA PRODOTTO\n5) VISUALIZZA DIAGONALE PRINCIPALE\n6) RAND MATRICE\n7) VISUALIZZA RAND MATRICE";
- cout <<"\n8) SOSTITUISCI MATRICE\n\tScelta:";
- cin >> scelta;
- switch (scelta) {
- case(0): //esco dal programma
- cout << "Hai scelto 0, quindi il programma verra' chiuso\n";
- ciclo = 0;
- system("cls");
- break;
- case(1): //LETTURA MATRICE
- cout << "LETTURA MATRICE\n";
- leggiMatrice(matrice);
- cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
- cin >> ciclo;
- system("cls");
- break;
- case(2): //VISUALIZZA MATRICE
- cout << "VISUALIZZA MATRICE\n";
- visualizzaMatrice(matrice);
- cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
- cin >> ciclo;
- system("cls");
- break;
- case(3): //VISUALIZZA MATRICE TRASPORTATA
- cout << "VISUALIZZA MATRICE TRASPORTATA\n";
- calcolaVisualizzaTrasposta(matrice,trasposta);
- cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
- cin >> ciclo;
- system("cls");
- break;
- case(4): //VISUALIZZA PRODOTTO
- cout << "VISUALIZZA PRODOTTO\n";
- calcolaVisualizzaProdotto(matrice,trasposta,prodotto);
- cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
- cin >> ciclo;
- system("cls");
- break;
- case(5): //VISUALIZZA DIAGONALE PRINCIPALE
- cout << "VISUALIZZA DIAGONALE PRINCIPALE\n";
- diagonalePrincipale (matrice);
- cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
- cin >> ciclo;
- system("cls");
- break;
- case(6): //RAND MATRICE
- cout << "RAND MATRICE\n";
- randMatrice(matrice);
- cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
- cin >> ciclo;
- system("cls");
- break;
- case(7): //VISUALIZZA RAND MATRICE
- cout << "VISUALIZZA RAND MATRICE\n";
- visualizzaRandMatrice(matrice);
- cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
- cin >> ciclo;
- system("cls");
- break;
- case(8): //SOSTITUISCI MATRICE
- cout << "SOSTITUISCI MATRICE\n";
- sostituzioneValoreMatriciale(matrice);
- cout << "\n\n\nInserisci 1 per ripetere il programma\nInserisci un altro valore per chiudere il programma\n\t\tScelta: ";
- cin >> ciclo;
- system("cls");
- break;
- }
- if (ciclo != 1)
- {
- cout << "\nSicuro di voler davvero uscire?\nInserisci 1 per ripetere il programma ";
- cin >> ciclo;
- system("cls");
- }
- }
- }
- void leggiMatrice(int matrice[N][M]){
- cout << "Inserisci la matrice " << N << " x " << M << ": " <<endl;
- for (int i=0; i<N; i++)
- for(int j=0; j<M; j++)
- cin >> matrice[i][j];
- return;
- }
- void randMatrice(int matrice[N][M]){
- for (int i=0; i<N; i++)
- {
- for(int j=0; j<M; j++)
- {
- matrice[i][j] = 1+(rand()%100);
- }
- }
- return;
- }
- void visualizzaRandMatrice(int matrice[N][M]){
- cout << "La matrice inserita in modo randomico e': " <<endl;
- for (int i=0; i<N; i++){
- for(int j=0; j<M; j++){
- cout << matrice[i][j] << "\t";
- }
- cout <<endl;
- }
- return;
- }
- void visualizzaMatrice(int matrice[N][M]){
- cout << "La matrice inserita e': " <<endl;
- for (int i=0; i<N; i++){
- for(int j=0; j<M; j++){
- cout << matrice[i][j] << "\t";
- }
- cout <<endl;
- }
- return;
- }
- void diagonalePrincipale (int matrice [N][M])
- {
- for (int i=0;i<N;i++)
- {
- cout << matrice [i][i] << " ";
- }
- cout << endl;
- }
- void calcolaVisualizzaTrasposta(int m[N][M], int t[M][N]){
- cout << "La matrice trasposta e': " <<endl;
- //determina la matrice trasposta
- for (int i=0; i<N; i++){
- for(int j=0; j<M; j++){
- t[j][i]=m[i][j];
- }
- }
- //visualizza la matrice trasposta
- for(int i=0; i<M; i++){
- for(int j=0; j<N; j++){
- cout << t[i][j] << "\t";
- }
- cout <<endl;
- }
- return;
- }
- void calcolaVisualizzaProdotto(int m1[N][M],int m2[M][N], int prodotto[N][N]){
- int k;
- //determina la matrice prodotto
- for(int i=0; i<N; i++){ //i: blocca la riga di m1 da moltiplicare m1[i][?]
- for(int j=0; j<N; j++){ //j: blocca la colonna di m2 da moltiplicare m2[?][j]
- prodotto[i][j] = 0;
- for(k=0; k<M; k++){
- prodotto[i][j] += m1[i][k] * m2[k][j];
- }
- }
- }
- //visualizza la matrice prodotto
- cout << "La matrice prodotto delle due e': " <<endl;
- for (int i=0; i<N; i++){
- for(int j=0; j<N; j++){
- cout << prodotto[i][j] << "\t";
- }
- cout <<endl;
- }
- return;
- }
- void sostituzioneValoreMatriciale(int matrice[N][M])
- {
- int numero;
- cout << "Inserisci il minimo valore per cui sostituire esso con 100: ";
- cin >> numero;
- cout << "La nuova matrice coi valori sostituiti e': "<<endl;
- for (int i=0; i<N; i++){
- for(int j=0; j<M; j++){
- if(matrice[i][j] <= numero)
- {
- cout << matrice[i][j] << "\t";
- }else{
- matrice[i][j] = 100;
- cout << matrice[i][j] << "\t";
- }
- }
- cout <<endl;
- }
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement