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

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

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

Apresentações semelhantes


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

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

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 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 escrever C, “ > “, A, “ > “, B escrever B, “ > “, A, “ > “, C escrever B, “ > “, C, “ > “, A escrever C, “ > “, B, “ > “, A; Fim

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 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 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 { Vetores A A Armazenamento em memória Vetor Variável simples 15 -7 15
23 { A A Variável simples Vetor

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 X Vetores Sintaxe para declaração de um vetor:
Não é possível acessar posições fora do intervalo definido 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: <var> : vetor[<inicio>..<fim>] de <tipo>; <nome_vetor>[<posicao>]; preco : vetor[1..100] de real; preco[1] = 32.50; preco[102] = 43.80;

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 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: 7.8 9.4 10.0 7.7 8.5 7.5 9.1 8.3

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 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”; se nota[cont] >= 7.5 então escrever nota[cont];

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 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 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 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 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 valor tipo valor byte 0 short 0 int 0 long 0L float 0.0f double 0.0d char '\u0000' boolean false Referências recebem null Arrays: Array em Java é um coleção indexada de tipos primitivos, referências ou outros arrays. Arrays são homogêneos: só é possível declarar arrays com elementos do mesmo tipo. Uma forma de superar essa limitação é através do polimorfismo. Para criar um array 3 passos são necessários: Declaração Construção Inicialização A declaração informa ao compilador o nome e o tipo do array. Exemplo: int inteiros[]; Point pontos[]; Color novasCores[]; double sal[]; Onde Point e Color são classes.

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 Vetores em Java Como ficaria o exemplo anterior escrito em Java?

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"); if (nota[i]>=7.5) System.out.println(nota[i]);

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

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 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 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 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; ]]; 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 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; } for (i=0; i <cont; i++) soma = soma + valor[i]; media = soma / cont; System.out.println("A média é: " + media);

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 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 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 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; if (questoes[cont] == gabarito[cont]) soma = soma +1; System.out.println("O número de acertos foi: " + soma);

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 Solução problema 2 // aumenta os valores ímpares em 5% e os
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 Programação em Java Prof. Maurício Braga
Vetores Programação em Java Prof. Maurício Braga


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

Apresentações semelhantes


Anúncios Google