Buscar

Algoritmos 17 - Matrizes

Prévia do material em texto

N575 - Algoritmos e 
Programação de Computadores 
 
Matrizes 
 
Prof. Raphael Torres Santos Carvalho 
N
5
7
5
 -
 A
lg
o
ri
tm
o
s 
e 
P
ro
gr
am
aç
ão
 d
e 
C
o
m
p
u
ta
d
o
re
s 
1 
Roteiro 
 Objetivo 
 Matrizes 
 
N
5
7
5
 -
 A
lg
o
ri
tm
o
s 
e 
P
ro
gr
am
aç
ão
 d
e 
C
o
m
p
u
ta
d
o
re
s 
2 
Objetivo 
 Identificar coleções de elementos de dados do tipos vetores 
apresentando métodos aplicados a essa estrutura. 
N
5
7
5
 -
 A
lg
o
ri
tm
o
s 
e 
P
ro
gr
am
aç
ão
 d
e 
C
o
m
p
u
ta
d
o
re
s 
3 
Relembrando... 
 Vetores são arrays unidimensionais, ou seja, são variáveis 
indexadas que possuem apenas um índice. 
 Os vetores são estruturas de dados compostas de várias 
posições, onde em cada posição podemos colocar um valor. 
 Quando nós dizemos que uma variável é do tipo vetor nela 
podemos armazenar várias informações do mesmo tipo (por 
isto os vetores são estruturas de dados homogêneas) 
colocando cada informação em uma posição diferente. 
 N
5
7
5
 -
 A
lg
o
ri
tm
o
s 
e 
P
ro
gr
am
aç
ão
 d
e 
C
o
m
p
u
ta
d
o
re
s 
4 
Relembrando... 
 Sintaxe da declaração de um vetor: 
 
tipo_da_variavel nome_da_variavel[numero_de_elementos]; 
 
 Por exemplo, se declararmos: 
float exemplo [20]; 
 
N
5
7
5
 -
 A
lg
o
ri
tm
o
s 
e 
P
ro
gr
am
aç
ão
 d
e 
C
o
m
p
u
ta
d
o
re
s 
5 
Matrizes 
 Os vetores, ou variáveis compostas unidimensionais, têm 
como principal característica a necessidade de apenas um 
índice para endereçamento. 
 Uma estrutura que precise de mais de um índice será 
denominada estrutura composta multidimensional. 
 As variáveis compostas multidimensionais mais utilizadas são 
as bidimensionais ou matrizes. 
 Geralmente, utilizamos matrizes em situações que precisam 
de linhas e colunas para a identificação de elementos. 
 
N
5
7
5
 -
 A
lg
o
ri
tm
o
s 
e 
P
ro
gr
am
aç
ão
 d
e 
C
o
m
p
u
ta
d
o
re
s 
6 
Matrizes 
 Exemplo de uma matriz A(3x2) 
 
 
 
 
 Os números subscritos indicam os índices dos elementos da 
matriz. 
 Na linguagem C, as matrizes são declaradas da seguinte forma: 
 
tipo identificador [linhas][colunas]; 
 
 
N
5
7
5
 -
 A
lg
o
ri
tm
o
s 
e 
P
ro
gr
am
aç
ão
 d
e 
C
o
m
p
u
ta
d
o
re
s 
7 
Atribuição de matrizes 
 A atribuição de dados de um matriz ocorre utilizando dois índices, 
um para linha e outro para coluna. Neste caso, utilizamos dois laços 
for um dentro do outro. 
 Exemplo: 
 
int main(void) { 
 int l, c; 
 int m[3][4]; 
 
 for(l=0; l<3; l++) { 
 for(c=0; c<4; c++) { 
 m[l][c] = 4 * l + c +1; 
 printf(“m[%d][%d] = %d “, l, c, m[l][c]); 
 } 
 printf(“\n“); 
 } 
 return 0; 
} 
 
 
 
 
N
5
7
5
 -
 A
lg
o
ri
tm
o
s 
e 
P
ro
gr
am
aç
ão
 d
e 
C
o
m
p
u
ta
d
o
re
s 
8 
Leitura de matrizes 
 A leitura de dados de uma matriz é realizada utilizando dois 
laços. 
 Exemplo: 
 
int main(void) { 
 int l, c; 
 int m[3][4]; 
 
 for(l=0; l<3; l++) { 
 for(c=0; c<4; c++) { 
 printf(“Digite o elemento m[%d][%d] = “, l, c); 
 scanf(“%d”, &m[l][c]); 
 } 
 } 
 return 0; 
} 
N
5
7
5
 -
 A
lg
o
ri
tm
o
s 
e 
P
ro
gr
am
aç
ão
 d
e 
C
o
m
p
u
ta
d
o
re
s 
9 
Escrita de matrizes 
 É semelhante a leitura de dados, em que se utiliza dois laços, um para cada 
índice. 
 Exemplo: 
 
for(l=0; l<3; l++) { 
 for(c=0; c<4; c++) { 
 printf(“m[%d][%d] = %d “, l, c, m[l][c]); 
} 
 printf(“\n”); 
} 
 
ou 
 
printf("M=\n"); 
for(l=0; l<3; l++) { 
 for(c=0; c<2; c++) { 
 printf(" %d", m[l][c]); 
 } 
 printf("\n"); 
} 
N
5
7
5
 -
 A
lg
o
ri
tm
o
s 
e 
P
ro
gr
am
aç
ão
 d
e 
C
o
m
p
u
ta
d
o
re
s 
10 
Exercício 
 Qual o resultado da matriz C = A + B sabendo que: 
 
 
 
 
O primeiro elemento do vetor A deve ser somado com o 
primeiro elemento do vetor B e assim sucessivamente. 
 Faça um algoritmo que inverta uma matriz de tamanho 3 x 3, 
ou seja, dê sua matriz transposta. 
 Faça um algoritmo que multiplique duas matrizes. A primeira 
4 x 2 e a segunda 2 x 4. 
 
 
N
5
7
5
 -
 A
lg
o
ri
tm
o
s 
e 
P
ro
gr
am
aç
ão
 d
e 
C
o
m
p
u
ta
d
o
re
s 
11 
Dúvidas? 
N
5
7
5
 -
 A
lg
o
ri
tm
o
s 
e 
P
ro
gr
am
aç
ão
 d
e 
C
o
m
p
u
ta
d
o
re
s 
12

Continue navegando