Programe – Seção Java Lista de Exercícios 1 Gabarito – Caixas de diálogo http://intervox.nce.ufrj.br/~napilhadigital/ Nota geral (1): Os gabaritos são listados apresentando suas programações em Java com entrada e saida em caixas de diálogo. Os enunciados são apresentados novamente para facilitar análises comparativas das soluções do estudante com as do site 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, contém 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”. No pacote “basico_1”, criar a classe: “Exercício2_caixas”. No pacote “basico_2”, criar a classe: “Exercício3_caixas” No pacote “basico_2”, criar a classe: “Exercicio4_caixas”. No pacote “basico_3”, criar a classe: “Exercício5_caixas”. No pacote “basico_3”, criar a classe: “Exercício6_caixas”. 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.*; public class Exercicio1_caixas { 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 o 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 String Resultado="\nAPRESENTANDO DOS VALORES LIDOS"+"\n"+ "\n >>> Identificação: "+id+ "\n >>> Nome: "+nome+ "\n >>> Altura: "+formatarNumero.format(altura)+ "\n >>> Sexo: "+sexo+ "\n >>> Peso: "+formatarNumero.format(peso)+ "\n >>> Idade: "+idade; JOptionPane.showMessageDialog(null, Resultado, "Exercicio1_caixas",1); } // Final do método principal } // Final da classe Exercicio1_caixas 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 { 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 o peso (Use o ponto no lugar da vírgual): ","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 String Resultado="\nAPRESENTANDO DOS VALORES LIDOS"+"\n"+ "\n >>> Identificação: "+id+ "\n >>> Nome: "+nome+ "\n >>> Altura: "+formatarNumero.format(altura)+ "\n >>> Sexo: "+sexo+ "\n >>> Peso: "+formatarNumero.format(peso)+ "\n >>> Idade: "+idade; JOptionPane.showMessageDialog(null, Resultado, "Exercicio2_caixas",1); } // Final do método principal } // Final da classe Exercicio2_caixas 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 { 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í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 o peso (Use o ponto no lugar da vírgual): ","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; String Resultado1="\nAPRESENTANDO OS VALORES LIDOS"+"\n"+ "\n >>> Identificação: "+id+ "\n >>> Nome: "+nome+ "\n >>> Altura: "+formatarNumero.format(altura)+ "\n >>> Sexo: "+sexo+ "\n >>> Peso: "+formatarNumero.format(peso)+ "\n >>> Idade: "+idade; JOptionPane.showMessageDialog(null, Resultado1, "Exercicio3_caixas",1); } // final do bloco de repetição mediaAltura = somaAltura/3; // Apresentação dos valores lidos String Resultado2="\nRESULTADOS DOS CÁLCULOS"+ "\n\n >>> Média das alturas das pessoas: "+formatarNumero.format(mediaAltura)+ "\n\n >>> Peso da pessoa mais pesada: "+formatarNumero.format(maisPesada); JOptionPane.showMessageDialog(null, Resultado2, "Exercicio3_caixas",1); } // Final do método principal } // Final da classe Exercicio3_caixas 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; public class Exercicio4_caixas { public static void main (String args[]) { // Declaração das variáveis int flag=1; String id_texto, idade_texto, altura_texto, peso_texto; 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í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 o peso (Use o ponto no lugar da vírgual): ","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++; String Resultado1="\nAPRESENTANDO OS VALORES LIDOS"+"\n"+ "\n >>> Identificação: "+id+ "\n >>> Nome: "+nome+ "\n >>> Altura: "+formatarNumero.format(altura)+ "\n >>> Sexo: "+sexo+ "\n >>> Peso: "+formatarNumero.format(peso)+ "\n >>> Idade: "+idade; JOptionPane.showMessageDialog(null, Resultado1, "Exercicio4_caixas",1); // 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 // Apresentação dos valores lidos String Resultado2="\n\n RESULTADOS DOS CÁLCULOS"+ "\n >>> Nome da mulher mais alta: "+nomeMaisAlta+ "\n >>> Nome do homem mais velho: "+nomeHomemMaisVelho+ "\n >>> Idade do homem mais velho: "+idadeMaisVelha+ "\n >>> Quantidade de pessoas do cadastro: "+quantPessoas+ "\n >>> Quantidade de homens do cadastro: "+quantHomem+ "\n >>> Total de mulheres do cadastro: "+quantMulher; JOptionPane.showMessageDialog(null, Resultado2, "Exercicio4_caixas",1); } // Final do método principal } // Final da classe Exercicio4_caixas 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 { 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++) { Resultado += "\n"+">>> "+(i+1)+"a. Mensalidade: "+formatarNumero.format(Vetor[i]); } // final do bloco de repetição Resultado += "\n\nRESULTADO DO CÁLCULO"+ "\n\n>>>Soma das mensalidades lidas: "+formatarNumero.format(soma); JOptionPane.showMessageDialog(null, Resultado, "Exercicio5_caixas",1); } // Final do método principal } // Final da classe Exercicio5_caixas 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 { 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++) { Resultado += "\n"+">>> 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 Resultado += "\n\nRESULTADO DO CÁLCULO"+ "\n\n>>> Idade da pessoa mais velha: "+maisVelha+ "\n>>> Média das idades lidas: "+formatarNumero.format(mediaIdade); JOptionPane.showMessageDialog(null, Resultado, "Exercicio6_caixas",1); } // Final do método principal } // Final da classe Exercicio6_caixas