Estrutura de Dados I Profº.: ABC Sampaio

Slides:



Advertisements
Apresentações semelhantes
Christiano Lima Santos
Advertisements

Estruturação de Linguagens (Pascal e C++)
Matrizes Unidimensionais
Programação de Computadores
INTRODUÇÃO AO ESTUDO DAS MATRIZES
CENTRO EDUCACIONAL NOSSA SENHORA AUXILIADORA
Matrizes especiais Matriz linha Matriz do tipo 1 x n, ou seja, com uma única linha. Por exemplo, a matriz A =[ ], do tipo 1 x 4. Matriz coluna.
Determinantes Determinante é um número real associado a uma matriz quadrada. Notação: det A ou |A|. Determinante de uma Matriz Quadrada de 1ª Ordem. Seja.
ESTRUTURAS DO TIPO FILA
Dados dois números m e n naturais e não nulos, chama-se matriz m por n ( indica-se m x n) toda tabela M formada por números reais distribuídos em m linhas.
Universidade Federal do Pará Serviço Público Federal Centro de Ciências Exatas e Naturais Departamento de Informática Abril/2001.
Adaptado de material da profa. Maria Aparecida Livi
Paulo Henrique Graf Fernandes
Algoritmos e Estruturas de Dados II
MATRIZES É uma tabela disposta em “m” linhas e “n” colunas.
Robson Godoi / Sandra Siebra
MATRIZES REAIS (1ª AULA ).
Matrizes Definição Mat Fis Qui João 7,0 5,0 6,0 Maria 9,0 4,0
O Portal do Estudante de Computação
O Portal do Estudante de Computação
1 – Matrizes: Operações e Propriedades
GAUSS COM PIVOTEAMENTO
Matrizes Definição Tipos de matrizes Matrizes Iguais
MATEMÁTICA UNIDADE 2 Conteúdo: Matrizes Duração: 10 40’ 04/04/13
Aula 4: Matrizes e Operações Matriciais
Paradigmas de programação
João Lucas de Oliveira Torres
Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal:  var.
Variáveis, Tipos de Dados e Constantes
Matrizes DEFINIÇÃO K corpo p,q números naturais
FATORAÇÃO LU.
MÉTODO JACOBI.
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
Aula prática 6 Vetores e Matrizes
Matemática para Economia III
Introdução a Programação COM 100
Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal:  var.
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
Introdução ao uso de vatores na linguagem PASCAL.
O Portal do Estudante de Computação
Instituto de Aplicação Fernando Rodrigues da Silveira (CAp/UERJ)
MÉTODOS NUMÉRICOS APLICAÇÃO NO MATLAB
Computação Eletrônica
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Linguagem Pascal Prof. Sérgio Rodrigues.
Matemática para Economia III
Matrizes Definição Mat Fis Qui João 7,0 5,0 6,0 Maria 9,0 4,0
Geometria analítica e álgebra linear
Campus de Caraguatatuba
“Introdução a Computação” Capítulo II Estruturas de Dados
Computação Eletrônica
VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS (VETORES)
Vetores Bidimensionais – Debug - Ponteiros – Listas Encadeadas Simples
Computação Eletrônica
Professor Ulisses Vasconcelos
Computação Eletrônica Variáveis Reais e Booleanas.
Manual de Referência Pascal. write Memória Monitor / Teclado write(‘Como vai?’); x 30 y 5 O computador escreve o texto entre aspas no monitor. A memória.
Subprogramas : Procedimentos (procedures) em Pascal
Programação de Computadores - 1
Introdução à Programação
Matrizes Definição Uma matriz.
©Prof. Lineu MialaretAula 4 - 1/27Matemática Discreta I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba.
AULA 09 PROGRAMAÇÃO I. Estruturas de Dados Heterogêneas 10/08/2010 Programação I 2 Objetivo: Estudar os tipos de dados heterogêneos:  Registros;  Arrays.
Prof. Guilherme Alexandre Monteiro Reinaldo Recife
Colégio CEEB Nova Friburgo, 29 de Agosto de 2014.
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
ALGEBRA LINEAR UNIDADE 1 MATRIZES
ALGEBRA LINEAR UNIDADE 1 MATRIZES
MATEMÁTICA MATRIZES - 3º ANO PROFESSOR: ALEXSANDRO DE SOUSA E.E. Dona Antônia Valadares
Vetores.
Transcrição da apresentação:

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

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

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

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

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

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

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.

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;

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;

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

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

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.

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

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;

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

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;

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

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

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.

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;

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

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;

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

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

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.

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;

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

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;

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;

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

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

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

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;

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

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 ;

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;

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 ;

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;

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

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

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

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;

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;

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;

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

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 =

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.