Академический Документы
Профессиональный Документы
Культура Документы
Estruturas de Dados
Algoritmos e Programao 1 Danilo Soares Carneiro
Instituto de Informtica Universidade Federal de Gois
Estruturas de Dados
Tpicos
Estruturas de Dados
Tpicos
Estruturas de Dados
Conjunto homogneo de dados. Mais de uma dimenso. Estrutura composta multidimensional. Analogia: Edifcio, seus andares e seus apartamentos.
Estruturas de Dados
Denir como esse tipo constitudo. Declarar uma ou mais variveis. Associar o tipo a(s) varivel(is).
Estruturas de Dados
Estruturas de Dados
Estruturas de Dados
Estruturas de Dados
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
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
Estruturas de Dados
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.
Estruturas de Dados
4 1 2 3
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
Tpicos
Estruturas de Dados
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.
Estruturas de Dados
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.
Estruturas de Dados
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
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
Exemplo 1: Loteria Esportiva (Continuao) E se quisermos descobrir qual foi a coluna mais marcada?
Estruturas de Dados
Exemplo 2 Construa um algoritmo que efetue a leitura, a soma e a impresso do resultado entre duas matrizes inteiras que comportem 25 elementos.
Estruturas de Dados
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
Estruturas de Dados
/ / 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
Estruturas de Dados
/ / 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
Estruturas de Dados
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.
Estruturas de Dados
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
Estruturas de Dados
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
Estruturas de Dados
Estruturas de Dados
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
/ / 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
/ / 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
Estruturas de Dados
Tpicos
Estruturas de Dados
Estruturas de Dados
Appendix
Leitura Sugerida
Leitura Sugerida I
Estruturas de Dados