Você está na página 1de 35

Variveis Compostas Homogneas Multidimensionais

Estruturas de Dados
Algoritmos e Programao 1 Danilo Soares Carneiro
Instituto de Informtica Universidade Federal de Gois

Engenharia de Computao, 2012/1

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Tpicos

Variveis Compostas Homogneas Multidimensionais Matrizes Exemplos Exerccios de Fixao

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Tpicos

Variveis Compostas Homogneas Multidimensionais Matrizes Exemplos Exerccios de Fixao

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Conjunto homogneo de dados. Mais de uma dimenso. Estrutura composta multidimensional. Analogia: Edifcio, seus andares e seus apartamentos.

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Matriz Nomearemos essa estrutura de matriz. Precisamos:


1 2 3

Denir como esse tipo constitudo. Declarar uma ou mais variveis. Associar o tipo a(s) varivel(is).

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais


Declarao de Matrizes tipo identificador = matriz [LI1..LF1, LI2..LF2] de tipo primitivo; Em que: LI1, LF1, LI2, LF2: limites inicial e nal da matriz nas dimenses 1 e 2 respectivamente. tipo primitivo: qualquer um dos tipos bsicos denidos anteriormente. O nmero de dimenses igual ao nmero de intervalos. O nmero de elementos igual ao produto do nmero de elementos de cada dimenso: (LF1 LI1 + 1) (LF2 LI2 + 1) ... (LFn LIn + 1)
Danilo Soares Carneiro Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais


Uma Matriz de 2 Dimenses tipo SALA = matriz [1..4, 1..4] de inteiros; SALA: MSALA; Uma Matriz de 3 Dimenses tipo M = matriz [1..3, 2..4, 3..4] de reais; M: MAT; MSALA tem (4 1 + 1) (4 1 + 1) = 16 elementos MAT tem (3 1 + 1) (4 2 + 1) (4 3 + 1) = 18 elementos

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais


Uma Matriz de 2 Dimenses tipo SALA = matriz [1..4, 1..4] de inteiros; SALA: MSALA; Uma Matriz de 3 Dimenses tipo M = matriz [1..3, 2..4, 3..4] de reais; M: MAT; MSALA tem (4 1 + 1) (4 1 + 1) = 16 elementos MAT tem (3 1 + 1) (4 2 + 1) (4 3 + 1) = 18 elementos

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais


Uma Matriz de 2 Dimenses tipo SALA = matriz [1..4, 1..4] de inteiros; SALA: MSALA; Uma Matriz de 3 Dimenses tipo M = matriz [1..3, 2..4, 3..4] de reais; M: MAT; MSALA tem (4 1 + 1) (4 1 + 1) = 16 elementos MAT tem (3 1 + 1) (4 2 + 1) (4 3 + 1) = 18 elementos

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais


Acessando um apartamento de um edifcio Imagine um apartamento em um edifcio. Para acess-lo, precisamos saber:
1 2 3

O nome do edifcio. O andar a ser acessado. O nmero do apartamento.

Acessando uma posio da matriz Com matrizes acontece o mesmo. Podem existir vrias matrizes. Precisamos ento:
1 2 3

Determinar qual matriz contm o dado. Especicar a posio do dado nas dimenses da matriz. Dois ndices: linha e coluna, respectivamente.
Danilo Soares Carneiro Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais


Acessando um apartamento de um edifcio Imagine um apartamento em um edifcio. Para acess-lo, precisamos saber:
1 2 3

O nome do edifcio. O andar a ser acessado. O nmero do apartamento.

Acessando uma posio da matriz Com matrizes acontece o mesmo. Podem existir vrias matrizes. Precisamos ento:
1 2 3

Determinar qual matriz contm o dado. Especicar a posio do dado nas dimenses da matriz. Dois ndices: linha e coluna, respectivamente.
Danilo Soares Carneiro Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais


Matriz MSALA 1 1 2 3 4 Onde: 1, 2, 3, 4: ndices das linhas. 1, 2, 3, 4: ndices das colunas. : MSALA[2,3] 2 3 4

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Matriz MSALA Observando a matriz MSALA, percebemos que: Uma matriz um vetor de vetores. Para percorrer um vetor, o inserimos em um nico lao de repetio e variamos seu ndice. Para percorrer uma matriz, a quantidade de laos de repetio igual ao nmero de dimenses da matriz. Vejamos a matriz de dimenso 3 MAT.

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais


