Buscar

Computação Básica - Matrizes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
COMPUTAÇÃO BÁSICA
Matrizes
Prof. Bruno Macchiavello (bruno@cic.unb.br)
Universidade de Brasília – UnB 
Instituto de Ciências Exatas – IE 
Departamento de Ciência da Computação – CIC 
Prof. Bruno Macchiavello 1
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Matrizes
• Ao igual que os vetores as matrizes são
estruturas de dados homogêneos (dados do
mesmo tipo).
• A idéia também agrupar dados do mesmo tipo
com um mesmo identificador, e acessar cada
dado a partir do índice.
• Na verdade o vetor é uma matriz, chamada de
matriz unidimensional.
Prof. Bruno Macchiavello 2
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Matrizes
• Lembrado o vetor:
. . .
0 1 2 N-2 N-1
Conteúdo do vetor
• Podemos armazenar vários dados do mesmo tipo, num 
mesmo vetor. Cada dado é armazenado numa posição 
indicada pelo seu índice i. Exemplo: Vetor[0], Vetor[5], 
etc. Como o vetor possui somente UM índice, então ele 
tem UMA dimensão.
Prof. Bruno Macchiavello 3
0 1 2 N-2 N-1
Índice ou posição
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Matrizes
• Porém, muitas vezes é útil ter mais de uma dimensão. Por exemplo,
ter um vetor de vetores, ou seja, uma matriz de DUAS dimensões.
. . .0
0 1 2 N-1
Esta matriz tem M vetores
Prof. Bruno Macchiavello 4
. . .
. . .
.
.
.
.
.
.
.
.
.
.
.
. 
.
.
.
. . .
1
2
M-1
Esta matriz tem M vetores
de N posições. Ou
simplesmente é uma matriz
MxN.
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Matrizes
• Para ter aceso a cada elemento da matriz
devemos indicar o índice de cada dimensão:
Matriz[i][j]
Prof. Bruno Macchiavello 5
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Matrizes
10 8 5 1
5 7 7 7
8 0 0 9
Notas =
• Exemplo: O elemento Notas[0][0] representa o
dado de valor 10, o elemento Notas[2][3]
representa o dado de valor 9. (note que
começamos a contagem a partir de 0, como em
vetores).
Prof. Bruno Macchiavello 6
8 0 0 9
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exemplo
Exemplo:
Faça um algoritmo que leia uma matriz 5x5 inserida
pelo usuário.
Algoritmo LeituraMAT
Variáveis
i, j : inteiro
MAT : matriz[5][5] de inteiros
Teste de Mesa
i j
0 0 leia(matriz[0][0]) 
0 1 leia(matriz[0][1]) 
0 2 leia(matriz[0][2]) 
0 3 leia(matriz[0][3]) 
0 4 leia(matriz[0][4])
Prof. Bruno Macchiavello 7
MAT : matriz[5][5] de inteiros
Início
Para i = 0 até 4 faça
Para j = 0 até 4 faça
Escreva ("Digite o elemento “,i+1, j+1, 
“ da matriz: ”) 
Leia(MAT[i][j]) 
FimPara
FimPara
Fim
0 4 leia(matriz[0][4]) 
1 0 leia(matriz[1][0]) 
1 1 leia(matriz[1][1]) 
1 2 leia(matriz[1][2]) 
1 3 leia(matriz[1][3]) 
...
…
4 3 leia(matriz[4][3]) 
4 4 leia(matriz[4][4]) 
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exemplo 2
Exemplo:
Faça um algoritmo que leia uma matriz MxN inserida pelo usuário, calcula
a soma e a média dos elementos.
Algoritmo SomaEMedia
Variáveis
i, j, M, N, soma : inteiro
media : real
MAT : matriz[100][100] de inteiros
Início
Prof. Bruno Macchiavello 8
Início
Leia(M,N);
Para i ← 0 até M-1 faça
Para j ← 0 até N-1 faça
Leia(MAT[i][j]) 
FimPara
FimPara
soma ← 0
Para i ← 0 até M-1 faça
Para j = 0 até N-1 faça
soma ← soma + MAT[i][j]
FimPara
FimPara
media←(soma/(M*N))
Escreva(“Soma = ",soma, “Media= ”,media);
Fim
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exemplo
Exemplo:
Programa que lê uma matriz 5x5 inserida pelo usuário e a imprime na tela.
#include <stdio.h>
int main () {
int i, j;
int MAT[5][5];
for (i=0; i<5; i++) {
Prof. Bruno Macchiavello 9
for (i=0; i<5; i++) {
for (j=0; j<5; j++) {
scanf(“%d”,&MAT[i][j]);
}
}
for (i=0; i<5; i++) {
for (j=0; j<5; j++) {
printf(“%d\t”,MAT[i][j]);
}
printf(“\n”);
}
getchar();
return 0;
}
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Observações
• No exemplo anterior, note o “\t” que é colocado após o %d. O que
ele faz é tabular tudo o que vier em seguida naquela mesma linha,
mantendo os números alinhados mesmo que possuam números
diferentes de casas.
• Observe também que há um “\n” inserido após cada for da variávelj. Isso ocorre para colocar uma nova linha a cada vez que o i é
incrementado, fazendo a matriz ter cara de matriz mesmo (o i
realmente vai representar uma nova linha).realmente vai representar uma nova linha).
• Por fim, repare que há ainda a necessidade de se usar o símbolo
“&” antes do nome da variável a ser lida, para representar o
endereço de memória na qual ela se encontra.
• Caso, seja necesario ler um string é armazenar ele numa matriz, ao
fazer a leitura somente é necesario indicar a posição da primeira
dimensão. Exemplo: se foi declarado uma matriz do tipo “char
literal[3][10]”, significa que vao poder ser armazenados 3 strings
cada um no máximo de 10 caracteres. Para ler o primero string
deve-se fazer por exemplo “scanf(“%s”, literal[0])”
Prof. Bruno Macchiavello 10
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Matrizes
• Uma matriz pode ter quantas dimensões seja necessário.
• Por exemplo uma matriz de 3 dimensões seria Matriz[i][j][k] 
• Porém, não é bom utilizar matrizes de MUITAS dimensões, é 
melhor organizar os dados de outras formas como por exemplo 
utilizando registros.
Prof. Bruno Macchiavello 11
Departamento de Ciência da ComputaçãoDepartamento de Ciência da Computação
Universidade Universidade de de BrasíliaBrasília
Computação BásicaComputação Básica
Exercícios
1. Escrever um algoritmo que leia uma matriz 3x3 e calcule seu 
determinante, mostrando o resultado na tela.
O determinante de uma matriz 3x3 matrix é calculado através de suas
diagonais. 
Prof. Bruno Macchiavello 12
2. Faça um programa lê uma matriz A 7 x 7 de números e cria 2 vetores 
ML(7) e MC(7), que contenham, respectivamente, o maior elemento de 
cada uma das linhas e o menor elemento de cada uma das colunas. 
Escrever a matriz A e os vetores ML e MC.

Continue navegando