Operações com Arrays

Operações relacionais e lógicas Operações Aritméticas variáveis Tipos de dados Estruturas Aninhadas algoritmos

Oi gente!! No último artigo eu introduzi o conceito básico de ARRAYS, mostrando como popular um Array de uma dimensão, e também como imprimir o seu conteúdo. No artigo de hoje vamos ver algumas outras coisas que podemos fazer com esse recurso.

 

 

Inicializando todas as posições do array

 

Uma boa prática, sempre que trabalhar com Array, é inicializa-lo, o que significa inserir um valor nulo em todas as posições do Array. O código correspondente, para um vetor de números, é o seguinte:

 

 

 

Acessando, modificando e imprimindo uma posição específica do array

 

Se você deseja acessar uma posição específica do Array, deve indicar dentro do colchetes a posição desejada, exemplo: vet[5] é a posição 5 do vetor. Você pode imprimir somente o conteúdo dessa posição, assim como pode substituir o valor que está armazenado nela. Vamos ver o código:

 

 

A linha 16 imprime na tela o valor da posição 5 do vetor. A linha 18 altera o valor da posição 5 do vetor para 567. Por fim, a linha 20 imprime, novamente, na tela, o novo valor da posição 5.

 

 

Encontrando o maior e o menor elemento do array

 

Podemos encontrar o maior e o menor elemento de um vetor no momento de inserção dos valores no vetor. Se no momento da inserção, o índice for igual a 1, significa que estamos na primeira posição do vetor, assim, fazemos as variáveis menor, e maior, receberem o valor do primeiro elemento do vetor. A partir da segunda iteração, os valores serão comparados. Se o índice atual do vetor for maior que o valor armazenado na variável MAIOR, então, a variável MAIOR receberá o valor de vet[indice]. Mas, se o índice atual do vetor for menor que o valor armazenado na variável MENOR, então a variável MENOR receberá o valor de vet[indice]. Essa comparação será feita em todas as iterações de população do vetor, assim, populamos o vetor ao mesmo tempo em que já verificamos qual é o elemento de maior e menor valor inserido.

 

 

As linhas de 16 a 19 são responsáveis para inicializar as variáveis MAIOR e MENOR com o valor da primeira posição do Vetor. As linhas de 21 a 23 seta a variável MAIOR com o valor da posição atual do vetor que é maior que o valor armazenado naquele instante em MAIOR. As linhas de 25 a 26 seta a variável MENOR com o valor da posição atual do vetor que é menor que o valor armazenado naquele instante em MENOR. Observe que os valores das variáveis MAIOR e MENOR são substituídos a cada iteração do FOR.

 

 

Realizando Operações Aritméticas com os elementos do Array (de números)

 

Pode ser que em algum momento você precise somar todos os valores do array, ou então, encontrar a média de todos os elementos. Bom, primeiro vamos popular o array usando o FOR. Segundo, vamos fazer a soma em outro FOR. Terceiro, vamos imprimir o array utilizado outro FOR, e então imprimir os resultados de soma e média. Como vocês perceberam, vamos precisar de três FOR para realizar três "operações de arrays" diferentes: popular, somar, imprimir.

 

 

As linhas de 20 a 22 realizam a soma de todos os elementos do vetor. A linha 24 encontra a média aritmética.

 

 

Busca Sequencial

 

Podemos buscar um valor desejado no Array. O código apresentado abaixo mostra como encontrar um elemento a partir de um valor digitado pelo usuário. Precisaremos de uma variável auxiliar, que chamei de a, que será setada com 0 para quando não encontrar o valor que se está procurando, ou 1, para quando o valor for encontrado. Usaremos um SE dentro do FOR para setar a variável a e encontrar o valor que se está procurando, e fora do FOR precisaremos de outro SE, para comparar o valor da variável a e verificar se o valor não foi encontrado.

 

 

As linhas de 22 a 27 encontram o valor do vetor, imprimindo-o na tela e setando a variável a com o valor 1. Lembre-se que 1 indica que o valor foi encontrado. As linhas de 29 a 31 verifica se a é igual a 0, se for, significa que o valor não foi encontrado, imprimindo na tela que não existe aquele valor no vetor.

 

 

Busca Binária

 

A Busca Binária é um pouco diferente da Busca Sequencial. Na Busca Sequencial, percorre-se todo o vetor até chegar na posição que contém o elemento que está sendo pesquisado. Na Busca Binária, o vetor é dividido em duas partes, e é necessário que o mesmo esteja ordenado de forma crescente.

 