Matriz MAT 2 1 2 3 3 Onde: Verde: ndices das linhas (dimenso 1). Vermelho: ndices das colunas (dimenso 2). Azul: ndices da dimenso 3. : MAT[2,3,4]
Danilo Soares Carneiro Estruturas de Dados

4 1 2 3

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Matrizes com mais de duas dimenses So difceis de manipular, visualizar e representar. Matrizes bidimensionais so mais utilizadas, devido a sua relao direta com muitas aplicaes, por exemplo, tabelas.
Danilo Soares Carneiro Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Tpicos

Variveis Compostas Homogneas Multidimensionais Matrizes Exemplos Exerccios de Fixao

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Exemplo 1: Loteria Esportiva Digamos que, dado um carto preenchido, desejamos saber qual o jogo que possui mais marcaes, ou seja, qual dos 14 jogos possui tries ou, se este no existir, duas marcaes. Como cada jogo est disposto em trs parties, temos de avaliar se cada uma delas possui ou no uma marcao (x) e, em seguida, avaliar o prximo jogo do mesmo modo.

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Exemplo 1: Loteria Esportiva (Continuao) Resumindo, para cada linha percorremos todas as colunas e vericamos se a mesma est marcada. Para percorrer a matriz dessa forma, devemos: Fixar a linha. Variar a coluna.

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais


Algoritmo 1: Loteria esportiva, jogo mais marcado
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

inicio / / d e f i n i c a o do t i p o c o n s t r u i d o m a t r i z tipo Loteria = matriz [ 1 . . 1 4 , 1 . . 3 ] de caracteres ; / / d e c l a r a c a o da v a r i a v e l composta do t i p o m a t r i z d e f i n i d o Loteria : mLoteria ; / / d e c l a r a c a o das v a r i a v e i s s i m p l e s inteiro : I , / / i n d i c e para l i n h a J , / / i n d i c e para coluna maisMarcado , / / maior numero de marcadores encontrado numJogo , / / numero do j o g o com mais marcacoes marcacoesLinha ; / / numero de marcacoes em uma linha maisMarcado < 0 ;
Danilo Soares Carneiro Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais


Algoritmo 2: Loteria esportiva, jogo mais marcado
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

para I de 1 ate 14 passo 1 faca marcacoesLinha < 0 ; para J de 1 ate 3 passo 1 faca se ( mLoteria [ I , J ] = " x " ) entao marcacoesLinha < marcacaoesLinha + 1 ; fimse fimpara se ( marcacoesLinha > maisMarcado ) entao inicio maisMarcado < marcacoesLinha ; numJogo < I ; fim fimse fimpara escreva ( " Jogo mais marcado : " , numJogo ) ; escreva ( " Quantidade de marcacaoes " , maisMarcado ) ; fim
Danilo Soares Carneiro Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Exemplo 1: Loteria Esportiva (Continuao) E se quisermos descobrir qual foi a coluna mais marcada?

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Exemplo 2 Construa um algoritmo que efetue a leitura, a soma e a impresso do resultado entre duas matrizes inteiras que comportem 25 elementos.

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Algoritmo 3: Soma de duas matrizes


1 2 3 4 5 6 7 8 9 10

inicio / / d e f i n i c a o do t i p o c o n s t r u i d o m a t r i z tipo M = matriz [ 1 . . 5 , 1 . . 5 ] de inteiros ; / / d e c l a r a c a o da v a r i a v e l composta do t i p o m a t r i z d e f i n i d o M : MA , MB , MR ; / / d e c l a r a c a o das v a r i a v e i s s i m p l e s inteiro : I , / / i n d i c e para l i n h a J ; / / i n d i c e para coluna

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Algoritmo 4: Soma de duas matrizes


1 2 3 4 5 6 7 8 9 10

/ / l e i t u r a e soma dos v a l o r e s enquanto ( I <= 5 ) faca J < 1 ; enquanto ( J <= 5 ) faca leia ( MA [ I , J ] , MB [ I , J ] ) ; MR [ I , J ] < MA [ I , J ] + MB [ I , J ] ; J < J + 1 ; / / v a i para a proxima coluna fimenquanto I < I + 1 ; / / v a i para a proxima l i n h a fimenquanto

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Algoritmo 5: Soma de duas matrizes


