Programe – Seção Java Lista de Exercícios 1 Gabarito – Caixas de diálogo/Console http://intervox.nce.ufrj.br/~napilhadigital/ Nota geral (1): Os gabaritos são listados apresentando suas programações em Java com entrada em caixas de diálogo e saída de dados no console. Os enunciados são apresentados novamente para facilitar análises comparativas das soluções do estudante com as do PROGRAME. Nota geral (2): É importante para o estudante chegar nesta seção com seus próprios códigos já prontos, pois o estudo fica comprovado, já que o aprendizado da lógica de programação vai de encontro com bastante treino, investindo em tentativas e erros. Nota geral (3): Sugestão do site: as soluções criadas com IDE Eclipse, contendo pacotes (packages). As classes foram organizadas pelos pacotes (packages) de acordo com o grau básico de evolução dos exercícios. Portanto, a seguir são apresentadas instruções que solicitam a definição da área de trabalho (Switch Workspace), criação do projeto chamado “Projeto_Inicial” que conterá 3 pacotes, batizados respectivamente como: basico_1, basico_2 e basico_3. Cada pacote possui 2 classes, onde cada classe faz referência a solução de um determinado exercício. “File” => “Switch Workspace” “File” => “New” => “Java” => “Java Project” => “Projeto_Inicial”. No projeto “Projeto_Inicial”, criar o pacote: “basico_1”. No projeto “Projeto_ Inicial”, criar o pacote: “basico_2”. No projeto “Projeto_ Inicial ”, criar o pacote: “basico_3”. No pacote “basico_1”, criar a classe: “Exercício1_caixas_console”. No pacote “basico_1”, criar a classe: “Exercício2_caixas_console”. No pacote “basico_2”, criar a classe: “Exercício3_caixas_console” No pacote “basico_2”, criar a classe: “Exercicio4_caixas_console”. No pacote “basico_3”, criar a classe: “Exercício5_caixas_console”. No pacote “basico_3”, criar a classe: “Exercício6_caixas_console”. Exercício 1: Ler id, nome, altura, sexo, peso e idade de 1 pessoa que trabalha na sala comercial da Tia Albinha. Ao final, apresentar os dados lidos. package basico_1; import java.text.DecimalFormat; import javax.swing.JOptionPane; public class Exercicio1_caixas_console { public static void main (String args[]) { // Declaração das variáveis int id, idade; String nome, sexo; float altura, peso; // "formatarNumero" é o objeto da classe DecimalFormat. // "formatarNumero" é usado no programa para formatar as casas decimais. // Para utilizar a classe DecimalFormat é necessário a linha import java.text.DecimalFormat; DecimalFormat formatarNumero = new DecimalFormat("0.00"); // Leitura de dados id = Integer.parseInt(JOptionPane.showInputDialog (null,"\nDigite o número para identificar a pessoa: ","Leitura da IDENTIFICAÇÃO",JOptionPane.PLAIN_MESSAGE)); nome = JOptionPane.showInputDialog (null,"\nDigite o nome: ","Leitura do NOME",JOptionPane.PLAIN_MESSAGE); altura = Float.parseFloat(JOptionPane.showInputDialog (null,"\nDigite a altura (Use o ponto no lugar da vírgual): ","Leitura da ALTURA",JOptionPane.PLAIN_MESSAGE)); sexo = JOptionPane.showInputDialog (null,"\nDigite o sexo (Feminino/Masculino): ","Leitura do SEXO",JOptionPane.PLAIN_MESSAGE); peso = Float.parseFloat(JOptionPane.showInputDialog (null,"\nDigite a peso (Use o ponto no lugar da vírgula): ","Leitura do PESO",JOptionPane.PLAIN_MESSAGE)); idade = Integer.parseInt(JOptionPane.showInputDialog (null,"\nDigite a idade: ","Leitura da IDADE",JOptionPane.PLAIN_MESSAGE)); // Apresentação dos valores lidos System.out.println("\nAPRESENTANDO DOS VALORES LIDOS"); System.out.println("Identificação: "+id); System.out.println("Nome: "+nome); System.out.println("Altura: "+formatarNumero.format(altura)); System.out.println("Sexo: "+sexo); System.out.println("Peso: "+formatarNumero.format(peso)); System.out.println("Idade: "+idade); } // Final do método principal } // Final da classe Exercicio1_caixas_console Exercício 2: Ler id, nome, altura, sexo, peso e idade de 1 pessoa que trabalha na sala comercial da Tia Albinha. Ao final, apresentar os dados lidos. Imprimir a frase: "Os dados lidos são de uma MULHER!", caso O sexo seja Feminino. Caso contrário, imprimir a frase: "Os dados lidos são de um HOMEM!", caso o sexo seja Masculino. package basico_1; import java.text.DecimalFormat; import javax.swing.JOptionPane; public class Exercicio2_caixas_console { public static void main (String args[]) { // Declaração das variáveis int id, idade; String nome, sexo; float altura, peso; // "formatarNumero" é o objeto da classe DecimalFormat. // "formatarNumero" é usado no programa para formatar as casas decimais. // Para utilizar a classe DecimalFormat é necessário a linha import java.text.DecimalFormat; DecimalFormat formatarNumero = new DecimalFormat("0.00"); // Leitura de dados id = Integer.parseInt(JOptionPane.showInputDialog (null,"\nDigite o número para identificar a pessoa: ","Leitura da IDENTIFICAÇÃO",JOptionPane.PLAIN_MESSAGE)); nome = JOptionPane.showInputDialog (null,"\nDigite o nome: ","Leitura do NOME",JOptionPane.PLAIN_MESSAGE); altura = Float.parseFloat(JOptionPane.showInputDialog (null,"\nDigite a altura (Use o ponto no lugar da vírgula): ","Leitura da ALTURA",JOptionPane.PLAIN_MESSAGE)); sexo = JOptionPane.showInputDialog (null,"\nDigite o sexo (Feminino/Masculino): ","Leitura do SEXO",JOptionPane.PLAIN_MESSAGE); peso = Float.parseFloat(JOptionPane.showInputDialog (null,"\nDigite a peso (Use o ponto no lugar da vírgula): ","Leitura do PESO",JOptionPane.PLAIN_MESSAGE)); idade = Integer.parseInt(JOptionPane.showInputDialog (null,"\nDigite a idade: ","Leitura da IDADE",JOptionPane.PLAIN_MESSAGE)); if (sexo.equalsIgnoreCase("Feminino")) JOptionPane.showMessageDialog(null, "Os dados lidos são de uma MULHER"); else JOptionPane.showMessageDialog(null, "Os dados lidos são de um HOMEM"); // Apresentação dos valores lidos System.out.println("\nAPRESENTANDO DOS VALORES LIDOS"); System.out.println("Identificação: "+id); System.out.println("Nome: "+nome); System.out.println("Altura: "+formatarNumero.format(altura)); System.out.println("Sexo: "+sexo); System.out.println("Peso: "+formatarNumero.format(peso)); System.out.println("Idade: "+idade); } // Final do método principal } // Final da classe Exercicio2_caixas_console Exercício 3: Ler id, nome, altura, sexo, peso e idade de 3 pessoas que trabalham na sala comercial da Tia Albinha. Calcular: a média das alturas das pessoas; qual o peso da pessoa mais pesada? Ao final, apresentar os resultados dos cálculos solicitados. package basico_2; import java.text.DecimalFormat; import javax.swing.JOptionPane; public class Exercicio3_caixas_console { public static void main (String args[]) { // Declaração das variáveis int id = 0, idade = 0, i; String nome = null, sexo = null; float altura = 0, peso = 0, maisPesada = 0, mediaAltura, somaAltura = 0; // "formatarNumero" é o objeto da classe DecimalFormat. // "formatarNumero" é usado no programa para formatar as casas decimais. // Para utilizar a classe DecimalFormat é necessário a linha import java.text.DecimalFormat; DecimalFormat formatarNumero = new DecimalFormat("0.00"); for (i=1;i<=3;i++) { // Leitura de dados id = Integer.parseInt(JOptionPane.showInputDialog(null,"\nDigite o número para identificar a pessoa: ","Leitura da IDENTIFICAÇÃO",JOptionPane.PLAIN_MESSAGE)); nome = JOptionPane.showInputDialog (null,"\nDigite o nome: ","Leitura do NOME",JOptionPane.PLAIN_MESSAGE); altura = Float.parseFloat(JOptionPane.showInputDialog(null,"\nDigite a altura (Use o ponto no lugar da vírgula): ","Leitura da ALTURA",JOptionPane.PLAIN_MESSAGE)); sexo = JOptionPane.showInputDialog (null,"\nDigite o sexo (Feminino/Masculino): ","Leitura do SEXO",JOptionPane.PLAIN_MESSAGE); peso = Float.parseFloat(JOptionPane.showInputDialog (null,"\nDigite a peso (Use o ponto no lugar da vírgula): ","Leitura do PESO",JOptionPane.PLAIN_MESSAGE)); idade = Integer.parseInt(JOptionPane.showInputDialog (null,"\nDigite a idade: ","Leitura da IDADE",JOptionPane.PLAIN_MESSAGE)); // Cálculos somaAltura +=altura; if (peso>maisPesada) maisPesada=peso; // Apresentação dos valores lidos System.out.println("\nAPRESENTANDO DOS VALORES LIDOS"); System.out.println("Identificação: "+id); System.out.println("Nome: "+nome); System.out.println("Altura: "+formatarNumero.format(altura)); System.out.println("Sexo: "+sexo); System.out.println("Peso: "+formatarNumero.format(peso)); System.out.println("Idade: "+idade); } // final do bloco de repetição // Cálculo da média das alturas das pessoas. mediaAltura = somaAltura/3; // Imprimindo os valores processados. System.out.println("\n"); System.out.println("\nMédia das alturas das pessoas: "+formatarNumero.format(mediaAltura)); System.out.println("Peso da pessoa mais pesada: "+formatarNumero.format(maisPesada)); } // Final do método principal } // Final da classe Exercicio3_caixas_console Exercício 4: Ler id, nome, altura, sexo, peso e idade para um número indeterminado de pessoas que trabalham na sala comercial da Tia Albinha. Aplicar com o conceito de FLAG. Calcular: o nome da mulher mais alta; o nome e a idade do homem mais velho; quantidade de pessoas que foram cadastradas; quantidade de homens do cadastro; total de mulheres do cadastro. Ao final, apresentar os resultados dos cálculos. package basico_2; import java.text.DecimalFormat; import javax.swing.JOptionPane; class Exercicio4_caixas_console { public static void main (String args[]) { // Declaração das variáveis int flag=1; int id = 0, idade = 0, i; String nome = null, sexo = null; float altura = 0, peso = 0; int idadeMaisVelha = 0, quantPessoas = 0, quantMulher = 0, quantHomem = 0; String nomeMaisAlta = null, nomeHomemMaisVelho = null; float maisAlta = 0; // "formatarNumero" é o objeto da classe DecimalFormat. // "formatarNumero" é usado no programa para formatar as casas decimais. // Para utilizar a classe DecimalFormat é necessário a linha import java.text.DecimalFormat; DecimalFormat formatarNumero = new DecimalFormat("0.00"); while (flag!=0) { // Leitura de dados id = Integer.parseInt(JOptionPane.showInputDialog (null,"\nDigite o número para identificar a pessoa: ","Leitura da IDENTIFICAÇÃO",JOptionPane.PLAIN_MESSAGE)); nome = JOptionPane.showInputDialog (null,"\nDigite o nome: ","Leitura do NOME",JOptionPane.PLAIN_MESSAGE); altura = Float.parseFloat(JOptionPane.showInputDialog (null,"\nDigite a altura (Use o ponto no lugar da vírgula): ","Leitura da ALTURA",JOptionPane.PLAIN_MESSAGE)); sexo = JOptionPane.showInputDialog (null,"\nDigite o sexo (Feminino/Masculino): ","Leitura do SEXO",JOptionPane.PLAIN_MESSAGE); peso = Float.parseFloat(JOptionPane.showInputDialog (null,"\nDigite a peso (Use o ponto no lugar da vírgula): ","Leitura do PESO",JOptionPane.PLAIN_MESSAGE)); idade = Integer.parseInt(JOptionPane.showInputDialog (null,"\nDigite a idade: ","Leitura da IDADE",JOptionPane.PLAIN_MESSAGE)); // Cálculos if (sexo.equalsIgnoreCase("Feminino")) { if (altura>maisAlta) { maisAlta = altura; nomeMaisAlta = nome; } // final do then quantMulher++; } // final do then else { if (idade>idadeMaisVelha) { idadeMaisVelha = idade; nomeHomemMaisVelho = nome; } // final do then quantHomem++; } // final do else quantPessoas++; // Apresentação dos valores lidos System.out.println("\n"); System.out.println("APRESENTANDO OS VALORES LIDOS"); System.out.println("Identificação: "+id); System.out.println("Nome: "+nome); System.out.println("Altura: "+formatarNumero.format(altura)); System.out.println("Sexo: "+sexo); System.out.println("Peso: "+formatarNumero.format(peso)); System.out.println("Idade: "+idade); // Leitura de reposição (para controlar a repetição) flag = Integer.parseInt(JOptionPane.showInputDialog (null,"\nPara continuar o cadastro, digite [1]. Para finalizar e ver os cálculos, digite [0]: ", "Controle da repetição",JOptionPane.PLAIN_MESSAGE)); } // final do bloco de repetição // Imprimindo os cálculos processados. System.out.println("\n"); System.out.println("Nome da mulher mais alta: "+nomeMaisAlta); System.out.println("Nome do homem mais velho: "+nomeHomemMaisVelho); System.out.println("Idade do homem mais velho: "+idadeMaisVelha); System.out.println("Quantidade de pessoas do cadastro: "+quantPessoas); System.out.println("Quantidade de homens do cadastro: "+quantHomem); System.out.println("Total de mulheres do cadastro: "+quantMulher); } // Final do método principal } // Final da classe Exercicio4_caixas_console Exercício 5: Criar um vetor de 5 posições para cadastrar as mensalidades de uma turma de aula particular da Tia Lúcia. Calcular quantos reais a Tia receberá. Ao final da programação, apresentar todos os valores lidos e o cálculo processado. package basico_3; import java.text.DecimalFormat; import javax.swing.JOptionPane; public class Exercicio5_caixas_console { public static void main (String args[]) { // Declaração de variáveis int i; float soma = 0; float Vetor[] = new float[5]; // "formatarNumero" é o objeto da classe DecimalFormat. // "formatarNumero" é usado no programa para formatar as casas decimais. // Para utilizar a classe DecimalFormat é necessário a linha import java.text.DecimalFormat; DecimalFormat formatarNumero = new DecimalFormat("0.00"); // Leitura das mensalidades dos 5 alunos. for (i=0;i<=4;i++) { Vetor[i] = Float.parseFloat(JOptionPane.showInputDialog (null,"\nDigite a "+(i+1)+"a. mensalidade: ","Aula particular - Tia Lúcia",JOptionPane.PLAIN_MESSAGE)); soma +=Vetor[i]; } // final do bloco de repetição // Apresentação das mensalidades lidas. String Resultado="\nAPRESENTAÇÃO DAS MENSALIDADES LIDAS"+"\n"; for (i=0;i<=4;i++) { System.out.println((i+1)+"a. Mensalidade: "+formatarNumero.format(Vetor[i])); } // final do bloco de repetição System.out.println("\nRESULTADO DO CÁLCULO"); System.out.println("Soma das mensalidades lidas: "+formatarNumero.format(soma)); } // Final do método principal } // Final da classe Exercicio5_caixas_console Exercício 6: Criar uma matriz de 2x2 que permita o armazenamento das idades de 4 pessoas de uma turma de aula particular da Tia Lúcia. Descobrir qual a idade da pessoa mais velha e a média das idades lidas. Imprimir todas as idades lidas além dos resultados dos cálculos processados. package basico_3; import java.text.DecimalFormat; import javax.swing.JOptionPane; public class Exercicio6_caixas_console { public static void main (String args[]) { // Declaração de variáveis int i,j = 0; int somaIdade = 0, maisVelha = 0; int Matriz[][] = new int[2][2]; float mediaIdade; // "formatarNumero" é o objeto da classe DecimalFormat. // "formatarNumero" é usado no programa para formatar as casas decimais. // Para utilizar a classe DecimalFormat é necessário a linha import java.text.DecimalFormat; DecimalFormat formatarNumero = new DecimalFormat("0.00"); // Leitura das idades. for (i=0;i<=1;i++) { for (j=0;j<=1;j++) { Matriz[i][j] = Integer.parseInt(JOptionPane.showInputDialog (null,"\nDigite a idade para posição ["+(i+1)+","+(j+1)+"] da matriz: ","Leitura de IDADES",JOptionPane.PLAIN_MESSAGE)); somaIdade +=Matriz[i][j]; if (Matriz[i][j]>maisVelha) { maisVelha = Matriz[i][j]; } // final do bloco do então } // final do bloco de repetição – j } // final do bloco de repetição - i mediaIdade = somaIdade/4; // Apresentação das idades lidas. String Resultado="\nAPRESENTAÇÃO DAS IDADES LIDAS"+"\n"; for (i=0;i<=1;i++) { for (j=0;j<=1;j++) { System.out.println("Idade - Posição da matriz ["+(i+1)+","+(j+1)+"] : "+Matriz[i][j]); } // final do bloco de repetição - j } // final do bloco de repetição - i System.out.println("\nRESULTADO DO CÁLCULO"); System.out.println("Idade da pessoa mais velha: "+maisVelha); System.out.println("Média das idades lidas: "+formatarNumero.format(mediaIdade)); } // Final do método principal } // Final da classe Exercicio6_caixas_console