Vamos considerar aqui, que o vetor já esteja ordenado. Algoritmos de ordenação entram em um outro tópico que provavelmente não abordarei nesta série. Estando o vetor ordenado, podemos dividi-lo em duas partes, dai a busca pode ser limitada a apenas uma parte do vetor, o que levará menos tempo para encontrar o elemento procurado.

 

O elemento buscado é comparado com o elemento do meio do vetor. Se o elemento do meio do vetor for o elemento buscado, então a busca termina aqui. Se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. Por fim, se o elemento do meio vier depois do elemento buscado, a busca continua na metade anterior do vetor. Mostrarei um exemplo de Busca Binária usando a Linguagem de Programação Java:

 

 

As linhas de 22 a 34 é que realizam a busca binária de fato. A cada iteração dentro do While, o MEIO é encontrado através de uma conta matemática simples: o início do vetor mais o fim do vetor dividido por 2. Início é igual a 0 pois em Java vetores começam com a posição zero. Fim é igual a x.length-1 que na verdade é o valor do último elemento do vetor, neste caso, é o número 9, já que o vetor é declarado com 10 posições, mas Java conta de 0 a 9. Outras linguagens podem tratar isso de forma diferente.

 

Depois de encontrar o MEIO do vetor, é feita a comparação: o elemento buscado está no meio? Se sim, uma variável ACHOU é setada com 1, indicando que o elemento foi encontrado. Se não, então, existem ainda duas possibilidades: ou o elemento está à direita do vetor, ou à esquerda, por isso fim = meio - 1 decrementa o vetor, e inicio = meio + 1 incrementa a outra parte do vetor, para encontrar o elemento que se está buscando. Quando o elemento for encontrado, o While pára e então segue para o IF que verificará se ACHOU = 1 ou 0, sendo 1 encontrado e 0 não encontrado.

 

 

Copiando os valores de um array para outro

 

Copiar um Array para outro é bem fácil e simples, o código abaixo mostra como fazer isso. As linhas de 15 a 17 fazem a cópia do vetor 1 para o vetor 2.

 

 

 

Exercícios

 

1. Fazer o teste de mesa para cada um dos exemplos deste artigo.

 

2. Faça um programa que preencha um vetor com seis elementos (tipo inteiro). Calcule e mostre: a) todos os números pares, b) a quantidade de números pares; c) todos os números ímpares; d) a quantidade de números ímpares.

 

3. Faça um programa que preencha três vetores com dez posições cada um. O primeiro vetor, com os nomes de dez produtos. O segundo vetor, com os códigos dos dez produtos. O terceiro vetor, com os preços dos produtos. Mostre um relatório apenas com o nome, o código, o preço e o novo preço dos produtos que sofrerão aumento. Sabe-se que os produtos que sofrerão aumento são aqueles que possuem código par ou preço superior a R$1.000,00. Sabe-se ainda que, para os produtos que satisfazem as duas condições anteriores, código e preço, o aumento será de 20%. Para aqueles que satisfazem apenas a condições de código, o aumento será de 15%. E para aqueles que satisfazem apenas a condição de preço, o aumento será de 10%.

 

4. Faça um programa que receba o total das vendas de cada vendedor de uma loja e armazene-as em um vetor. Receba também o percentual de comissão a que cada vendedor tem direito e armazene-os em outro vetor. Receba os nomes desses vendedores e armazene-os em um terceiro vetor. Existem apenas dez vendedores na loja. Calcule e mostre: a) um relatório com os nomes dos vendedores e os valores a receber referentes à comissão; b) O total das vendas de todos os vendedores; c) O maior valor a receber e o nome de quem o receberá; d) O menor valor a receber e o nome de quem o receberá. 

Outros artigos da série

<< Introdução a ArrayIntrodução a Matriz >>
NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Elaine Cecília Gatto
Bacharel em Engenharia de Computação. Mestre em Ciência da Computação. Doutoranda em Ciência da Computação. Co-fundarora e Líder das #GarotasCPBr. Pesquisadora Convidada no Grupo de Pesquisa: "Artes em Tecnologias Emergentes" do Programa de Pós Graduação em Design na UNESP Campus Bauru. Cantora, Docente no Magistério Superior, Geek, Nerd, Otaku e Gamer. Apaixonada por Michael Jackson, Macross, Rocky Balboa, Séries, Filmes, Cervejas e Vinhos. Mais informações sobre mim você encontra em: http://lattes.cnpq.br/8559022477811603.

Deixe um comentário

avatar
 
  Notificações  
Notificar