1 2 3 4 5 6 7 8 9 10 11

/ / impressao dos v a l o r e s I < 1 ; enquanto ( I <= 5 ) faca J < 1 ; enquanto ( J <= 5 ) faca escreva ( MR [ I , J ] ) ; J < J + 1 ; / / v a i para a proxima coluna fimenquanto I < I + 1 ; / / v a i para a proxima l i n h a fimenquanto fim

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Exemplo 3 Construa um algoritmo que leia duas matrizes inteiras, A e B, do tipo (3 x 3) e calcule em uma matriz R sua multiplicao, ou seja, R = A B.

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Representao das matrizes A, B e R R11 R12 R13 A11 A12 A13 B11 B12 B13 R21 R22 R23 = A21 A22 A23 B21 B22 B23 R31 R32 R33 A31 A32 A33 B31 B32 B33

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Pelo mtodo de multiplicao de matrizes, temos: R11 = A11 B11 + A12 B21 + A13 B31 R12 = A11 B12 + A12 B22 + A13 B32 R13 = A11 B13 + A12 B23 + A13 B33 ... R32 = A31 B12 + A32 B22 + A33 B32 R33 = A31 B13 + A32 B23 + A33 B33

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais


Exemplo 3 (Continuao) Podemos perceber que, ao calcular qualquer elemento R[i,j]: O ndice da linha i se repete na matriz A. O ndice da coluna j se repete na matriz B. A coluna de A igual a linha de B, e repete-se 3 vezes, de 1 a 3. Criando um terceiro ndice k para efetuar essa repetio, teramos, ento, que um elemento R[i,j] igual A[i,k] * B[k,j], somados em 3 momentos, conforme a variao de k.

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais


Algoritmo 6: Multiplicao de duas matrizes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

inicio / / d e f i n i c a o do t i p o c o n s t r u i d o m a t r i z tipo MATINT = matriz [ 1 . . 3 , 1 . . 3 ] de inteiros ; / / d e c l a r a c a o das v a r i a v e i s composta MATINT : A , B , R ; / / d e c l a r a c a o das v a r i a v e i s s i m p l e s inteiro : I , J , K ; / / l a c o para l e r os v a l o r e s da m a t r i z A para I de 1 ate 3 passo 1 faca para J de 1 ate 3 passo 1 faca leia ( A [ I , J ] ) ; fimpara fimpara
Danilo Soares Carneiro Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais


Algoritmo 7: Multiplicao de duas matrizes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

/ / l a c o para l e r os v a l o r e s da m a t r i z A para I de 1 ate 3 passo 1 faca para J de 1 ate 3 passo 1 faca leia ( B [ I , J ] ) ; fimpara fimpara / / l a c o para c a l c u l a r a m u l t i p l i c a c a o de A por B para I de 1 ate 3 passo 1 faca para J de 1 ate 3 passo 1 faca R [ I , J ] < 0 ; para K de 1 ate 3 passo 1 faca R [ I , J ] < R [ I , J ] + A [ I , K ] * B [ K , J ] ; fimpara fimpara fimpara
Danilo Soares Carneiro Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Algoritmo 8: Multiplicao de duas matrizes


1 2 3 4 5 6 7

/ / l a c o para m o s t r a r os v a l o r e s da m a t r i z r e s p o s t a para I de 1 ate 3 passo 1 faca para J de 1 ate 3 passo 1 faca escreva ( R [ I , J ] ) ; fimpara fimpara fim

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Tpicos

Variveis Compostas Homogneas Multidimensionais Matrizes Exemplos Exerccios de Fixao

Danilo Soares Carneiro

Estruturas de Dados

Variveis Compostas Homogneas Multidimensionais

Matrizes Exemplos Exerccios de Fixao

Variveis Compostas Multidimensionais

Exerccios de xao 2 - Pginas 83-85 Exerccios: 2.1 2.2 2.3 2.4

Danilo Soares Carneiro

Estruturas de Dados

Appendix

Leitura Sugerida

Leitura Sugerida I

Forbellone, A.L.V., Eberspacher, H.F.. Lgica de Programao (3a Edio). Captulo 4.

Danilo Soares Carneiro

Estruturas de Dados