AGRADECIMENTO...

Pessoal, Gostaria de pedir desculpas aqueles que deixam perguntas/comentários/elogios/críticas e ainda não foram respondidos.

Aproveito a oportunidade para informar a todos que devido a correria do dia a dia não conclui o curso de BSI, por isso meus conhecimentos são limitados rsrsrs...

Ainda não retirei o blog do ar porque tem ajudado a diversos estudantes, principalmente os iniciantes.

As vezes, quando o trabalho me permite, ainda arrisco tentar resolver algumas questões rs... mas para não deixar esse blog parar no tempo, o ESTUDANTE que quiser enviar a resolução de alguma questão (código próprio) para o meu e-mail, terei o prazer de posta-la neste blog e será mantido a autoria.

Desde já agradeço a todos pelas visitas e desejo bons estudos.

Thiago Campos
(srthiago@hotmail.com)

sexta-feira, 24 de agosto de 2012

Soluções de exercicios propostos utilizando vetores, matrizes e JOptionPane

Este código Java uni os 10 últimos exercícios. A maioria já foi postada separadamente. Utilizei switchs para os menus e do...while para as validações. Para as saidas foram utilizadas o JOptionPane. As variáveis são do tipo double, inteiro e String. Foram também utilizado Arrays (vetores e matrizes). O resultado ficou bem interessante. Bom Estudo!

Código Java
//Autor; Thiago Campos
//Data: 23.08.2012
//10 exercicios resolvidos como Atividade 1

import javax.swing.JOptionPane; //importando a classe

public class Atividade1 {

