Módulo I Capítulo 6: Matrizes

Slides:



Advertisements
Apresentações semelhantes
LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Advertisements

Matrizes Unidimensionais
Programação de Computadores
Lógica e Estrutura de Dados Fundamentais Professor: Eduardo O. Teles
Letra a) Variável perimetro
TECNOLOGIA EM REDES DE COMPUTADORES Algoritmos e programação de computadores Aula /08/2011 Professor Leomir J. Borba-
Conteúdo: - Matriz.
ICC – Matrizes Jorge Macêdo.
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
Walfredo Cirne walfredo.dsc.ufpb.br
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
AULA – Linguagem C – Vetores, Ponteiros Estruturas
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Análise Léxica Supondo o trecho de programa abaixo:
Construção de Compiladores
VETORES, STRINGS E MATRIZES
Classes e objetos P. O. O. Prof. Grace.
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
GAUSS COM PIVOTEAMENTO
Programação em Java Prof. Maurício Braga
Estrutura de Dados Avançada
Tipos Agregados Homogêneos e Listas
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 6 Vetores e Matrizes
Aula prática 6 Vetores e Matrizes
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Linguagem de Programação II Parte IX
Alocação Dinâmica de Memória
Como encontramos a área de um retângulo com dimensões 4cm x 3cm ????
Array multidimensional
Aula prática 6 Vetores e Matrizes
Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula 8: Array Professores: Sandro Rigo Túlio Bender.
7 Arrays.
Subset Sum Algoritmos e Estruturas de Dados – IF672
Aula 3 Vetores e Listas. Arrays (vetores) Array – sequência de elementos do mesmo tipo. Tamanho do Array – seu número de elementos (número fixo) Consequência:
Vetores Imagine que você tem que receber o nome e a nota de 50 alunos de uma escola, e depois listar o nome de cada um e a média final de cada aluno e.
Estruturas de Dados Aula 5: Matrizes
Fundamentos de Programação
Vetores e Matrizes Ameliara Freire
MATRIZES Nas situações anteriores, cada variável do tipo vetor armazena os dados numa única fileira: Vetor de 8 posições Esta é a forma mais simples de.
Módulo I Capítulo 5: Vetores
Programação I Aula 12 (Arrays Bidimensionais)
Linguagem de Programação JAVA
Computação Eletrônica
Vetores Bidimensionais – Debug - Ponteiros – Listas Encadeadas Simples
Aula Prática 4 Monitoria IP/CC (~if669).
Laboratório I Mateus Raeder. Mateus Raeder – maio de 2010 Arrays unidimensionais  Arrays unidimensionais são objetos que permitem ao programador armazenar.
Linguagem de Programação JAVA
Tabela Hash Alunos : Gustavo Jorge Zanin nºUSP
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Prof. Marcos LABORATÓRIO DE PRÁTICA DE PROGRAMAÇÃO 06.
PROGRAMAÇÃO II – PARTE 6 Profa. Maria Augusta Constante Puget.
 A linguagem Java tem diversas classes para a manipulação dos conjuntos de dados. Esses dados podem ser organizados de duas maneiras diferentes: ◦ Vetores.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula /08/2011 Professor Leomir J. Borba-
Shell Script Parte 2.
Módulo II Capítulo 1: Orientação a Objetos
 O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.
Ponteiros. Programação II Professora: Mai-Ly vanessa horário: ter 9h-11h; sex 11h-13h Aula 1.
Aula Prática 6 Vetores e Matrizes Monitoria
Algoritmo e Estrutura de Dados I Aulas 14 – Linguagem C Matriz Márcia Marra
Array e ArrayList LPOO – 01/09/14.
Programação em C Aula 9.
1 Programação – JAVA Unidade - 4 Arrays e Strings Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Aula Prática 6 Ponteiros Monitoria  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória.
Minicurso Java Básico Ruddá Beltrão | Cristian Costa.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Transcrição da apresentação:

Módulo I Capítulo 6: Matrizes William Ivanski Curso de Programação C# Módulo I Capítulo 6: Matrizes

Sumário Conceito de Matriz Matriz Estática Matriz Esparsa Matriz Dinâmica

