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

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

Vetores Programação em Java Prof. Maurício Braga.

Apresentações semelhantes


Apresentação em tema: "Vetores Programação em Java Prof. Maurício Braga."— Transcrição da apresentação:

1 Vetores Programação em Java Prof. Maurício Braga

2 2 Vetores Até agora sempre utilizamos variáveis definidas a partir de tipos básicos de dados. Cada variável só é capaz de armazenar um dado por vez. Existem situações em que é necessário armazenar uma grande quantidade de dados na memória ao mesmo tempo. Esta quantidade torna inviável a criação de variáveis para cada um dos dados a ser armazenado. Para estes casos, poderemos criar variáveis a partir de tipos de dados estruturados. Um tipo de dado estruturado é aquele formado pela junção ou combinação de tipos básicos, definindo apenas uma variável que o represente.

3 3 Vetores Considere o problema de ordenação de 3 valores Variáveis A, B, C : inteiro; Início ler A; ler B; ler C; se A > B então se B > C então escrever A, >, B, >, C senão se A > C então escrever A, >, C, >, B senão escrever C, >, A, >, B senão se B > C então se A > C então escrever B, >, A, >, C senão escrever B, >, C, >, A senão escrever C, >, B, >, A; Fim

4 4 Vetores Agora considere o mesmo problema, porém, para ordenar de forma decrescente 10 números inteiros Este problema apresenta resultados diferentes Desconforto de trabalhar com 10 nomes de variáveis diferentes É necessário o emprego de variáveis do tipo vetor para a resolução deste problema.

5 5 Vetores Vetor (ou array) é uma estrutura de dados composta por uma quantidade determinada de elementos de um mesmo tipo primitivo. Como armazena sempre dados do mesmo tipo primitivo, diz-se que vetores são estruturas de dados homogêneas.

6 6 Vetores Ao apresentar o conceito de variável, dissemos que ela funciona como uma caixa na memória do computador, capaz de armazenar um único dado de um determinado tipo. Por analogia, podemos imaginar um vetor como um conjunto de variáveis agrupadas sob um mesmo nome, todas de um mesmo tipo. O vetor passa a ser um conjunto de caixinhas, contendo dados de mesma natureza e que estejam agrupados.

