Professional Documents
Culture Documents
Aula 08 Matrizes
Manter o celular sempre desligado/silencioso quando estiver em sala de aula Nunca atender o celular em sala de aula
Objetivo da aula
Matrizes
Em C++, as matrizes podem ser:
Unidimensionais (vetores) Multidimensionais (duas ou mais dimenses) As matrizes so armazenadas de forma linear
int m[4][3];
Valor
... 5 10 15 20 25 30 35 40 45
{50,55,60}};
colunas
5 10 25 15 30
20
140
144 148 152
50
55 60 ...
35
50
40
55
45
60
m[0][0] m[0][1] m[0][2] m[1][0] m[1][1] m[1][2] m[2][0] m[2][1] m[2][2] m[3][0] m[3][1] m[3][2]
linhas
Matrizes bidimensionais
Matrizes de duas dimenses so matrizes em que os elementos so outras matrizes.
Os elementos de uma matriz bidimensional so acessados com indexao dupla: o primeiro ndice acessa a linha e o segundo acessa a coluna.
m[0][0]
m[1][2]
Acessa o elemento da primeira linha e primeira coluna Acessa o elemento da segunda linha e terceira coluna
int main(){ int m[3][4], i, j; for(i=0; i<3; i++) for(j=0; j<4; j++) m[i][j] = (i*4)+j+1; for(i=0; i<3; i++) { for(j=0; j<4; j++) cout << m[i][j] << ; cout << endl; } return 0; }
int main(){ int m[3][4], i, j; for(i=0; i<3; i++) for(j=0; j<4; j++) m[i][j] = (i*4)+j+1; for(i=0; i<3; i++) { for(j=0; j<4; j++) cout << m[i][j] << ; cout << endl; } return 0; }
Inicializao de matrizes
As trs formas a seguir podem ser usadas:
int m[4][3] = {{1,2,3}, {4,5,6}, {7,8,9}, {10,11,12}}; int m[4][3] = {1,2,3,4,5,6,7,8,9,10,11,12}; int m[ ][3] = {1,2,3,4,5,6,7,8,9,10,11,12};
int m[4][3];
Matrizes multidimensionais
O nmero mximo de dimenses depende do compilador.
A forma geral da declarao :
tipo nome[tamanho1][tamanho2]...[tamanhoN];
int m[4][3][6][5];
Exerccio 1
Dada uma matriz bidimensional de dimenso MxN, calcular e imprimir a matriz transposta. O usurio deve fornecer os tamanhos da matriz e, em seguida, os elementos da matriz. Observao: M, N <= 30 M e N devem ser lidos.
Exerccio 2
Determinar se uma matriz NxN uma matriz de permutao. Uma matriz quadrada chamada de matriz de permutao se seus elementos so apenas 0s e 1s e se em cada linha e coluna da matriz existe apenas um nico valor 1. Exemplo: A matriz ao lado uma matriz de 1 0 0 0 permutao. 0 0 0 1 Observao: 0 0 1 0 N <= 30 0 1 0 0 N deve ser lido.
Exerccio 3
Dadas duas matrizes A (M x N) e B (K x L) reais, encontrar e escrever uma matriz C (M x L) onde C obtida pelo produto de A por B (C = A x B). Observao: M <= 30, N <= 40, K <= 40, L <= 50 M, N, K, L devem ser lidos. EX:
Exerccio 4
Dizemos que uma matriz quadrada inteira um quadrado mgico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos das diagonais principal e secundria so todas iguais. Dada uma matriz quadrada Anxn , verificar se A um quadrado mgico
um quadrado mgico
Exerccio 5
(POLI 94) Os elementos aij de uma matriz inteira Anxn
representam os custos de transporte da cidade i para a cidade j. Dados uma matriz de custos Anxn e n (n <= 100) itinerrios, cada um com k (k <= 30) cidades, calcular o custo total para cada itinerrio. Exemplo: O custo do itinerrio 03133210 a03+a31+a13+a33+a32+a21+a10= 3 + 1 + 400 + 5 + 2 + 1 + 5 = 417