Elenet.net
+1 voto
Prof mi potrebbe spiegare per favore come si può fare questo esercizio:

Date due matrici x[3][3] e y[3][3], caricarle attraverso una finzione con passaggio di parametri, dove il parametro è la matrice, e trasformarle scambiando la prima riga di X con l'ultima colonna di Y, la seconda riga di X con la penultima colonna di Y e così via.

Nelle matrici così trasformate calcolare la matrice z=5y-4x dove 5y vuol dire moltiplicare ogni elemento di Y per 5 e 4x moltiplicare ogni elemento di X per 4.

Grazie.
quesito posto 22 Marzo 2017 in Classe terza da Paolo Migliarba (31 punti)
  

1 Risposta

+1 voto
#include <iostream>

using namespace std;

void caricamatrici(float matrice[3][3]);
void scambia (float &x, float &y);
void cambiavalori (float matricea[3][3], float matriceb[3][3]  );

void stampa_matrice (float matrice[3][3] );

int main(int argc, char** argv)
{
    float x[3][3];
    float y[3][3];
    cout<<" carica la matrice x \n \n ";
    caricamatrici(x);
    cout<<"\n \n matrice x caricata stampa di x \n \n ";
    stampa_matrice (x);
            cout<<" carica la matrice y \n \n ";
    caricamatrici(y);
    cout<<"\n \n matrice y caricata stampa di x \n \n ";
    stampa_matrice (y);
       
    cambiavalori (x,y);
    cout<<" \n \n dopo lo scambio abbiamo che la matrice x = \n \n ";
    stampa_matrice (x);
    
    cout<<" \n \n dopo lo scambio abbiamo che la matrice y = \n \n ";
    stampa_matrice (y);
    
    
    return 0;
}

void stampa_matrice (float matrice[3][3])
{
    cout <<" \n \n  ";
     for (int i=0; i<3; i++){
        cout << "\n";
        for(int j=0; j<3; j++)
        {
            cout <<"|" << matrice[i][j];
        }
    }
    cout <<" \n \n  ";
        
    }
void scambia (float &x, float &y)
{
    float t;
    t=x;
    x=y;
    y=t;
   
    }

void caricamatrici(float matrice[3][3])
{
    int i,j;
    for (i=0; i<3; i++){
        cout << endl;
        for (j=0; j<3; j++){
            cout << "inserisci elemento ";
            cin >> matrice[i][j];
        }
    }
}

void cambiavalori (float matricea[3][3], float matriceb[3][3]  )
{
    int riga, colonna, k, numeroscambi;
    riga =0;
    colonna=0;
      int ultimo =2;
      for (numeroscambi=0; numeroscambi<=2; numeroscambi++)
      {
    for (riga=0; riga<3; riga++)
    {
          
            scambia (matricea[riga][colonna] , matriceb[riga][ultimo]);
            
            
         }
             colonna= colonna + 1;  
            ultimo = ultimo - 1;
       }
           
       }
           
                 
          
            
        
        
        
        
     
    
    
    
    
    

#include <iostream>

using namespace std;

void caricamatrici(float matrice[3][3]);
void scambia (float &x, float &y);
void cambiavalori (float matricea[3][3], float matriceb[3][3]  );

void stampa_matrice (float matrice[3][3] );

int main(int argc, char** argv)
{
    float x[3][3];
    float y[3][3];
    cout<<" carica la matrice x \n \n ";
    caricamatrici(x);
    cout<<"\n \n matrice x caricata stampa di x \n \n ";
    stampa_matrice (x);
            cout<<" carica la matrice y \n \n ";
    caricamatrici(y);
    cout<<"\n \n matrice y caricata stampa di x \n \n ";
    stampa_matrice (y);
       
    cambiavalori (x,y);
    cout<<" \n \n dopo lo scambio abbiamo che la matrice x = \n \n ";
    stampa_matrice (x);
    
    cout<<" \n \n dopo lo scambio abbiamo che la matrice y = \n \n ";
    stampa_matrice (y);
    
    
    return 0;
}

void stampa_matrice (float matrice[3][3])
{
    cout <<" \n \n  ";
     for (int i=0; i<3; i++){
        cout << "\n";
        for(int j=0; j<3; j++)
        {
            cout <<"|" << matrice[i][j];
        }
    }
    cout <<" \n \n  ";
        
    }