    public static void main(String[] args) {
        //Variaveis
        int i = 0;
        int menu; //menu externo
        int op; //menu interno

        int anoN, anoA, idade = 0; //variaveis do 1 exercicio 1
        double salario, salAtual, qtd; //variaveis do 1 exercicio 2
        double homem, mulher, percH = 0, percM = 0; //variaveis do 1 exercicio 3
        double nota[] = new double[4], soma = 0; //variaveis do 1 exercicio 4
        double raio, area = 0;  //variaveis do 1 exercicio 5

        int A[] = new int[10], B[] = new int[10]; //variaveis do 2 exercicio 1
        String VetA, VetB;  //variaveis do 2 exercicio 1
        int vA[] = new int[5], vB[] = new int[5]; //variaveis do 2 exercicio 2
        String vC[] = new String[10];  //variaveis do 2 exercicio 2
        String sVA = "", sVB = "", sVC = "";  //variaveis do 2 exercicio 2
        int m[][] = new int[3][3]; //variaveis do 2 exercicio 3
        String saidaMatriz = ""; //variaveis do 2 exercicio 3
        int vetA[] = new int[5], vetB[] = new int[5], vetC[] = new int[5]; //variaveis do 2 exercicio 4
        String matriz[][] = new String[5][3], saida = "";  //variaveis do 2 exercicio 4
        double venda; //variaveis do 2 exercicio 5
        int me = 0; //variaveis do 2 exercicio 5

        do { //validação
            menu = Integer.parseInt(JOptionPane.showInputDialog("Informe a opção desejada:"
                    + "\n1-Exercicios do dia 20.08.2012"
                    + "\n2-Exercicios do dia 21.08.2012"
                    + "\n3-Fechar o programa"));

            switch (menu) {
                case 1:
                    JOptionPane.showMessageDialog(null, "CASE 1\nExercicio do dia 20.08.2012");

                    do { //validação
                        op = Integer.parseInt(JOptionPane.showInputDialog("Informe o Exercicio desejado"
                                + "\n1-Exercicio 1"
                                + "\n2-Exercicio 2"
                                + "\n3-Exercicio 3"
                                + "\n4-Exercicio 4"
                                + "\n5-Exercicio 5"
                                + "\n6-Sair"));
                        switch (op) {
                            case 1:
                                //Anunciado do Exercicio
                                JOptionPane.showMessageDialog(null, "Solicite ao usuário o seu ano de"
                                        + " nascimento e o ano atual e determine qual é a idade que ele"
                                        + " completa no ano atual.");

                                //Entrada de dados
                                anoN = Integer.parseInt(JOptionPane.showInputDialog("Informe o ano de nascimento:"));
                                anoA = Integer.parseInt(JOptionPane.showInputDialog("Informe o ano atual"));

                                //processamento
                                idade = anoA - anoN;

                                JOptionPane.showMessageDialog(null, "A idade do usuario ate 31 de dezembro de " + anoA + " é " + idade);
                                break;
                            case 2:
                                //Anunciado do Exercicio
                                JOptionPane.showMessageDialog(null, "Calcule e exiba a quantidade de salários mínimos que um"
                                        + " determinado funcionário ganha.\nPara isto, peça o valor do seu salário e o valor do"
                                        + " salário mínimo atual.");

                                //Janelas JOptionPanes
                                salario = Double.parseDouble(JOptionPane.showInputDialog("Informe o salario do funcionario:"));
                                salAtual = Double.parseDouble(JOptionPane.showInputDialog("Informe o valor do salario minimo:"));

                                qtd = salario / salAtual;

                                JOptionPane.showMessageDialog(null, "O salario do funcionario possui " + qtd + " salarios");
                                break;
                            case 3:
                                //Anunciado do Exercicio
                                JOptionPane.showMessageDialog(null, "Solicite a quantidade de homens e de mulheres de uma turma da"
                                        + " faculdade.\nEm seguida  calcule e exiba o percentual (separadamente) de homens e mulheres"
                                        + " desta turma.");

                                homem = Double.parseDouble(JOptionPane.showInputDialog("Informe a quantidade de Homens da turma:"));
                                mulher = Double.parseDouble(JOptionPane.showInputDialog("Informe a quantidade de Mulheres da turma:"));

                                percH = (homem / (homem + mulher)) * 100;
                                percM = (mulher / (homem + mulher)) * 100;

                                JOptionPane.showMessageDialog(null, "O percentual de homens é " + percH + "%\nO percentual de"
                                        + " mulheres é " + percM + "%");
                                break;
                            case 4:
                                //Anunciado do Exercicio
                                JOptionPane.showMessageDialog(null, "Determine e exiba a média aritmética de um aluno de ensino"
                                        + " médio a partir de suas 4 notas.");

                                //inicio da entrada
                                for (i = 0; i < 4; i++) {
                                    nota[i] = Double.parseDouble(JOptionPane.showInputDialog("Informe a nota " + (i + 1) + ":"));
                                    soma = soma + nota[i];
                                } //fim do for
                                JOptionPane.showMessageDialog(null, "A media do aluno é " + (soma / 4));
                                break;
                            case 5:
                                //Anunciado do Exercicio
                                JOptionPane.showMessageDialog(null, "Calcule e exiba área ocupada por um círculo cujo raio mede"
                                        + " n metros.\nA área de um círculo é PI multiplicado pelo raio elevado ao quadrado.");

                                //inicio da entrada
                                raio = Double.parseDouble(JOptionPane.showInputDialog("Informe o tamanho do raio;"));
                                area = Math.PI * raio * raio;

                                JOptionPane.showMessageDialog(null, "O valor da area é " + area);
                                break;
                            case 6:
                                JOptionPane.showMessageDialog(null, "Indo para o Menu Principal");
                                break;
                            default:
                                JOptionPane.showMessageDialog(null, "ERRO\nOpção invalida");
                                break;
                        } //final do switch do menu do Exercicio 1
                    } while (op != 6); //fim do while do case 1
                    break;
                case 2:
                    JOptionPane.showMessageDialog(null, "CASE 2\nExercicio do dia 21.08.2012");

                    do { //validação
                        op = Integer.parseInt(JOptionPane.showInputDialog("Informe o Exercicio desejado"
                                + "\n1-Exercicio 1"
                                + "\n2-Exercicio 2"
                                + "\n3-Exercicio 3"
                                + "\n4-Exercicio 4"
                                + "\n5-Exercicio 5"
                                + "\n6-Sair"));
                        switch (op) {
                            case 1:
                                //Anunciado do Exercicio
                                JOptionPane.showMessageDialog(null, "Leia um vetor A de 10 elementos. Construa um vetor B do mesmo tipo que"
                                        + "\n recebe os valores de A na ordem inversa. O primeiro elemento de A será último"
                                        + "\nde B, o segundo de A será o penúltimo de B e assim por diante. Escreva A e B.");

                                //Entrada de dados
                                VetA = ""; //inicializar e zerar a string
                                VetB = ""; //inicializar e zerar a string

                                for (int j = 0; j < 10; j++) {
                                    A[j] = Integer.parseInt(JOptionPane.showInputDialog("Informe a sequencia de 10 numeros inteiro:"));
                                } //fim do for
                                i = 0;
                                for (int j = 9; j >= 0; j--) {
                                    B[j] = A[i];
                                    i++;
                                } //fim do for
                                //Guarda os elementos dos vetores
                                for (i = 0; i < 10; i++) {
                                    VetA += A[i] + " "; // Mostra o vetor A
                                    VetB += B[i] + " "; // Mostra o vetor B
                                } //fim do for
                                JOptionPane.showMessageDialog(null, "O vetor A é " + VetA + "\nO vetor B é " + VetB);

                                break;
                            case 2:
                                //Anunciado do Exercicio
                                JOptionPane.showMessageDialog(null, "Leia dois vetores A e B de inteiros com 5 elementos cada. Crie um vetor C"
                                        + "\n que recebe os valores de A e B, nesta ordem. Desta forma, C terá o dobro de tamanho de A ou B."
                                        + "\n Escreva A, B e C");

                                //comandos
                                for (i = 0; i < 5; i++) {  //entrada para o vetor A
                                    vA[i] = Integer.parseInt(JOptionPane.showInputDialog("Entre com o numero para o vetor A:"));
                                } //fim do for - Entrada

                                for (i = 0; i < 5; i++) {  //entrada para o vetor B
                                    vB[i] = Integer.parseInt(JOptionPane.showInputDialog("Entre com o numero para o vetor B:"));
                                } //fim do for - Entrada

                                int j = 0;
                                int z = 0;
                                for (i = 0; i < 10; i++) {
                                    //percorre e aloca os elementos no vetor C obedecendo a posição
                                    if (i < 5) {
                                        //vC[i]= vA[j] + " "; //Contrução do vetor C
                                        sVC += vA[j] + " ";
                                        sVA += vA[j] + " ";
                                        j++;
                                    } else {
                                        // vC[i] = vB[z] + " ";  //Contrução do vetor C
                                        sVC += vB[z] + " ";
                                        sVB += vB[z] + " ";
                                        z++;
                                    } //fim do else

                                } //fim do for

                                /*
                                 * for (i = 0; i < 10; i++) { // para mostrar o
                                 * vetor C sVC += vC[i]+" "; } //fim do for *
                                 */

                                //Impressão da resposta
                                JOptionPane.showMessageDialog(null, "O vetor A é " + sVA
                                        + "\nO vetor B é " + sVB
                                        + "\nO vetor C é " + sVC);

                                //Zera as Strings para nova consulta
                                sVA = "";
                                sVB = "";
                                sVC = "";

                                break;
                            case 3:
                                //Anunciado do Exercicio
                                JOptionPane.showMessageDialog(null, "Leia um vetor A de inteiros com 9 elementos. Crie uma Matriz M de 3 linhas"
                                        + "\n e 3 colunas que recebem os valores de A. Escreva A");

                                //processamento
                                for (i = 0; i < 3; i++) {
                                    saidaMatriz += "|";
                                    for (j = 0; j < 3; j++) {
                                        m[i][j] = Integer.parseInt(JOptionPane.showInputDialog("Informe o elemento do vetor A"));
                                        saidaMatriz += m[i][j] + " ";
                                    } //fim do for

                                    saidaMatriz += "|\n";
                                } //fim do for

                                //saida - resposta
                                JOptionPane.showMessageDialog(null, saidaMatriz);
                                break;
                            case 4:
                                //Anunciado do Exercicio
                                JOptionPane.showMessageDialog(null, "Crie 3 vetores de inteiros com 5 elementos cada. Receba os valores dos 3"
                                        + "\n vetores em uma matriz de 3 colunas e 5 linhas, onde cada coluna armazenará um vetor. Escreva a"
                                        + "\n matriz final.");

                                //inicio da entrada
                                //Entrada - Vetor A
                                for (int col = 0; col < 5; col++) {
                                    vetA[col] = Integer.parseInt(JOptionPane.showInputDialog("Informe o elemento " + (col + 1) + " do vetor A:"));
                                }
                                //Entrada - Vetor B
                                for (int col = 0; col < 5; col++) {
                                    vetB[col] = Integer.parseInt(JOptionPane.showInputDialog("Informe o elemento " + (col + 1) + " do vetor B:"));
                                }
                                //Entrada - Vetor C
                                for (int col = 0; col < 5; col++) {
                                    vetC[col] = Integer.parseInt(JOptionPane.showInputDialog("Informe o elemento " + (col + 1) + " do vetor C:"));
                                }
                                /*
                                 *      //Entrada automatica int vetA[] = {1, 2, 3,
                                 * 4, 5}; //Criando o vetor automatico int
                                 * vetB[] = {6, 7, 8, 9, 10}; //Criando o betor
                                 * automatico int vetC[] = {11, 12, 13, 14, 15};
                                 * //Criando o vetor automatico
                                 *
                                 */

                                for (int col = 0; col < 3; col++) {
                                    for (int lin = 0; lin < 5; lin++) {
                                        if (col == 0) { //matriz armazena coluna 0
                                            matriz[lin][col] = "|" + vetA[lin] + " ";
                                        } //fim do if - vetor A
                                        if (col == 1) { //matriz armazena coluna 1
                                            matriz[lin][col] = vetB[lin] + " ";
                                        } //fim do if - vetor B
                                        if (col == 2) { //matriz armazena coluna 2
                                            matriz[lin][col] = vetC[lin] + "|";
                                        } //fim do if - vetor C
                                    } //fim do for lin
                                } //fim do for col

                                //Impressao do resultado
                                for (int lin = 0; lin < 5; lin++) {
                                    for (int col = 0; col < 3; col++) {
                                        saida += matriz[lin][col];
                                    } //fim do for
                                    saida += "\n";
                                } //fim do for
                                JOptionPane.showMessageDialog(null, "A matriz resultante é:\n" + saida);
                                break;
                            case 5:
                                //Anunciado do Exercicio
                                JOptionPane.showMessageDialog(null, "Uma empresa que trabalha com vendas a prazo precisa de um programa que"
                                        + "\n simule o valor das parcelas de um determinado valor, com juros que variam de acordo com o número"
                                        + "\n de prestações e o valor do produto conforme referência abaixo:"
                                        + "\n   a - 6 parcelas sem juros;"
                                        + "\n   b - 12 parcelas  com juros de 1% (somente para compras acima de R$ 500,00)"
                                        + "\n   c - 18 parcelas com juros de 1,5% (somente para compras acima de R$ 1000,00)"
                                        + "\n   d - 24 parcelas com juros de 2% (somente para compras acima de R$ 2000,00);"
                                        + "\n   e - Crie um programa que leia o valor da venda, apresente um menu com as opções de parcelamento "
                                        + "\npara esta venda e simule o valor das prestações.");

                                //inicio da entrada
                                do { //simulaçao
                                    venda = Double.parseDouble(JOptionPane.showInputDialog("Informe o valor da venda para a simulação:"));

                                    if (venda <= 500) {
                                        do { //validação
                                            me = Integer.parseInt(JOptionPane.showInputDialog("Informe a forma de Pagamento:"
                                                    + "\n1-Pagamento em 6 vezes"
                                                    + "\n2-Sair"));
                                            if (me == 2) {
                                                me += 3;
                                            } //para sair
                                        } while (me < 0 && me > 2);
                                    } else {
                                        if (venda > 500 && venda <= 1000) {
                                            do { //validação
                                                me = Integer.parseInt(JOptionPane.showInputDialog("Informe a forma de Pagamento:"
                                                        + "\n1-Pagamento em 6 vezes"
                                                        + "\n2-Pagamento em 12 vezes"
                                                        + "\n3-Sair"));
                                                if (me == 3) {
                                                    me += 2;
                                                } //para sair
                                            } while (me < 0 && me > 3);
                                        } else {
                                            if (venda > 1000 && venda <= 2000) {
                                                do { //validação
                                                    me = Integer.parseInt(JOptionPane.showInputDialog("Informe a forma de Pagamento:"
                                                            + "\n1-Pagamento em 6 vezes"
                                                            + "\n2-Pagamento em 12 vezes"
                                                            + "\n3-Pagamento em 18 vezes"
                                                            + "\n4-Sair"));
                                                    if (me == 4) {
                                                        me += 1;
                                                    } //para sair
                                                } while (me < 0 && me > 4);
                                            } else {
                                                if (venda > 2000) {
                                                    do { //validação
                                                        me = Integer.parseInt(JOptionPane.showInputDialog("Informe a forma de Pagamento:"
                                                                + "\n1-Pagamento em 6 vezes"
                                                                + "\n2-Pagamento em 12 vezes"
                                                                + "\n3-Pagamento em 18 vezes"
                                                                + "\n4-Pagamento em 24 vezes"
                                                                + "\n5-Sair"));
                                                    } while (me < 0 && me > 5);
                                                } //fim do if
                                            } //fim do else 3
                                        } //fim do else 2
                                    } //fim do else 1

                                    switch (me) {
                                        case 1:
                                            JOptionPane.showMessageDialog(null, "OPÇÃO 1: (SIMULAÇÃO)\n"
                                                    + "Pagamento em 6x - SEM JUROS:"
                                                    + "\n6 parcelas de " + (venda / 6));
                                            break;
                                        case 2:
                                            JOptionPane.showMessageDialog(null, "OPÇÃO 2: (SIMULAÇÃO)\n"
                                                    + "Pagamento em 12x:"
                                                    + "\n12 parcelas de " + (venda*1.01 / 12));
                                            break;
                                        case 3:
                                            JOptionPane.showMessageDialog(null, "OPÇÃO 3: (SIMULAÇÃO)\n"
                                                    + "Pagamento em 18x:"
                                                    + "\n18 parcelas de " + (venda*1.015 / 18));
                                            break;
                                        case 4:
                                            JOptionPane.showMessageDialog(null, "OPÇÃO 4: (SIMULAÇÃO)\n"
                                                    + "Pagamento em 24x:"
                                                    + "\n24 parcelas de " + (venda*1.02 / 24));
                                            break;
                                        case 5:
                                            JOptionPane.showMessageDialog(null, "Opção Sair!");
                                            break;
                                        default:
                                            JOptionPane.showMessageDialog(null, "Opção Invalida!");
                                            break;
                                    }
                                } while (me != 5);
                                break;
                            case 6:
                                JOptionPane.showMessageDialog(null, "Indo para o Menu Principal");
                                break;
                            default:
                                JOptionPane.showMessageDialog(null, "ERRO\nOpção invalida");
                                break;
                        } //final do switch do menu do Exercicio 1
                    } while (op != 6); //fim do while do case 1
                    break;
                case 3:
                    JOptionPane.showMessageDialog(null, "Sair do programa...");
                    break;
                default:
                    JOptionPane.showMessageDialog(null, "ERRO\nOpção invalida");
                    break;
            } //fim do switch
        } while (menu != 3); //fim do while - menu principal
    } //fim do main
} //fim da Classe

2 comentários:

  1. Escreva a classe Rectangle qui represente um rectângulo num plano. Um rectângulo é caracterizado por uma posição no plano e por um comprimento e uma largura. A classe deve ter o método toString qui mostra as coordenadas e dimensões do rectângulo e igualmente a função fusion qui permite a fusão entre dois rectângulos

    ResponderExcluir
  2. Obrigado por ajudar-me, estava em dúvida com fazer uma matriz
    agora vou estudar bastante e conto com o vosso apoio.

    ResponderExcluir