Prof. Adriano Avelar Lab. de Programação Exercícios 02 – Estruturas de Controle II (Continuação) Importante: Faça as questões abaixo em um mesmo projeto no Eclipse e envie esse projeto compactado no final da aula. Quem não enviar receberá falta. Para todas as questões use o JOptionPane obter e exibir informações na tela. Exemplo de como somar dois numero fornecidos pelo usuário. public static void main(String[] args) { String numero1 = JOptionPane.showInputDialog("Forneça um numero"); String numero2 = JOptionPane.showInputDialog("Forneça outro numero"); int n1 = Integer.parseInt(numero1); int n2 = Integer.parseInt(numero2); JOptionPane.showMessageDialog(null,"A soma eh: " + (n1 + n2)); } 1. Escrever um programa que leia como entradas três números inteiros que representam dados sobre o perfil de candidatos a uma posição em uma empresa. A 1a entrada lida representa o grau de escolaridade do candidato, e pode assumir os valores 1GRADUADO, 2-ESPECIALISTA, 3-MESTRE/DOUTOR. A 2a entrada representa o seu último cargo, e pode assumir os valores 1-PROGRAMADOR, 2-ANALISTA e 3-GERENTE. A 3a entrada representa o tempo de experiência do candidato na área, e pode assumir qualquer valor maior ou igual a zero. O programa deve decidir em que cargo o candidato se enquadra (ENGENHEIRO, ARQUITETO, GESTOR) e que nível de gratificação (ESPECIALISTA, SENIOR) ele deve ter. Os critérios para tomar estas decisões são: Para ser GESTOR, o candidato deve ter sido Gerente e deve ter tido um tempo de experiência de pelo menos 10 anos e deve ser pelo menos Especialista. Para ser ARQUITETO, o candidato: o Deve ter sido Gerente e deve ter tido pelo menos 05 anos de experiência ou; o Deve ter sido Analista e deve ter tido pelo menos 08 anos de experiência ou; o Deve ter sido Programador com pelo menos 10 anos de experiência e deve ser pelo menos Especialista ou; Para ser ENGENHEIRO, o candidato: o Deve ter sido Gerente com menos de 05 anos e mais de 01 ano de experiência ou; o Deve ter sido Analista com menos de 08 e mais de 03 anos de experiência ou; o Deve ter sido Programador com menos de 10 anos de experiência e mais de 05 anos de experiência; Para ter gratificação de Especialista, o candidato deve ser pelo menos Especialista e se enquadrar em qualquer um dos cargos descritos acima. Para ter gratificação de Sênior, o candidato deve ter 10 ou mais anos de experiência, ser pelo menos Especialista e se enquadrar em qualquer um dos cargos descritos acima. Prof. Adriano Avelar Lab. de Programação As saídas do programa devem ser mensagens indicando o cargo do candidato (se ele não se enquadrar em nenhum cargo, mostrar a mensagem “NÃO SE ENQUADRA EM CARGO”) e a gratificação do candidato (se ele não tiver gratificação, mostrar a mensagem “NÃO POSSUI GRATIFICACAO”). 2. Escreva um programa que leia um número inteiro de três dígitos do teclado e que descubra se o número lido é “super cinco”, mostrando a mensagem “E SUPER CINCO” no console em caso afirmativo ou a mensagem “NÃO E SUPER CINCO” no console em caso negativo. Um número de três dígitos é super cinco quando: O seu 1o dígito é igual a cinco; E Ele próprio é divisível por 5; E A soma dos seus três dígitos resulta em um número divisível por cinco. Se o número lido não tiver três dígitos, não verificar se o mesmo é “super cinco” e mostrar a mensagem “NUMERO NÃO POSSUI TRES DIGITOS”. 3. Dado o código abaixo, quais as saídas no console quando o programa é executado e são digitados os valores 11 e 12 no teclado? int a,b; int c = 0; int d = 0; double e = 0; double f = 0; a = Integer.parseInt(JOptionPane.showInputDialog("Forneça um numero")); b = Integer.parseInt(JOptionPane.showInputDialog("Forneça outro numero")); if (a <= b) { if ((b % a) != 0) { c = a / b; } else { c = b - a; } d = (a / 10) * (b % 10); } else { c = a - b; d = (b % 10) - (a / 10); } e = Math.pow(a,2) + 2*b – Math.sqrt(b+4); f = b*b + 3*a – (b%3); System.out.println(c); System.out.println(d); System.out.println(e); System.out.println(f); 4. Dado o código abaixo, quais as saídas no console quando o programa é executado e são digitados os valores 3, 8 e 5 no teclado? int a; double b,c; double r = 0; a = Integer.parseInt(JOptionPane.showInputDialog("Forneça o 1° numero")); b = Double.parseDouble(JOptionPane.showInputDialog("Forneça o 2° numero")); c = Double.parseDouble (JOptionPane.showInputDialog("Forneça o 3° numero")); switch (a) { Prof. Adriano Avelar Lab. de Programação case 2: r = c + b; System.out.println(“PLUS”); break; case 1: r = c - b; System.out.println(“MINUS”); break; case 4: r = c * b; System.out.println(“MULTIPLY”); break; case 3: r = b / c; System.out.println(“DIVISION”); break; case 5: r = c % b; System.out.println(“MODULE”); break; default: System.out.println(“OOPS”); break; } System.out.println(r); 5. Escreva um programa que leia três números inteiros do console e imprima os mesmos em ordem decrescente. [Dica: Não é necessário usar array. ] 6. Escreva um programa em Java que leia um número inteiro de três dígitos do teclado e que descubra: Se o número lido é mágico. Imprimir no console a mensagem “É MÁGICO” caso o número lido seja mágico, e a mensagem “NÃO É MÁGICO” caso contrário. Um número é mágico quando é divisível por 5 e quando a soma dos seus dígitos é um número divisível por 5. 7. Escreva um programa que leia um número inteiro de três dígitos do teclado e que descubra: Se o número lido não tem três dígitos. Neste caso, não verificar nada descrito abaixo e mostrar a mensagem “NUMERO NÃO POSSUI TRES DIGITOS”. Se o seu segundo dígito é par. Em caso positivo, imprimir no console a mensagem “SEGUNDO DIGITO E PAR”. Caso contrário, imprimir no console a mensagem “SEGUNDO DIGITO E IMPAR”. Se a soma do seu 1º dígito com seu último digito é divisível por 9. Em caso positivo, imprimir no console a mensagem “SOMA DIVISIVEL POR NOVE”. Caso contrário, imprimir no console a mensagem “SOMA NÃO DIVISIVEL POR NOVE”. Se o produto do número lido com seu 1º dígito é par. Em caso positivo, imprimir no console a mensagem “PRODUTO E PAR”. Caso contrário, imprimir no console a mensagem “PRODUTO E IMPAR”. Prof. Adriano Avelar Lab. de Programação 8. Dado o código abaixo, quais as saídas no console quando o programa é executado e são entrados os valores 8 e 12 ? int a,b int c = 0; int d = 0; int e = 0; int f = 0; a = Scan.nextInt(); b = Scan.nextInt(); if (a <= b) { if ((a / b) == 0) { c = a + b; } else { c = b % a; } d = (a + 10) * (b - 10); } else { c = a - b; d = (b + 10) * (a / 10); } e = c*d; f = c/d; System.out.println(c); System.out.println(d); System.out.println(e); System.out.println(f); 9. Faça um programa que recebe do usuário um número de testes, e para cada teste ele: Gere 3 números aleatórios de 1 a 100, em seguida, calcule as suas médias aritmética e geométrica e que verifique o maior dos dois valores, imprimindo o mesmo na tela. Segue abaixo a formula da média geométrica. Fórmula da Média Aritmética: Fórmula da Média Geométrica: 10. Escreva um programa que, lidos do teclado três preços de três produtos, faça: O cálculo da média dos três preços, se os três valores digitados forem maiores que zero, imprimindo a mesma no console. A impressão de uma mensagem “NUMEROS INVALIDOS NO CONSOLE”, se pelo menos um dos três números for menor que zero. Neste caso, a mensagem deve ser mostrada e o programa encerrado. Verificação se um dos três números for igual a zero, o programa deve ler o mesmo do console novamente. Caso o valor lido for menor ou igual a zero, o programa deve terminar, imprimindo antes a mensagem “NUMEROS INVALIDOS NO CONSOLE PELA Prof. Adriano Avelar Lab. de Programação SEGUNDA VEZ”. No caso do valor lido ser maior que zero, este deve substituir o valor igual a zero e a média dos três números deve ser calculada e impressa no console. Verificação se mais de um número for igual a zero, o programa deve mostrar a mensagem “MAIS DE UM NUMERO IGUAL A ZERO” e encerrar o programa. 11. Escreva um programa que leia um número inteiro de dois dígitos do teclado e que descubra: Se a soma dos dois dígitos deste número é divisível por 3 e por 4. Em caso positivo, mostrar a mensagem “ACHEI” no console. Em caso negativo, mostrar a mensagem “NÃO ACHEI” no console. 12. Escreva um programa que leia um número inteiro de quatro dígitos do teclado e que descubra: Se o produto do primeiro e do último dígito deste número é par e maior que 6. Em caso positivo, mostrar a mensagem “ACHEI” no console. Em caso negativo, mostrar a mensagem “NÃO ACHEI” no console. 13. Escreva um programa que lê vários casos de testes. Para cada um ele lê um número inteiro de dois dígitos do teclado e que: Verifique se o número tem dois dígitos (tem que estar entre 10 e 99). Se sim, testar se a soma dos dois dígitos deste número é ímpar e menor que 8. Em caso positivo, mostrar a mensagem “ACHEI” no console. Em caso negativo, mostrar a mensagem “NÃO ACHEI” no console. Se o número não tiver dois dígitos, mostrar mensagem “NÃO TEM DOIS DIGITOS” no console. 14. Dado o código da questão 10, quais as saídas no console quando o programa é executado e são entrados os valores 12 e 8 ? 15. Escreva uma algoritmo em java que desenhe o seguinte padrão na tela.