void scambia (float &x, float &y)
{
    float t;
    t=x;
    x=y;
    y=t;
   
    }

void caricamatrici(float matrice[3][3])
{
    int i,j;
    for (i=0; i<3; i++){
        cout << endl;
        for (j=0; j<3; j++){
            cout << "inserisci elemento ";
            cin >> matrice[i][j];
        }
    }
}

void cambiavalori (float matricea[3][3], float matriceb[3][3]  )
{
    int riga, colonna, k, numeroscambi;
    riga =0;
    colonna=0;
      int ultimo =2;
      for (numeroscambi=0; numeroscambi<=2; numeroscambi++)
      {
    for (riga=0; riga<3; riga++)
    {
          
            scambia (matricea[riga][colonna] , matriceb[riga][ultimo]);
            
            
         }
             colonna= colonna + 1;  
            ultimo = ultimo - 1;
       }
           
       }
           
                 
          
            
        
        
        
        
     
    

#include <iostream>

using namespace std;

void caricamatrici(float matrice[3][3]);
void scambia (float &x, float &y);
void cambiavalori (float matricea[3][3], float matriceb[3][3]  );

void stampa_matrice (float matrice[3][3] );

int main(int argc, char** argv)
{
    float x[3][3];
    float y[3][3];
    cout<<" carica la matrice x \n \n ";
    caricamatrici(x);
    cout<<"\n \n matrice x caricata stampa di x \n \n ";
    stampa_matrice (x);
            cout<<" carica la matrice y \n \n ";
    caricamatrici(y);
    cout<<"\n \n matrice y caricata stampa di x \n \n ";
    stampa_matrice (y);
       
    cambiavalori (x,y);
    cout<<" \n \n dopo lo scambio abbiamo che la matrice x = \n \n ";
    stampa_matrice (x);
    
    cout<<" \n \n dopo lo scambio abbiamo che la matrice y = \n \n ";
    stampa_matrice (y);
    
    
    return 0;
}

void stampa_matrice (float matrice[3][3])
{
    cout <<" \n \n  ";
     for (int i=0; i<3; i++){
        cout << "\n";
        for(int j=0; j<3; j++)
        {
            cout <<"|" << matrice[i][j];
        }
    }
    cout <<" \n \n  ";
        
    }
void scambia (float &x, float &y)
{
    float t;
    t=x;
    x=y;
    y=t;
   
    }

void caricamatrici(float matrice[3][3])
{
    int i,j;
    for (i=0; i<3; i++){
        cout << endl;
        for (j=0; j<3; j++){
            cout << "inserisci elemento ";
            cin >> matrice[i][j];
        }
    }
}

void cambiavalori (float matricea[3][3], float matriceb[3][3]  )
{
    int riga, colonna, k, numeroscambi;
    riga =0;
    colonna=0;
      int ultimo =2;
      for (numeroscambi=0; numeroscambi<=2; numeroscambi++)
      {
    for (riga=0; riga<3; riga++)
    {
          
            scambia (matricea[riga][colonna] , matriceb[riga][ultimo]);
            
            
         }
             colonna= colonna + 1;  
            ultimo = ultimo - 1;
       }
           
       }
risposta inviata 22 Marzo 2017 da nicolo' guarino Esperto (687 punti)
professore questo codice che mi ha scritto mi inverte solamente la matrice invece il mio programma mi deve dare questo:

x= 1|2|3        y=5|7|5
     4|5|6            4|6|8
     7|8|9            1|4|9

come risultato devono dare:

x=5|8|9       y=7|4|1
    7|6|4           8|5|2
    5|4|1           9|6|3

Domande correlate

+2 voti
2 risposte
quesito posto 18 Marzo 2017 in Classe terza da Paolo Migliarba (31 punti) | 198 visite
+1 voto
3 risposte
quesito posto 18 Marzo 2017 in Classe terza da Paolo Migliarba (31 punti) | 197 visite
0 voti
2 risposte
quesito posto 26 Marzo 2017 in Classe terza da ChiaraCarli Corsista (49 punti) | 225 visite
778 domande
1,565 risposte
639 commenti
1,445 utenti