sábado, 31 de março de 2012

Arrays em Java II

Nesta lição vamos estudar uns exemplos um pouco mais complexos, mas úteis em sua trajetória de programador. Se você tiver melhores soluções para estes exemplos ou tem dúvidas, comente!

Nós trabalharemos um pouco com Strings, que também são vetores, armazenam vários caracteres, em java é verdadeiras classes, diferente dos inteiros, flutuantes - float, reais - double e o próprio char. Só que aparentemente tratada como um simples tipo.

Prática

Neste exemplo, é feita a leitura de 5 Strings, onde será criados endereços de e-mail com estas Strings. Lembre e-mails são geralmente em minúsculas. O algoritmo automaticamente coloca os caracteres das Strings em minusculas.
import java.util.Scanner;

public class stringIncrement {
    public static void main(String[] args) {
        String nome[] = new String[5];
        String email[] = new String[5];
//Declaração e inicialização de variáveis
        char c = 'o';
        String minuscula = "";
        int i, j;
        Scanner input = new Scanner(System.in);
//Leitura das Strings
        for (i = 0; i < 5; i++) {
            System.out.println("Digite seu nome: ");
            nome[i] = input.next();
        }

        int n;
//1ºPasso é atribuído a n, o tamanho da string atual
//2ºPasso, c recebe o caractere atual
//3ºPasso, se o caracter está entre 65 - A e 90 - Z, é calculada a minúscula de c.
//4ºPasso, senão minuscula apenas acrescenta c aos caracteres
//5ºPasso, nome[i] recebe minuscula e minuscula recebe "" para se prontificar
//para a próxima String
//Entendeu? Daremos um outro exemplo que poderá lhe ajudar.
        for (i = 0; i < 5; i++) {
            n = nome[i].length();
            for (j = 0; j < n; j++) {
                c = nome[i].charAt(j);
                if ((nome[i].charAt(j) >= 'A') && (nome[i].charAt(j) <= 'Z'))
                    minuscula = minuscula + (char) (c + 32);
                else
                    minuscula = minuscula + c;
            }
            nome[i] = minuscula;
            minuscula = "";
        }
//E-mails prontos é TI e Palavra, rsrs.
        for (i = 0; i < 5; i++) {
            email[i] = nome[i] + "@tiepalavra.com";
            System.out.println("Nome: " + email[i]);
        }
    }

}
O alfabeto minúsculo e maiúsculo para você entender melhor sem vetores:

public class alfabeto {
    public static void main(String args[]) {
        char i;
        System.out.println("Alfabeto minúsculo");
        for (i = 97; i < 122; i++) {
            System.out.print(i + ", ");
        }
        i = 122;
        System.out.println(i + ".");
        System.out.println("Alfabeto maiúsculo");
        for (i = 65; i < 90; i++) {
            System.out.print(i + ", ");
        }
        i = 90;
        System.out.println(i + ".");
    }
}

Bom, no próximo exemplo é feita a leitura dos nomes dos alunos e as suas 3 notas, apartir daí é calculada a média, o total de pontos, a média geral, e o soma geral dos pontos:

import java.util.Scanner;

public class alunoMedia {
    public static void main(String[] args) {
//Cada aluno tem o seu nome, a sua 1º - 3º notas individualmente.
//Vetores Declarados
        String aluno[] = new String[5];
        int notas1[] = new int[5];
        int notas2[] = new int[5];
        int notas3[] = new int[5];
        float soma[] = new float[5];
        float media[] = new float[5];
        int qtd, i;
//A divisão de números inteiros nem sempre resulta em números inteiros
//Tipo float para resolver este detalhe
        float somaGeral = 0, mediaGeral;
        Scanner input = new Scanner(System.in);
        System.out.println("Quantos alunos deseja cadastrar: ");
        qtd = input.nextInt();
//Leitura dos nomes e notas, conforme o laço.
        for (i = 0; i < qtd; i++) {
            System.out.println("Digite o nome do aluno: ");
            aluno[i] = input.next();
            System.out.println("Digite a primeira nota: ");
            notas1[i] = input.nextInt();
            System.out.println("Digite a segunda nota: ");
            notas2[i] = input.nextInt();
            System.out.println("Digite a terceira nota: ");
            notas3[i] = input.nextInt();
//Calculo da soma e media individual
            soma[i] = notas1[i] + notas2[i] + notas3[i];
            media[i] = soma[i] / 3;
//somaGeral
            somaGeral = somaGeral + soma[i];

        }
//mediaGeral
        mediaGeral = somaGeral / (3 * qtd);
//Resultado da soma e media geral
        System.out.println("soma geral: " + somaGeral);
        System.out.println("media geral: " + mediaGeral);
//Aqui é listado os alunos e as notas
//Há um porém se você colocar para cadastrar apenas um aluno, não é listada as informações
        for (i = 0; i < qtd - 1; i++) {
            if (i % 2 == 0) {
                System.out.print("\nAluno: " + aluno[i]);
                System.out.println("\t\t\t\tAluno: " + aluno[i + 1]);

                System.out.print("primeira nota: " + notas1[i]);
                System.out.println("\t\t\tprimeira nota: " + notas1[i + 1]);

                System.out.print("Segunda nota: " + notas2[i]);
                System.out.println("\t\t\t\tSegunda nota: " + notas2[i + 1]);

                System.out.print("Terceira nota: " + notas3[i]);
                System.out.println("\t\t\tTerceira nota: " + notas3[i + 1]);

                System.out.print("Média do aluno: " + media[i]);
                System.out.println("\t\t\tMédia do aluno: " + media[i + 1]);

                System.out.print("Soma de pontos do aluno: " + soma[i]);
                System.out.println("\t\tSoma de pontos do aluno: "+ soma[i + 1] + "\n");
            }

        }

    }
}
Para melhor programação de algoritmos mais completos é necessário, modularizá-los. Precisaremos da orientação a objetos para aperfeiçoar o alunoMedia. Postaremos sobre a Orientação a objetos em Java. Acompanhe nosso blog!

Nenhum comentário:

Postar um comentário

Related Posts Plugin for WordPress, Blogger...