A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Estrutura de Dados I Profº.: ABC Sampaio

Apresentações semelhantes


Apresentação em tema: "Estrutura de Dados I Profº.: ABC Sampaio"— Transcrição da apresentação:

1 Estrutura de Dados I Profº.: ABC Sampaio
Universidade Federal do Pará Centro de Ciências Exatas e Naturais Curso de Bacharelado em Ciência da Computação Estrutura de Dados I Profº.: ABC Sampaio Matrizes & Matrizes Especiais

2 Equipe Adriano Martins - 0008802001 Marcelo Malcher - 0008802801
Luiz Tomé

3 Noção de Matriz Chama - se de matriz m x n toda tabela T de dados homogêneos organizados de forma contígua na memória. Exemplo: 2 3 -5 4 10 7 1/3 -3/8

4 Armazenamento na memória
Uma matriz é armazenada na memória de forma contígua, ou seja, seus elementos estão todos uma ao lado do outro, ocupando um espaço continuo na memória. .... a11 a12 a13

5 Classificação das Matrizes
Matrizes Unidimensionais – Vetores Matrizes N-dimensionais

6 Matrizes Unidimensionais
Definição: Chamamos de matrizes unidimensionais aquelas que possuem apenas uma única dimensão. Essas matrizes são comumente chamadas de vetores (linha ou coluna) Exemplo: 7 0.1 2.8 f d b

7 Matrizes – N-Dimensionais
Operações Em Pascal há somente duas operações básicas a serem efetuadas em uma matriz. São elas Consulta Atribuição Veremos agora a implementação em Pascal.

8 Pascal – Exibição Procedure exibicao (M : array [1..5,1..5] of real) ;
Var i, j: integer for i := 1 to 5 do for j := 1 to 5 do writeln ( M [i,j] ); End;

9 Pascal - Atribuição Procedure atribuicao (M: array [1..5,1..5] of real); var i, j: integer; For i := 1 to 5 do for j := 1 to 5 do writeln (‘Digite o conteúdo da matriz’); readln( M [i,j] ); End;

10 Matrizes Especiais Matrizes Diagonais Matrizes Triangulares
Matrizes Simétricas Matrizes Anti-Simétricas Matrizes Tri-diagonais Matrizes Faixas

11 Matrizes Diagonais Definição Modelagem Modelagem da Interface
Implementação das Operações

12 Definição As Matrizes diagonais são aquelas cujos elementos fora da diagonal principal são nulos, ou seja, M[i,j]=0 caso i  j . -13 51 7 OBS.: Freqüentemente, o termo Matriz Diagonal se aplica somente as matrizes quadradas (m = n), porém como o exemplo acima mostra incluímos também as retangulares.

13 Modelagem Uma matriz diagonal pode ser implementada no Pascal como um vetor linha ou coluna, que armazena apenas os elementos da diagonal principal.

14 Modelagem da Interface
Type Diagonal = object Vet: array [1..3] of string; Procedure Inicializa; Procedure MostrarDiagonal; Procedure Consulta(i,j:integer); Procedure Altera (i,j:integer; X:string); End;

15 Implementação das Operações
Procedure diagonal.inicializa; Var i: integer; Begin For i:=1 to 3 do Read(vet[i]); End; Procedure Diagonal.MostrarDiagonal; Writeln(vet[i]);

16 Implementação das Operações
Procedure diagonal.consulta(i, j: integer); Begin If i <> j then writeln (‘0’) else writeln (vet[i]); End; Procedure Diagonal.Altera(i,j: integer;X: string); writeln (‘Matriz Diagonal, não é possível alterar esse elemento.’) vet[i]) := X;

17 Matriz Triangular Definição Modelagem Modelagem da Interface
Implementação das Operações

18 Definição Uma matriz M é dita triangular inferior se mij = 0 com i < j, e triangular superior se mij = 0 com i > j 6 7 8 3 2 1 M = Triangular Superior

19 Modelagem Podemos representar uma matriz triangular como sendo um vetor linha em que seus elementos são os diferentes de 0 (zero). Dispostos ordenadamente de acordo com seus índices.

20 Modelagem da Interface
Type TriangularInf = object vet: array [1..6] of integer; Procedure Inicializa; Procedure MostrarElementos; Procedure Consulta(i,j:integer); Procedure Altera (i,j:integer; X:string); End;

21 Implementação das Operações
Procedure TriangularSup.inicializa; Var i: integer; Begin For i:=1 to 6 do Read(vet[i]); End; Procedure TriangularSup.MostrarElementos; Var i: integer Writeln(vet[i]);

22 Implementação das Operações
Procedure TriangularSup.consulta(i, j: integer); Begin If i > j then writeln (‘0’) else writeln(vet[((i * (i-1) div 2)+ j)]); End; Procedure TrangularSup.Altera(i,j: integer;X: string); If i > j then writeln (‘Erro: não é possível alterar esse elemento.’) else vet[((i * (i-1) div 2)+ j)] := X;

23 Matriz Simétrica Definição Modelagem Modelagem da Interface
Implementação das Operações

24 Definição Uma matriz é dita simétrica quando ela é igual a sua transposta, ou seja, ela é simétrica em relação a diagonal principal. 4 5 1 -3 2

