IC_12_Estruturas de Dados Multidimensionais
-
Upload
wanessa-ribeiro-lopes -
Category
Documents
-
view
10 -
download
0
Transcript of IC_12_Estruturas de Dados Multidimensionais
Universidade Federal de Alagoas – UFAL
Centro de Tecnologia – CTEC
Estruturas de Dados Introdução
Variáveis Compostas Homogêneas Variáveis Compostas Unidimensionais Variáveis Compostas Multidimensionais
VARIÁVEIS COMPOSTAS MULTIDIMENSIONAIS
São estruturas de dados compostas de elementos do mesmo tipo de informação e armazenados em formato matricial.
2
1 2 3 4
1
2
3
4
Matriz
a) Uma matriz é um conjunto de vetores;
b) Para utilizarmos um vetor, manipulamos um único laço de repetição ( for i=1:1:10 );
c) Para utilizarmos uma matriz, manipulamos tantos laços de repetição quanto forem suas dimensões (bidimensional = 2 laços; tridimensional = 3 laços, etc). 3
Vetor Matriz 2D Matriz 3D
ACESSO AO ELEMENTO DA MATRIZ
AcessoA( linha, coluna )
Atribuição de valorA(3,3) = 2;
4
ALGUNS COMANDOS NO MATLAB
5
ALGUNS COMANDOS NO MATLAB
6
Para vetores temos:
>> B = ones(5)>> B = ones(5,5)>> C = zeros(3)>> C = zeros(3,3)
SOMA DE MATRIZES
7
8
C( lin, col) = A( lin, col) + B( lin, col)
Para utilizarmos uma matriz, manipulamos tantos laços de repetição quanto forem suas dimensões.
SOMA DE MATRIZES
Aqui temos matrizes 2x2, estão utilizaremos dois laços.
9
Passos:
1º - Fazer leitura da matriz2º - Fazer soma e armazenar na nova variável.
EXEMPLO: CONSTRUIR UMA PROGRAMA PARA LER DUAS MATRIZES, EFETUAR A SUA SOMA E IMPRIMIR O RESULTADO.
EXEMPLO: CONSTRUIR UMA PROGRAMA PARA LER DUAS MATRIZES, EFETUAR A SUA SOMA E IMPRIMIR O RESULTADO.
10
for i = 1:1:3 fprintf(‘linha %i\n’, i); for j = 1:1:3 fprintf(‘linha %i\n’, j); a(i,j) = input(‘a: ’); b(i,j) = input(‘b: ’); c(i,j) = a(i,j) + b(i,j); endendfor i = 1:1:3 disp(c(i,:));end
MATRIZ TRANSPOSTA
11
Bt( linha, coluna) = B( coluna, linha)
Transposta
EXERCÍCIO: CONSTRUIR UM PROGRAMA PARA LER UMA MATRIZ 5X5 E CALCULAR A SUA TRANSPOSTA.
12
Transposta
Passos:
1º - Fazer leitura da matriz2º - Construir a nova matriz da forma apropriada.Bt( linha, coluna) = B(coluna, linha)
EXERCÍCIO: CONSTRUIR UM PROGRAMA PARA LER UMA MATRIZ 5X5 E CALCULAR A SUA TRANSPOSTA.
13
for i = 1:1:5 for j = 1:1:5 B(i,j) = input(‘B: ‘); endend
for i = 1:1:5 for j = 1:1:5 Bt(i,j) = B(j,i); endendfor i = 1:1:5 disp(Bt(i,:));end
Transposta
EXERCÍCIO: FAZER UM PROGRAMA QUE LEIA OS ELEMENTOS DE UMA MATRIZ 5X5 E ESCREVA A SOMA DOS ELEMENTOS DA DIAGONAL PRINCIPAL.
14
for i = 1:1:5 for j = 1:1:5 A(i,j) = input(‘A: ‘); endend
soma = 0;
for i = 1:1:5 soma = soma + A(i,i);end
disp(soma);
PRODUTO DE 2 MATRIZES. A = 2X3 E B = 3X2
15
EXERCÍCIO: FAZER UM PROGRAMA QUE CALCULE O PRODUTO DE 2 MATRIZES. A = 2X3 E B = 3X2
16
Passos:
1º - Fazer leitura das matrizes;2º - Inicializar Matriz que irá armazenar o produto;3º - Fazer as devidas multiplicações e somas referentes ao elemento da nova matriz
EXERCÍCIO: FAZER UM PROGRAMA QUE CALCULE O PRODUTO DE 2 MATRIZES. A = 2X3 E B = 3X2
17
for i = 1:1:2 for j = 1:1:2 C(i,j) = 0; for k = 1:1:3 C(i,j) = C(i,j) + A(i,k) * B(k,j); end endend
for i = 1:1:2 for j = 1:1:3 A(i,j) = input(‘A: ‘); endend
for i = 1:1:3 for j = 1:1:2 B(i,j) = input(‘B: ‘); endend
EXERCÍCIO: FAZER UM PROGRAMA QUE LEIA DUAS MATRIZES A E B (3X3) E UM NÚMERO ”N” APÓS A LEITURA O PROGRAMA DEVERÁ FAZER A TROCA DA LINHA N ENTRE AS DUAS MATRIZES.
18
Passos:
1º - Fazer leitura das matrizes;2º - Imprimir matrizes lidas;3º - Fazer as devidas trocas;4º - Imprimir matrizes com as linhas trocadas.
EXERCÍCIO: FAZER UM PROGRAMA QUE LEIA DUAS MATRIZES A E B (3X3) E UM NÚMERO ”N” APÓS A LEITURA O PROGRAMA DEVERÁ FAZER A TROCA DA LINHA N ENTRE AS DUAS MATRIZES.
19
20
EXERCÍCIO: FAZER UM PROGRAMA QUE LEIA DUAS MATRIZES TRIDIMENSIONAIS A E B (MXNXT) E APÓS A LEITURA FAZER A SOMA ENTRE AS DUAS MATRIZES.
Matriz 3D
Passos:
1º - Fazer leitura das dimensões;2º - Fazer leitura das matrizes;3º - Fazer as devidas operações;4º - Imprimir matrizes.
Matriz Tridimensional = 3 laços
21
EXERCÍCIO: FAZER UM PROGRAMA QUE LEIA 2 MATRIZES 2X3 E CALCULE UMA TERCEIRA MATRIZ DADA PELA EXPRESSÃO R = 2*AT-BT.
22
Passos:
1º - Fazer leitura das matrizes separadamente;2º - Montar matrizes transpostas; 3º - Calcular a terceira matriz de acordo com a expressão;4º - Imprimir matrizes.
EXERCÍCIO: FAZER UM PROGRAMA QUE LEIA 2 MATRIZES 2X3 E CALCULE UMA TERCEIRA MATRIZ DADA PELA EXPRESSÃO R = 2*AT-BT.
23
for i = 1:1:2 for j = 1:1:3 AT(i,j) = A(j,i); BT(i,j) = B(j,i); endend
for i = 1:1:3 for j = 1:1:2 R(i,j) = 2*AT(i,j) – BT(i,j); endend
disp( R );
for i = 1:1:2 for j = 1:1:3 A(i,j) = input(‘A: ’); endend
for i = 1:1:2 for j = 1:1:3 B(i,j) = input(‘B: ’); endend
EXERCÍCIO: FAZER UM PROGRAMA QUE LEIA A DIMENSÃO E A MATRIZ NXN E MONTE UMA MATRIZ TRIANGULAR SUPERIOR COMO MOSTRADO ABAIXO.
24
Passos:
1º - Fazer leitura da dimensão;2º - Fazer leitura da matriz;3º - Inicialização da nova matriz;4º - Montar a nova matriz triangular;5º - Imprimir matrizes.
EXERCÍCIO: FAZER UM PROGRAMA QUE LEIA A DIMENSÃO E A MATRIZ NXN E MONTE UMA MATRIZ TRIANGULAR SUPERIOR COMO MOSTRADO ABAIXO.
25
i<=j
Universidade Federal de Alagoas – UFAL
Centro de Tecnologia – CTEC
EXERCÍCIOS COMPLEMENTARES
MATRIZES
Exercício 01: Dada uma matriz 5 x 5, elabore um programa que informe (a) o triângulo superior à diagonal principal; (b) a diagonal secundária
Exercício 02: Elabore um programa que preencha uma matriz 5 x 5 de números inteiros e depois (a) troque a segunda pela quinta linha; (b) troque a diagonal principal pela secundária e (c) escreva na tela como ficou a matriz.
27