Baixe o app para aproveitar ainda mais
Prévia do material em texto
20171º Semestre 2Sumário ➢ Estruturas de dados ➢ Estruturas homogéneas ➢ Vectores ➢ Problema ➢ Definição ➢ Sintaxe e Manipulação ➢ Matrizes ➢ Definição ➢ Sintaxe e manipulação ➢ ArrayList Problema 3 ➢ Considere uma sala de aula, onde há 10 alunos e queremos armazenar suas idades em variáveis, até agora seria feito assim: int idade1, idade2, idade3, idade4,..., idade10; System.out.println("Digite a idade do primeiro aluno: "); idade1 = input.nextInt(); System.out.println("Digite a idade do segundo aluno: "); idade2= input.nextInt(); System.out.println("Digite a idade do terceiro aluno: "); idade3= input.nextInt(); ... ... Sumário 4 ➢ Estruturas de dados ➢ Estruturas homogéneas ➢ Vectores ➢ Problema ➢ Definição ➢ Sintaxe e Manipulação ➢ Matrizes ➢ Definição ➢ Sintaxe e manipulação ➢ ArrayList Definição 5 ➢ Vector é uma matriz unidimensional que representa um conjunto de variáveis do mesmo tipo de dados acessíveis com um único nome. ➢ Permanecem com o mesmo tamanho depois de criados. ➢ Os elementos dos vetores são colocados em posições sequênciais de memória ➢ São indexados a partir da posição 0, até à posição n-1 (sendo o n o número de elementos ou dimensão do vector) 0 1 2 3 4 5 6 7 8 9 Índices Dimensão do Vector é 10 Primeiro Índice Elemento na posição 7 Sumário 6 ➢ Estruturas de dados ➢ Estruturas homogéneas ➢ Vectores ➢ Problema ➢ Definição ➢ Sintaxe e Manipulação ➢ Matrizes ➢ Definição ➢ Sintaxe e manipulação ➢ ArrayList Sintaxe e manipulação 7 ➢ Sintaxe de declaração de um vector em JAVA tipo_dado [] nome_do_vector = new tipo_dado[numero_de_elementos]; ou tipo_dado [] nome_do_vector = { valor1, valor2, valor3 ...,valorn}; ➢ Então para o problema anterior teríamos: Sintaxe e manipulação Cont… 8 ➢ Acesso aos elementos de um vector ➢ Cada elemento de um vector é tratado como uma variável normal cujo nome/identificador é o nome do vector seguido do seu índice. ➢ nome_do_vector[indice/posicao] Sintaxe e manipulação Cont… 9 ➢ Acesso aos elementos de um vector ➢ Como é que faríamos para imprimir os elementos do vector idades? ➢ Utilizaríamos 7 instruções System.out.println()? Sintaxe e manipulação Cont… 10 ➢ Para preenchermos ou imprimirmos um vector normalmente recorre-se as estruturas de repetição(while, do..while e for). Devolve o comprimento do array idades Sintaxe e manipulação Cont… 11 Instrução for aprimorada foreach 12 ➢Permite iterar por elementos de um array ou por uma coleção sem utilizar um contador. ➢ Sintaxe Instrução for aprimorada foreach 13 Para cada iteração, atribui o próximo elemento do array a variável int number, e então adiciona a total Sumário 14 ➢ Estruturas de dados ➢ Estruturas homogéneas ➢ Vectores ➢ Problema ➢ Definição ➢ Sintaxe e Manipulação ➢ Matrizes ➢ Definição ➢ Sintaxe e manipulação ➢ ArrayList 15Dúvidas 16Sumário ➢ Estruturas de dados ➢ Estruturas homogéneas ➢ Vectores ➢ Problema ➢ Definição ➢ Sintaxe e Manipulação ➢ Matrizes ➢ Definição ➢ Sintaxe e manipulação ➢ ArrayList 17Matrizes ❖ O que é uma matriz? ❖ Uma estrutura de dados que contém várias variáveis do mesmo tipo. ❖ Qual a diferença de vectores para matrizes? ❖ Vectores são, na verdade, matrizes de uma única dimensão Vectores Matrizes 18Matrizes ❖ As matrizes são referenciadas através de suas dimensões (quantidade de linhas e colunas . ❖ A notação comum é: MxN onde ❖M é a dimensão horizontal(quantidade de linhas) ❖ N é a dimensão vertical(quantidade de colunas) ❖ Exemplo Vectores: a quantidade de linhas é sempre 1 19Matrizes ❖ Como referenciar um elemento específico da matriz? ❖ Exemplo: Matriz 3x2 (três linhas e duas colunas) 0,0 0,1 0 1 0 1 2 As linhas variam de 0 até 2 As colunas variam de 0 até 1 Linha 0 Coluna 0 Linha 0 Coluna 1 ❖ Para referenciar um elemento de uma matriz temos de indicar a linha e a coluna onde se encontra o elemento. 20Sumário ➢ Estruturas de dados ➢ Estruturas homogéneas ➢ Vectores ➢ Problema ➢ Definição ➢ Sintaxe e Manipulação ➢ Matrizes ➢ Definição ➢ Sintaxe e manipulação ➢ ArrayList 21Matrizes ❖ Declaração: tipo_dado [][] nome_da_matriz = new tipo_dado[il][ic]; ❖ Onde: ❖ il representa o índice das linhas ou seja o número de linhas ❖ ic representa o índice das linhas ou seja o número de colunas ❖ Exemplo: ❖ Para declarar uma matriz 3x2 de inteiro • 1 e 2 inicializam b[0][0] e b[0][1]. • 3 e 4 inicializam b[1][0] e b[1][1]. • A linha 0 contém elementos 1 e 2 • A linha 1 contém elementos 3, 4 e 5. 22Matrizes Preenchimento de uma matriz ❖ As posições das matrizes são identificadas pelos índices das linhas e colunas nome_variável [<linha>][<coluna>] = <valor> nome_variável [<linha>][<coluna>] = input.nextInt(); ❖ Exemplo 10 4 25 23Matrizes Preenchimento de uma matriz ❖ Se quisermos atribuir valores a todas as posições da matriz poderíamos fazer: 24Matrizes Preenchimento de uma matriz ❖ A solução anterior não é a melhor porque a medida que a quantidade de elementos da matriz aumenta, fica complicado fazermos manualmente para todas as posições. ❖ Por isso o melhor caminho é…… qual é ??? ❖Estruturas de repetição 25Matrizes Preenchimento de uma matriz ❖Então teríamos: 26Matrizes Mostrar os elementos armazenados ❖ Poderíamos fazer : ❖ Ma esta não é a melhor solução porque a medida que a quantidade de elementos da matriz aumenta ficaria complicado escrever tantos System.out.println(). ❖ A melhor solução mais uma vez seriam as inevitáveis estruturas de repetição 27Matrizes Mostrar os elementos armazenados ❖ E ficaria assim : 28Dúvidas 29Exercícios ❖ Implemente um programa que leia uma matriz 3x3 e mostre a matriz preenchida ❖ Implemente um programa que leia uma matrizes 3x3. Em seguida, apresente a soma dos elementos de cada uma das linhas ❖ Implemente um programa que leia uma matriz 4x3. Verifique se um valor solicitado pelo utilizador existe na matriz. Caso o valor se encontre na matriz, escreva a mensagem “O valor encontra-se na matriz”. Caso contrário, escreva a mensagem “O valor NÃO se encontra na matriz”. ❖ Implemente um programa uma matriz 5x5. Em seguida, conte quantos números pares existem na matriz. ❖ Implemente um programa que leia uma matriz 3x3 e calcule a soma dos valores das colunas da matriz. ❖ Implemente um programa que calcule a média dos elementos de uma matriz 5x2. 30Sumário ➢ Estruturas de dados ➢ Estruturas homogéneas ➢ Vectores ➢ Problema ➢ Definição ➢ Sintaxe e Manipulação ➢ Matrizes ➢ Definição ➢ Sintaxe e manipulação ➢ ArrayList 31ArrayList ➢ Em termos de estrutura de dados vimos o quão útil são os vetores e as operações que podemos fazer sobre eles. ➢ Mas estes apresentam um problema: São estáticos Têm um tamanho definido, não podemos adicionar ou remover elementos. ➢ O Java, por padrão disponibiliza ao programador uma grande quantidade de APIs (Aplication Programming Interfaces) para que possamos tratar de estrutura de dados, também chamadas de colecções (collections). ➢ O ArrayList é uma classe para colecções 32ArrayList Cont… ➢ Semelhante a um array mas pode alterar a sua dimensão à medida das necessidades. ➢ Ou seja o seu tamanho é dinamico ➢ Existem métodos para add, get, remove de qualquer tipo de Object. ➢ Para utilizar o ArrayList temos de importar a classe ArrayList ➢ Import java.util.ArrayList; ➢ Sintaxe de declaração ArrayList<TipoDados> nome = new ArrayList<TipoDados> (); 33ArrayList Cont… ➢ Semelhantea um array mas pode alterar a sua dimensão à medida das necessidades. ➢ Ou seja o seu tamanho é dinamico ➢ Existem métodos para add, get, remove de qualquer tipo de Object. ➢ Para utilizar o ArrayList temos de importar a classe ArrayList ➢ Import java.util.ArrayList; ➢ Sintaxe de declaração ArrayList<TipoDados> nome = new ArrayList<TipoDados>(); OU ArrayList<TipoDados> nome = new ArrayList<>(); 34ArrayList Cont… Qual será o resultado ao executar esta linha? Excepção: IndexOutOfBoundsException
Compartilhar