Programação Estruturada Arrays Alexandre Lacerda alexandre.lacerda.ftc@gmail.com
Agenda Rever: 1 Noções de Estrutura de Dados. 2 Declaração e Uso de Arrays: Unidimencionais. Multidimensionais. 3 Exercício de Fixação 2
Estrutura de Dados Até o momento, quando precisávamos armazenar dados para posterior processamento, declarávamos variáveis do tipo desejado separadamente. A vantagem em trabalhar com computação é tratar grande quantidade de dados e informações. Imagine a quantidade de double, int (tipos primitivos), String que são manipulados pelos programas de uma empresa de médio porte. 3
Estrutura de Dados Uma maneira simples para tratarmos grande quantidade de dados é usando estruturas de dados. Essas estruturas agrupam em blocos, a representação de vários dados do mesmo tipo primitivo ou objetos pertencentes a mesma classe. Em vez de declararmos uma variável de cada vez, podemos usar essas estruturas para declarar grupos de variáveis do mesmo tipo uma só vez. Essas variáveis serão numeradas de forma sequencial, permitindo o acesso a qualquer uma delas de forma rápida e organizada. 4
Sintaxe para declaração de arrays: tipo[ ] nome_do_array = new tipo[numero_de_elementos]; Ou: tipo[ ] nome_do_array = { valor1, valor2,...,valorx} Neste caso o tamanho do array é o número de elementos entre chaves. 5
Declarando um array de notas: double[ ] notas = new double[5]; Ou: double[ ] notas = { 30.5, 70.7, 80.0, 40.3, 100.0} Neste caso o tamanho do array é o número de elementos entre chaves. 6
Declarando um array de nomes: String[ ] nomes = new String[10]; 7
O tamanho de um array é constante, ou seja, uma vez declarado a quantidade de elementos, não poderá ser mudado. String[ ] nomes = new String[10]; Não poderemos inserir mais do que 10 nomes no array acima. 8
Os arrays declarados e não inicializados, receberão o valor padrão de cada tipo. int = 0 String = null Double = 0.0 9
Representação gráfica de um array: int[ ] valor = new int[6]; 0 1 2 3 4 5 valor 10
Estrutura simples para armazenarmos um conjunto de dados do mesmo tipo. Nome do array Tipo dos elementos dados 0 1 2 3 4 5 Quantidade de elementos 11
Declaração do array Array Repetição para preencher os elementos do array Repetição para apresentar os elementos do array 12
Se precisar saber, em determinado momento da programação, qual o tamanho de um array, use a propriedade length do array que retornará um inteiro com o seu tamanho. String[ ] nome = new String[100]; int tamanho = 0; tamanho = nome.length; tamanho conterá o valor 100. 13
Atributo que armazena o tamanho o array Repetição para percorrer o array sem o índice 14
Atribuição ou acesso ao dado armazenado em um determinado local do array será através do seu índice. String[ ] nome = new String[10]; nome[0] = Antonio ; nome[1] = Maria ; nome[2] = Pedro ; 15
A ordem de numeração de um array é de 0 a n-1. Se o array tiver 10 elementos, os índices serão de 0 a 9. String[ ] nome = new String[10]; nome[0] nome[1] nome[2] nome[...] nome[9] 16
double[ ] nota = new double[3]; double soma = 0; nota[0] = 50.7; nota[1] = 72.5; nota[2] = 80.2; soma = nota[0] + nota[1] + nota[2]; Soma conterá o valor 203.4 17
Para facilitar operações com arrays, podemos usar alguns métodos de uma classe específica para uso desta estrutura de dados. Para isso precisamos importar a classe Arrays: import java.util.arrays; 18
Classe a ser importada Array Para convertermos qualquer tipo dos dados do array em String. Método Array a ser convertido 19
Classe a ser importada Array Para ordenarmos um array de qualquer tipo na sua forma natural. Método de ordenação Parâmetros opcionais Array a ser ordenado Até (exclusive) De (inclusive) 20
Para procurarmos um valor em um array (deve estar ordenado). Ordenando o array Parâmetros opcionais Método de pesquisa Array a ser pesquisado De (inclusive) Até (exclusive) 21
Para criar uma cópia de um array em outro. Array a ser copiado Métodos de cópia Novo array Quantidade de elementos De (inclusive) Até (exclusive) 22
Para comparar dois array e verificar se são exatamente iguais. Método de comparação Ordenando 2º array Array a serem comparados 23
Preencher todo um array com um único valor. Método de preenchimento Array a ser preenchido Valor de preenchimento 24
Utilizando uma estrutura de repetição, apresente os valores de todas as posições, antes e depois de inserir o numero 100 em todos os índices do array valor. 25
Exercício Construa um programa que solicite do usuário o nome e as quatro notas de um aluno. Calcule a média e apresente na tela o nome do aluno e a média calculada. Modifique o programa anterior para que o usuário calcule as médias de 5 alunos. Após o término da entrada de dados, apresente então a média de cada aluno e a média geral da turma. Modifique mais uma vez o programa para que o usuário calcule as médias dos alunos até que no nome do aluno seja digitado a palavra fim. A quantidade máxima de alunos será 20. Apresente então a média de cada aluno e a média geral. 26
Multidimensionais Em algumas situações podemos precisar agrupar dados como se fosse em uma tabela como: aluno nota1 nota2 nota3 1 50.7 72.5 80.2 2 70.7 65.5 90.0 3 20.5 85.2 72.6 4 60.8 79.5 87.5 27
Multidimensionais Em algumas situações podemos precisar agrupar dados como se fosse em uma tabela como: notas[0] notas[1] notas[2] notas[3] [0] [1] [2] [3] 1.0 50.7 72.5 80.2 2.0 70.7 65.5 90.0 3.0 20.5 85.2 72.6 4.0 60.8 79.5 87.5 28
Declarando e usando um array multidimencional de notas: double[ ][ ] notas = new double[4][4]; ou double[ ][ ] notas = { {1, 50.7, 72.5, 80.2}, {2, 70.7, 65.5, 90.0}, {3, 20.5, 85.2, 72.6}, {4, 60.8, 79.5, 87.5} }; notas[0] notas[1] notas[2] notas[3] [0] [1] [2] [3] 1.0 50.7 72.5 80.2 2.0 70.7 65.5 90.0 3.0 20.5 85.2 72.6 4.0 60.8 79.5 87.5 29
notas[0] notas[1] notas[2] notas[3] [0] [1] [2] [3] 1.0 50.7 72.5 80.2 2.0 70.7 65.5 90.0 3.0 20.5 85.2 72.6 4.0 60.8 79.5 87.5 30
notas[0] notas[1] notas[2] notas[3] [0] [1] [2] [3] 1.0 50.7 72.5 80.2 2.0 70.7 65.5 90.0 3.0 20.5 85.2 72.6 4.0 60.8 79.5 87.5 31
Exercício Reconstrua o programa anterior usando um array multidimensional em que seja solicitado do usuário o número do aluno e as três notas da unidade. Depois que todas os notas tiverem sido digitadas, através de uma estrutura de repetição, calcule a média de cada aluno e armazene em outro array unidirecional. Por fim, apresente as médias de cada aluno e também a média geral da turma. 32