sábado, 31 de março de 2012

Arrays em Java I

Nesta lição vamos aprender a usar os vetores(arrays), que são são estruturas de dados que armazenam uma quantidade predefinida de dados de um mesmo tipo. No exemplo abaixo, declarei o array do tipo inteiro de 5 posições. Por convenção, as posições iniciam apartir do 0. Veja:
int vetor = new int[5];
vetor[0] = 6;
vetor[1] = 3;
vetor[2] = 2;
vetor[3] = 9;
vetor[4] = 16;
 A grande vantagem dos vetores é que você não precisa declarar várias variáveis do mesmo tipo para um objetivo em comum. Você não precisa declarar:
int vetor1, vetor2, vetor3, vetor4, vetor5;
E você pode usar os laços de repetição para uma programação mais ágil e fácil. Basta você compreender e você estará programando com boa afinidade.

Prática

Neste exemplo é feita a leitura de 10 números inteiros e exibição destes números:
import java.util.Scanner;

public class lerVetor {
    public static void main(String[] args) {
//Declaração do array do tipo inteiro de 10 posições
        int vetor[] = new int[10];
        Scanner input = new Scanner(System.in);
//Leitura
        for (int i = 0; i < 10; i++) {
            System.out.println("Digite o elemento do vetor[" + i + "]: ");
            vetor[i] = input.nextInt();
        }
//Mostra os números inteiros lidos
        for (int i = 0; i < 10; i++) {
            System.out.println("vetor[" + i + "]: " + vetor[i]);
        }
    }

}

 No algoritmo abaixo se tem um trecho de código bastante conhecido, ele ordena uma sequência de números em um vetor:
import java.util.Scanner;

public class ordenaVetor {
    public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        int array[] = new int[10];
//Leitura
        for (int i = 0; i < 10; i++) {
            System.out.println("Informe o numero " + i + ":");
            array[i] = input.nextInt();
        }
        int i, j, aux;
//Ordenação do vetor
//No caso não foi usado as chaves pois o for executa a linha abaixo, e assim sucessivamente
//A ordenação é decrescente - (array[i] < array[j])
//Para ordenação crescente - (array[i] > array[j]) - simples
        for (i = 0; i < 10; i++)
            for (j = i + 1; j < 10; j++)
                if (array[i] < array[j]) {
                    aux = array[i];
                    array[i] = array[j];
                    array[j] = aux;

                }
        System.out.println("Numeros Ordenados: ");
//Pode se usar o for desta maneira também!
        for (int numero : array) {
            System.out.println(numero);
        }
    }
}

Neste exemplo, é feita a leitura de 5 números, e o algoritmo mostrará a média, o maior, o menor, o número de elementos maiores que 5 e a porcentagem dos números maiores que 5:
import java.text.DecimalFormat;
import java.util.Scanner;

public class mediaVetor {
    public static void main(String[] args) {
        int vetor[] = new int[5];
        int i, maior = 0, menor = 10000, qtdm = 0;
        float media = 0, soma = 0;
        Scanner input = new Scanner(System.in); 
//Leitura dos elementos
        for (i = 0; i < 5; i++) {
            System.out.println("Digite o " + i + "º elemento");
            vetor[i] = input.nextInt();
        }
//Verificação do maior, do menor, e da quantidade elementos>5
//A verificação do maior e do menor funciona assim:
//Maior = 0, quando certo elemento é maior do que ele é armazenado o novo
//valor maior, e é assim também com o menor.
//Quanto ao qtdm é usada a incrementação cada vez que a condição é verdadeira
        for (i = 0; i < 5; i++) {
            soma = soma + vetor[i];
            if (vetor[i] > maior) {
                maior = vetor[i];
            }
            if (vetor[i] < menor) {
                menor = vetor[i];
            }
            if (vetor[i] > 5) {
                qtdm++;
            }
        }
//Esta foi uma solução para o número racional que viria da porcentagem
//Então ele não permite - 00,00 - no caso ele permite apenas 00
//Nas bibliotecas importadas temos: import java.text.DecimalFormat;
//Que me permite usar esta ferramenta.
        DecimalFormat df = new DecimalFormat();
        df.applyPattern("00;(00)");
        float porc = (qtdm * 100) / 5;
        media = soma / 5;
        System.out.println("A média é: " + media);
        System.out.println("O maior é: " + maior);
        System.out.println("O maior é: " + menor);
        System.out.println("O número de elementos maiores que 5 é: " + qtdm);
        System.out.print("Porcentagem dos elementos maiores que 5 é: "+ df.format(porc)+"%");
    }

}

Espero que compreendam o uso dos vetores, arrays, e como você pode está filtrando os elementos, ordenando, mostrando os valores como pedido e a informação que estes dados podem te dar. Comente!

Nenhum comentário:

Postar um comentário

Related Posts Plugin for WordPress, Blogger...