Conceito de Matriz Imagine que você tem um vetor de nomes Agora você quer separar esses nomes em Família e Amigos Você teria que criar dois vetores, um para Família e outro para Amigos Depois você quer criar um outro grupo chamado Trabalho E então você percebe que você pode ter N grupos, e isso pode ser feito com vetores bidimensionais

Conceito de Matriz Um vetor bidimensional é uma lista de listas, ou um vetor de vetores e resolve o problema do exemplo Um vetor bidimensional é um vetor com 2 dimensões Isso significa que ele tem 2 tamanhos e 2 índices Também é chamado de matriz ou tabela

Conceito de Matriz

Matriz Estática Uma matriz estática é um vetor estático de 2 dimensões: N de altura M de largura Por isso dizemos que a matriz tem dimensões NxM Logo, tem N x M elementos Assim como nos vetores estáticos: É necesśario conhecer as dimensões antes de usar Não possuem métodos de inserção, remoção, etc

Matriz Estática Existem algumas convenções de nomes ao se trabalhar com matrizes Para uma matriz de tamanho NxM: N é a altura, ou seja, possui N linhas M é a largura, ou seja, possui M colunas O índice i percorre as linhas, ou seja, varia de 0 a N O índice j percorre as colunas, ou seja, varia de 0 a M Se N for diferente de M, então a matriz é retangular Se N for igual a M, então a matriz é quadrada

Matriz Estática Declaração: Alocação: Inicialização: int[,] matriz; matriz = new int[5,5]; Inicialização: matriz[0,0] = 35; matriz[0,1] = 57; matriz[2,3] = 701; ...

Matriz Estática Para acessar todos os elementos, precisamos de 2 for encadeados for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) Console.WriteLine(“Linha {0}, coluna {1}, valor {2}”, i, j, matriz[i,j]); }

Matriz Esparsa Em uma matriz estática, todas as N linhas têm exatamente M elementos Em algumas situações, queremos que as linhas tenham número diferentes de elementos Isso se chama matriz esparsa Uma matriz esparsa (ou “jagged array”) é uma matriz estática em que as linhas podem ter tamanhos diferentes

Matriz Esparsa

Matriz Esparsa Declaração: Alocação: int[][] esparsa; esparsa = new int[5][]; esparsa[0] = new int[3]; esparsa[1] = new int[1]; esparsa[2] = new int[5]; esparsa[3] = new int[2]; esparsa[4] = new int[3];

Matriz Esparsa Inicialização: ... Assim como nas matrizes estáticas, ao tentar acessar um elemento que não existe dá um erro A diferença é que cada linha tem um número diferente de elementos

Matriz Esparsa Para acessar todos os elementos, precisamos de 2 foreach encadeados foreach (int[] linha in esparsa) { foreach (int elemento in linha) Console.WriteLine(elemento); }

Matriz Esparsa Podemos usar um jagged array como se fosse uma matriz estática, ou seja, com todas linhas com tamanhos iguais Dessa forma, poderemos usar for para acessar todos os elementos: for (int i = 0; i < n; i++) { for (j = 0; j < m; j++) Console.WriteLine(“{0} {1} {2}”, i, j, esparsa[i][j]); }

Matriz Dinâmica É igual a uma matriz esparsa, só que utiliza ArrayList Primeiro instanciamos um ArrayList para as linhas Depois, instanciamos um ArrayList para cada linha A vantagem é que não precisamos saber as dimensões e ganhamos todas as funções que já vem no ArrayList

Matriz Dinâmica Declaração: Instanciação e inicialização: ArrayList dinamica, linha; Random aleatorio; Instanciação e inicialização: dinamica = new ArrayList(); aleatorio = new Random(); for (int i = 0; i < 5; i++) { linha = new ArrayList(); for (j = 0; j < 5; j++) linha.Add(aleatorio.Next(100)); dinamica.Add(linha); }

Matriz Dinâmica Para acessar todos os elementos, a maneira mais fácil é com 2 foreach encadeados: foreach (ArrayList lin in dinamica) { foreach (int valor in lin) Console.WriteLine(valor); }

Matriz Dinâmica Também pode ser acessado com 2 for encadeados, mas precisa fazer cast: for (int i = 0; i < dinamica.Count; i++) { for (j = 0; j < ((ArrayList)dinamica[i]).Count; j++) Console.WriteLine(“{0} {1} {2}”, i, j, (int)((ArrayList)((ArrayList)dinamica[i]))[j])); }