7 7 Vetores Armazenamento em memória 15 A A { Variável simples Vetor

8 8 Vetores Para referenciar o conteúdo de uma variável simples, basta indicar o nome que foi definido. Para vetores, somente o nome não é suficiente. Além do nome, preciso indicar a posição no vetor onde está o dado que queremos acessar/utilizar. Esta posição é denominada índice. Os vetores são também chamados de variáveis indexadas unidimensionais.

9 9 Vetores Sintaxe para declaração de um vetor: Sintaxe para referenciação de uma posição: Suponha que é necessário armazenar 100 preços de produtos de uma loja. Declaração: Referenciação: : vetor[.. ] de ; preco : vetor[1..100] de real; preco[1] = 32.50; [ ]; preco[102] = 43.80; X Não é possível acessar posições fora do intervalo definido

10 10 Vetores Observações É necessário validar acessos a índices inexistentes, evitando erros no sistema; Apenas variáveis inteiras podem ser utilizadas como índices de um vetor. Cada elemento do vetor deve ser tratado como uma variável independente Todas as operações que podem ser realizadas sobre variáveis de tipos básicos, podem ser aplicadas a posições de um vetor. Ex.: ler preco[10]; escrever preco[12];

11 11 Vetores Exemplo: Uma prova de química foi feita por um grupo de 20 alunos. Faça um algoritmo para ler as notas obtidas pelos alunos, e depois exibir um relatório de notas iguais ou superiores a 7,5 no seguinte formato: Notas boas:

12 12 Vetores Solução: Este exemplo é uma aplicação simples de vetores. Existe uma repetição embutida, pois é necessário ler as 20 notas. Poderíamos solucionar este problema sem a utilização de vetores, mas perderíamos as notas dos alunos, o que é uma má idéia. Temos então quer ler todas as notas, e em seguida varrer todo o vetor, decidindo quais devem ser impressas. Como a quantidade de leituras é fixa, podemos utilizar o comando PARA nas repetições.

13 13 Vetores Como fica o algoritmo: Variáveis cont : inteiro; nota : vetor[1..20] de real; Início // Lê as notas e armazena no vetor para cont de 1 até 20 faça [[ escrever Digite a, cont, ª nota: ; ler nota[cont]; ]]; // imprime as notas acima de 7.5 escrever Notas acima de 7.5; para cont de 1 até 20 faça se nota[cont] >= 7.5 então escrever nota[cont];

14 14 Vetores em Java Recebem o nome de Array. Para criar um array, 3 passos são necessários: Declaração; Construção; Inicialização.

15 15 Vetores em Java A construção é feita com o operador new. int vetor[ ] = new int[10]; Para inserirmos elementos, precisamos indicar a posição no array onde eles serão inseridos: vetor[0] = 34; vetor[1] = 27;

16 16 Vetores em Java Não se especifica o tamanho do array na declaração: int vetor[ ]; // declaração do array Isso deve ser feito apenas na construção: vetor = new int[10]; // construção do array

17 17 Vetores em Java Os índices em um array em Java começam em 0. Não é possível acessar além dos limites em um array. Para sabermos o tamanho de um array, podemos usar a variável length: Ex: int arr[ ] = new int[10]; for(int i = 0; i < arr.length; i++) { System.out.println("array[" +i + "] = " +arr[i]); }

18 18 Vetores em Java Os arrays são inicializados automaticamente em java. Cada tipo de dado que podemos colocar em um array possui um valor padrão, que será usado para inicializar o array automaticamente.

19 Inicialização automática de um Array Tipo valortipovalor byte 0short0 int0long0L float 0.0fdouble 0.0d char'\u0000' boolean false Referências recebem null

20 20 Vetores em Java A declaração, construção e inicialização do array também pode ser feita de uma vez só: String frutas[ ] = {"Uva", "Melancia","Pêssego"}; código equivalente a: String frutas[ ] = new String[3]; frutas[0] = "Uva"; frutas[1] = "Melancia"; frutas[2] = "Pêssego";

21 21 Vetores em Java Como ficaria o exemplo anterior escrito em Java?

22 22 Solução em Java public static void main(String[] args) { double nota[]; nota = new double[20]; for (int i=0; i < nota.length;i++) { System.out.println("Digite a " + (i+1) + "ª nota"); nota[i] = Leia(nota[i]); } System.out.println("Notas acima de 7.5"); for (int i=0; i < nota.length;i++) { if (nota[i]>=7.5) System.out.println(nota[i]); }

23 23 Vetores em Java Modifique o programa anterior para que o mesmo use while no lugar do For.

24 24 Vetores Exercício: Faça um algoritmo para ler no máximo 30 números reais informados pelo usuário, e exibir depois a média destes números. Considere que o valor -99 encerra a entrada dos dados.

25 25 Vetores Solução Devemos cria um vetor de 30 posições para armazenar os números. Mas o usuário pode fornecer menos que 30 números, e aí?

26 26 Vetores Solução (cont.): O fato de nem todas as posições do array terem sido utilizadas não é um problema, desde que saibamos quantas foram utilizadas. A leitura das notas não poderá ser realizada com o comando PARA, e sim com o comando ENQUANTO. O número -99 é um sinalizador de término de leitura, logo não deve ser armazenado no vetor.

27 27 Algoritmo Variáveis valor : vetor[1..30] de real; cont, i : inteiro; soma, media : real; Início cont = 0; ler aux; enquanto aux <> -99 e cont < 30 faça [[ cont = cont + 1; valor[cont] = aux; ler aux; ]]; soma = 0; para i de 1 até cont faça soma = soma + valor[i]; media = soma / cont; escrever A média dos valores é, media; Fim.

28 28 Solução em Java public static void main(String[] args) { double valor[] = new double[30]; int cont=0, i =0; double soma=0,aux =0, media=0; aux = Leia(aux); while ( (aux != -99) && (cont < valor.length) ) { valor[cont] = aux; cont = cont +1; aux = Leia(aux); } for (i=0; i

29 29 Vetores em Java Modifique o programa anterior para que o mesmo use apenas while e armazene o valor -99 no vetor, utilizando-o como indicativo do término dos dados no vetor.

30 30 Vetores Exercícios: Num concurso público, um candidato respondeu a uma avaliação com 30 questões numéricas, onde cada questão admitia respostas de 0 até 99. Faça um algoritmo para ler o gabarito da prova e as respostas do aluno, informando quantas questões ele acertou. Faça um algoritmo para ler 50 valores reais e armazenar em um vetor. Modifique o vetor de modo que os valores das posições ímpares sejam aumentadas em 5%, e os das posições pares sejam aumentados em 2%. Imprima depois o vetor resultante.

31 31 Vetores Exercícios: Escreva um programa que leia dois vetores inteiros de 20 posições e efetue as respectivas operações indicadas em um terceiro vetor (também lido junto ao usuário), armazenando o resultado em um quarto vetor. Considere o seguinte código: 1 – adição, 2 – subtração, 3 – multiplicação e 4 – divisão. Escreva um programa que leia um vetor com 20 valores inteiros e o coloque em ordem crescente.

32 32 Solução problema 1 public static void main(String[] args) { int[] questoes = new int[10]; int[] gabarito = new int[] {1,2,3,4,5,6,7,8,9,10}; int soma = 0, cont = 0, aux = 0; while (cont < questoes.length ) { aux = Leia(aux); questoes[cont] = aux; cont = cont +1; } cont = 0; while (cont < questoes.length ) { if (questoes[cont] == gabarito[cont]) soma = soma +1; cont = cont +1; } System.out.println("O número de acertos foi: " + soma); }

33 33 Solução problema 2 public static void main(String[] args) { double valor[] = new double[50]; int i=0; double aux =0; // Lê os valores e preenche o vetor while (i < valor.length) { System.out.println(Digite o " +(i+1) + º termo:"); aux = Leia(aux); valor[i] = aux; i = i +1; }

34 34 Solução problema 2 // aumenta os valores ímpares em 5% e os // pares em 2%. for (i=0; i < valor.length; i++) { if ((i+1)%2 ==0) valor[i]=valor[i]*1.02; else valor[i]=valor[i]*1.05; } // imprime o vetor for (i=0; i < valor.length; i++) System.out.println((i+1)+"º termo = "+valor[i]); }

35 Vetores Programação em Java Prof. Maurício Braga


Carregar ppt "Vetores Programação em Java Prof. Maurício Braga."

Apresentações semelhantes


Anúncios Google