Matriz Resolucao Do Grupo 4
/*
Programa que carregua uma matriz 5x5 com números inteiros positivos pelo usuário e executa (na sequência):
* O elemento da 3a. linha, 2a. coluna pelo elemento da 2a. linha 4a. coluna;
* A primeira linha pela quarta linha;
* A terceira coluna com a primeira coluna;
* A diagonal principal pela secundária.
Obs.: Após o carregamento da matriz, imprima-a. Para cada item listado acima, vá mostrando a matriz.
 
Programadores: José Carlos, Kíssila e Marcelo. -GRUPO 4-
Professora: Msc: Cláudia Akemi Izeki.
maio de 2010
*/
#include <iostream>
using namespace std;
int main()
{
    system ("title ::::SUBSTITUICAO COM MATRIZ::::");
    int Matriz[5][5], Linha, Coluna,Coluna2, Diagonalp[5], Diagonals[5], acumula[5],Matrizcal[5][5];
 
    for (Linha = 0; Linha < 5; Linha++)       
      for (Coluna = 0; Coluna < 5; Coluna++)
        {
          //cout << "\nPor favor entre com o elemento da linha   " << Linha + 1 << " e coluna  " << Coluna + 1 << ".  ";
          //cin  >> Matriz [Linha][Coluna];
          Matriz[Linha][Coluna]=rand()%50;
        }
 
    // --- Impressao da matriz---- 
    cout << "\n::::MATRIZ::::\n";
 
    for (Linha = 0; Linha < 5 ; Linha ++)
       {
            cout << "\n\t";
            for (Coluna = 0; Coluna < 5; Coluna++)
               {
                    if ( Matriz[Linha][Coluna] <= 9)// if feito para alinhar a impressao
                        cout << " " << Matriz[Linha][Coluna] << "  "; 
                        else 
                          cout << Matriz[Linha][Coluna] << "  "; 
               }
 
       }
 
    //O elemento da 3a. linha, 2a. coluna pelo elemento da 2a. linha 4a. coluna
     for (Linha = 0; Linha < 5 ; Linha ++)
         for (Coluna = 0; Coluna < 5; Coluna++)
         Matrizcal[Linha][Coluna]=Matriz[Linha][Coluna];
 
    acumula[0] = Matrizcal[2] [1]; 
    Matrizcal[2] [1]= Matrizcal[1] [3];
    Matrizcal[1] [3] = acumula[0];
 
    // --- Impressao da matriz---- 
    cout << "\n\n- O elemeto da 3a.L. 2a.C. pelo elemento da 2a.L. 4a.C:\n ";
    for (Linha = 0; Linha < 5 ; Linha ++)
       {
            cout << "\n\t";
            for (Coluna = 0; Coluna < 5; Coluna++)
               {
                    if ( Matrizcal[Linha][Coluna] <= 9)// if feito para alinhar a impressao
                        cout << " " << Matrizcal[Linha][Coluna] << "  "; 
                        else 
                          cout << Matrizcal[Linha][Coluna] << "  "; 
               }
 
       }
 
    // A primeira linha pela quarta linha;
     for (Linha = 0; Linha < 5 ; Linha ++)
         for (Coluna = 0; Coluna < 5; Coluna++)
         Matrizcal[Linha][Coluna]=Matriz[Linha][Coluna];
 
    for (Coluna=0;Coluna <5; Coluna++)  
      {
           acumula[Coluna] = Matrizcal[0][Coluna];
           Matrizcal [0][Coluna] =  Matrizcal [3][Coluna];
           Matrizcal [3][Coluna] = acumula[Coluna];
 
      }
 
    // --- Impressao da matriz---- 
    cout << "\n\n- A  primeira linha pela quarta linha:\n "; 
 
    for (Linha = 0; Linha < 5 ; Linha ++)
       {
            cout << "\n\t";
            for (Coluna = 0; Coluna < 5; Coluna++)
               {
                    if ( Matrizcal[Linha][Coluna] <= 9)// if feito para alinhar a impressao
                        cout << " " << Matrizcal[Linha][Coluna] << "  "; 
                        else 
                          cout << Matrizcal[Linha][Coluna] << "  "; 
               }
 
       }
 
    // A terceira coluna com a primeira coluna;
     for (Linha = 0; Linha < 5 ; Linha ++)
         for (Coluna = 0; Coluna < 5; Coluna++)
         Matrizcal[Linha][Coluna]=Matriz[Linha][Coluna];
 
    for (Linha=0;Linha <5; Linha++)  
      {
           acumula[Linha]= Matrizcal[Linha][2];
           Matrizcal [Linha][2] =  Matrizcal [Linha][0];
           Matrizcal [Linha][0]= acumula[Linha];
 
      }
 
    // --- Impressao da matriz---- 
    cout << "\n\n-A  terceira coluna pela primeira coluna: \n";
 
    for (Linha = 0; Linha < 5 ; Linha ++)
       {
            cout << "\n\t";
            for (Coluna = 0; Coluna < 5; Coluna++)
               {
                    if ( Matrizcal[Linha][Coluna] <= 9)// if feito para alinhar a impressao
                        cout << " " << Matrizcal[Linha][Coluna] << "  "; 
                        else 
                          cout << Matrizcal[Linha][Coluna] << "  "; 
               }
 
       }
 
    //A diagonal principal pela secundária.
     for (Linha = 0; Linha < 5 ; Linha ++)
         for (Coluna = 0; Coluna < 5; Coluna++)
             Matrizcal[Linha][Coluna]=  Matriz[Linha][Coluna];
    //encontra as diagonais   
    Coluna2=4;
    for (Linha=0; Linha<5; Linha++)
     {
        for (Coluna = 0; Coluna <5; Coluna++)
           if(Linha==Coluna)
               Diagonalp[Linha] = Matrizcal[Linha][Coluna];
        Diagonals[Linha] = Matrizcal[Linha][Coluna2];
        Coluna2=Coluna2-1;  
     }
    //fazer a troca
    for (Linha= 0; Linha<5; Linha ++)
     {
           acumula[Linha]= Diagonalp[Linha];
           Diagonalp[Linha] = Diagonals[Linha];
           Diagonals[Linha] = acumula [Linha];
 
     }
     //reorganizar a matriz
     Coluna2=4;
     for (Linha=0; Linha<5; Linha++)
     {
        for (Coluna = 0; Coluna <5; Coluna++)
           if(Linha==Coluna)
               Matrizcal[Linha][Coluna]= Diagonalp[Linha];
        Matrizcal[Linha][Coluna2]= Diagonals[Linha];
        Coluna2=Coluna2-1;  
     }
      // --- Impressao da matriz---- 
 
    cout << "\n- A diagonal principal pela diagonal secundaria:\n ";
 
    for (Linha = 0; Linha < 5 ; Linha ++)
       {
            cout << "\n\t";
            for (Coluna = 0; Coluna < 5; Coluna++)
               {
                    if ( Matrizcal[Linha][Coluna] <= 9)// if feito para alinhar a impressao
                        cout << " " << Matrizcal[Linha][Coluna] << "  "; 
                        else 
                          cout << Matrizcal[Linha][Coluna] << "  "; 
               }
 
       }
 
    system("pause>null");
    return 0;
}

Correção pela professora (o grupo não avaliou!)

  1. Os dois últimos itens do exercício estão com soluções incorretas:
  • A terceira coluna com a primeira coluna
  • A diagonal principal pela secundária.
    // Trocar a 3a coluna pela 1a coluna...
    int temp;
    for(Linha=0;Linha<5;Linha++)
    {
         temp = Matrizcal[Linha][0];
         Matrizcal[Linha][0] = Matrizcal[Linha][2];
         Matrizcal[Linha][2] = temp;
    }

    // Trocar a diagonal principal pela secundária
    for (Linha=0; Linha<5; Linha++)
    {
         temp = Matrizcal[Linha][Linha];
         Matrizcal[Linha][Linha] = Matrizcal[Linha][4-Linha];
         Matrizcal[Linha][4-Linha] = temp;
    }

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License