IC_12_Estruturas de Dados Multidimensionais

27
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

Transcript of IC_12_Estruturas de Dados Multidimensionais

Page 1: 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

Page 2: IC_12_Estruturas de Dados 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

Page 3: IC_12_Estruturas de Dados Multidimensionais

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

Page 4: IC_12_Estruturas de Dados Multidimensionais

ACESSO AO ELEMENTO DA MATRIZ

AcessoA( linha, coluna )

Atribuição de valorA(3,3) = 2;

4

Page 5: IC_12_Estruturas de Dados Multidimensionais

ALGUNS COMANDOS NO MATLAB

5

Page 6: IC_12_Estruturas de Dados Multidimensionais

ALGUNS COMANDOS NO MATLAB

6

Para vetores temos:

>> B = ones(5)>> B = ones(5,5)>> C = zeros(3)>> C = zeros(3,3)

Page 7: IC_12_Estruturas de Dados Multidimensionais

SOMA DE MATRIZES

7

Page 8: IC_12_Estruturas de Dados Multidimensionais

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.

Page 9: IC_12_Estruturas de Dados Multidimensionais

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.

Page 10: IC_12_Estruturas de Dados Multidimensionais

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

Page 11: IC_12_Estruturas de Dados Multidimensionais

MATRIZ TRANSPOSTA

11

Bt( linha, coluna) = B( coluna, linha)

Transposta

Page 12: IC_12_Estruturas de Dados Multidimensionais

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)

Page 13: IC_12_Estruturas de Dados Multidimensionais

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

Page 14: IC_12_Estruturas de Dados Multidimensionais

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);

Page 15: IC_12_Estruturas de Dados Multidimensionais

PRODUTO DE 2 MATRIZES. A = 2X3 E B = 3X2

15

Page 16: IC_12_Estruturas de Dados Multidimensionais

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

Page 17: IC_12_Estruturas de Dados Multidimensionais

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

Page 18: IC_12_Estruturas de Dados Multidimensionais

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.

Page 19: IC_12_Estruturas de Dados Multidimensionais

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

Page 20: IC_12_Estruturas de Dados Multidimensionais

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

Page 21: IC_12_Estruturas de Dados Multidimensionais

21

Page 22: IC_12_Estruturas de Dados Multidimensionais

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.

Page 23: IC_12_Estruturas de Dados Multidimensionais

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

Page 24: IC_12_Estruturas de Dados Multidimensionais

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.

Page 25: IC_12_Estruturas de Dados Multidimensionais

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

Page 26: IC_12_Estruturas de Dados Multidimensionais

Universidade Federal de Alagoas – UFAL

Centro de Tecnologia – CTEC

EXERCÍCIOS COMPLEMENTARES

Page 27: IC_12_Estruturas de Dados Multidimensionais

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