25 Modelagem Uma matriz simétrica pode ser representada como um vetor linha que contém todos os seus elementos distintos ordenados de acordo com seus índices.

26 Modelagem da Interface
Type MatSimetrica = object vet: array [1..6] of integer; Procedure Inicializa; Procedure MostrarSimetrica; Procedure Consulta(i,j:integer); Procedure Altera(i,j:integer; X: string); end;

27 Implementação das Operações
Procedure MatSimetrica.inicializa; Var i:integer; Begin For i:=1 to 6 do Readln(vet[i]); End; Procedure MatSimetrica.MostrarSimetrica; Var i: integer Writeln(vet[i]);

28 Implementação das Operações
Procedure MatSimetrica.Consulta(i,j: integer); Var aux:integer; Begin if i > j then aux:=j; j:=i; i:=aux; End ; Writeln ( vet[((i * (i-1) div 2)+ j)] ); End;

29 Implementação das Operações
Procedure MatSimetrica.Altera(i,j: integer;X: string); Var aux:integer; Begin if i > j then aux:=j; j:=i; i:=aux; End ; vet[((i * (i-1) div 2)+ j)] := X; End;

30 Matriz Anti-Simétrica
Definição Modelagem Modelagem da Interface Implementação das Operações

31 Definição Uma matriz é dita anti-simétrica, se e somente se, ela for igual a sua transposta com o sinal trocado, ou seja, M = - Mt 5 2 -5 3 -2 -3

32 Modelagem A matriz anti-simétrica,pode ser representada da mesma forma que a simétrica, usando um único vetor

33 Modelagem da Interface
Type MatAntiSimetrica = object vet: array [1..3] of integer; Procedure Inicializa; Procedure MostrarAntiSimetrica; Procedure Consulta(i,j:integer); Procedure Altera(i,j:integer; X: real); End;

34 Implementação das Operações
Procedure MatAntiSimetrica.inicializa; Var i:integer; Begin For i:=1 to 3 do Readln(vet[i]); End; Procedure MatAntiSimetrica.MostrarAntiSimetrica; Var i: integer Writeln(vet[i]);

35 Implementação das Operações
Procedure MatAntiSimetrica.Consulta(i,j: integer); Var aux:integer; AS: Boolean; Begin AS:=False; if i > j then aux:=j; j:=i; i:=aux; AS := True; End ;

36 Implementação das Operações
if i = j then writeln(‘0’) else Begin If AS then writeln ( (-1*vet[((i * (i-1) div 2)+ j)]) ); else writeln (vet[((i * (i-1) div 2)+ j)]); End;

37 Implementação das Operações
Procedure MatAntiSimetrica.Altera(i,j: integer; X:real); Var aux:integer; AS: Boolean; Begin AS:=False; if i > j then aux:=j; j:=i; i:=aux; AS := True; End ;

38 Implementação das Operações
if i = j then writeln(‘Matriz Anti-Simétrica, impossível alterar esse elemento.’) else Begin If AS then vet[((i * (i-1) div 2)+ j)]) := -X; else writeln (vet[((i * (i-1) div 2)+ j)]) := X; End;

39 Matriz Tri-Diagonais Definição Modelagem Modelagem da Interface
Implementação das Operações

40 Definição É a matriz onde todos os seus elementos são nulos exceto a diagonal principal e as diagonais vizinhas mais próximas. 1 9 2 6 4 -1 -2 5 3

41 Modelagem Uma matriz tri-diagonal pode ser implementada transferindo os elementos das três diagonais para um vetor linha.

42 Modelagem da Interface
Type TriDiagonal = object vet: array [1..7] of string; Procedure Inicializa; Procedure MostrarTriDiagonal; Procedure Consulta(i,j:integer); Procedure Altera(i,j:integer; X: string); End;

43 Implementação das Operações
Procedure TriDiagonal.Inicializa; Var i: integer; Begin For i:=1 to 7 do Readln (vet[i]); End; Procedure TriDiagonal.MostrarTriDiagonal; Var i:integer; Begin For i:=1 to 7 do Writeln (vet[i]); End;

44 Implementação das Operações
Procedure TriDiagonal.consulta(i, j: integer); Begin If (i > j + 1) or (j > i + 1) then writeln (‘0’) else writeln (vet [2i +j - 2]); End; Procedure TriDiagonal.Altera(i,j: integer;X: string); Begin If (i > j + 1) or (j > i + 1) then writeln (‘Matriz Tri-Diagonal, não é possível alterar esse elemento.’) else vet [2i +j - 2] := X; End;

45 Matriz Faixa Definição Modelagem Modelagem da Interface
Implementação das Operações

46 Definição É semelhante a Matriz Tri-Diagonal, porém possibilita ao usuário definir a faixa de vizinhança da diagonal principal a qual os elementos serão não-nulos. 3 -4 5 9 1 2 6 -1 8 -2 4 7 M é uma matriz de faixa 2x1 M =

47 Modelagem Existem duas formas possíveis de se modelar esta matriz. A primeira consiste em usar um único vetor com todos os elementos diferentes de zero; a segunda consiste em usar n vetores de acordo com o número diagonais da faixa.


Carregar ppt "Estrutura de Dados I Profº.: ABC Sampaio"

Apresentações semelhantes


Anúncios Google