Java - WordPress.com

Propaganda
Bacharelado em Ciência e Tecnologia
BC-0505 Processamento da Informação
Lista de Exercícios Nº 02
Algoritmos Computacionais – Estruturas de Seleção
Soluções de Referência em Java
ATENÇÃO- Para cada um dos exercícios abaixo, antes de escrever o algoritmo, identifique ENTRADA,
PROCESSAMENTO e SAÍDA, utilizando a seguinte técnica de interpretação de enunciado:
1.
Escreva um programa que informe ao usuário se deve ou não levar uma blusa consigo. Sabe-se que a
blusa é indicada se a temperatura em graus celsius estiver abaixo de 20 graus.
import java.util.Scanner;
public class Ex1 {
public static void main(String[] args) {
//Declaração de Variáveis
Scanner leia = new Scanner(System.in);
float temp;
//Leitura de Variáveis
System.out.print("Digite a temperatura atual: ");
temp = leia.nextFloat();
//Processamento e saída de dados
if (temp < 20) { // Verifica a temperatura e indica a mensagem ao usuário
System.out.print("\nVocê deve levar uma blusa consigo.\n");
} else {
System.out.print("\nVocê não precisa levar uma blusa consigo.\n");
}
}
}
2.
Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem informando se o
número é par ou ímpar. Exiba:


Caso verdadeiro: ―O número é par‖
Caso falso: ―O número é ímpar‖
import java.util.Scanner;
public class Ex2 {
public static void main(String[] args) {
//Declaração de variáveis
Scanner leia= new Scanner(System.in);
int n;
//Entrada
System.out.print("Digite um número inteiro: ");
n=leia.nextInt(); // Leitura de Variável
//Processamento e saída de dados
if(n%2==0){ //Verifica se o número é par ou impar.
System.out.println("O número é par ");
}
else{
System.out.println("O número é impar. ");
}
}
}
3.
Escreva um programa que solicite ao usuário uma letra e verifique se ela é uma vogal ou não exibindo
uma mensagem correspondente. Exiba:


Caso verdadeiro: ―É uma vogal‖
Caso falso: ―Não é uma vogal‖
import java.util.Scanner;
public class Ex3 {
public static void main(String[] args) {
//Declaração de variável
Scanner leia = new Scanner(System.in);
char a;
//Entrada
System.out.print("Digite uma letra: ");
a = leia.nextLine().charAt(0);
//Processamento e saída de dados
/*Verificação de se ela é ou não uma vogal. Deve considerar a possibilidade da letra escrita pelo
usuário ser maiúscula ou minúscula.*/
if (a == 'a' || a == 'e' || a == 'i' || a == 'o' || a == 'u' || a == 'A' || a == 'E' || a == 'I' || a == 'O' || a == 'U') {
System.out.print("\nÉ uma vogal.\n");
} else {
System.out.print("\nNão é uma vogal.\n");
}
}
}
4.
Escreva um programa que exiba o maior dentre dois números reais digitados pelo usuário, na forma
―numero tal‖ é maior que ―numero tal‖. Caso eles sejam iguais deve-se exibir a mensagem na forma:
numero tal‖ é igual ao ―numero tal‖
import java.util.Scanner;
public class Ex4 {
public static void main(String[] args) {
//Declaração de variáveis
Scanner leia = new Scanner(System.in);
float a, b;
//Entrada de dados
System.out.print("Digite um número real: ");
a = leia.nextFloat();
System.out.print("Digite um segundo número real: ");
b = leia.nextFloat();
//Processameno e saída de dados
/*Estrutura para verificar qual número é maior , ou se ambos são iguais.
Pode ser feito em estrutura encadeada, conforme segue:*/
if (a > b) {
System.out.print("\n" + a + " é maior que " + b + ".\n");
} else if (b > a) {
System.out.print("\n" + b + " é maior que " + a + ".\n");
} else {
System.out.print("\n" + a + " é igual a " + b + ".\n");
}
}
}
5. Escreva um programa que exiba na tela o triplo de um número inteiro informado pelo usuário. Caso o
número informado pelo usuário seja negativo, o mesmo deve ser transformado no seu equivalente
positivo antes da exibição do seu triplo.
import java.util.Scanner;
public class Ex5 {
public static void main(String[] args) {
//Declaração de variável
Scanner leia = new Scanner(System.in);
int n;
System.out.print("Digite um número inteiro: ");
//Entrada de dados
n = leia.nextInt();
//Processameno e saída de dados
/* O valor do triplo pode ser inserido diretamente na saída, sem necessidade de criar uma
variável para armazená-lo. Utilizando a seguinte estrutura.*/
if (n >= 0) { // Condicional para Verificar se o Número é Positivo ou não
System.out.print("\nO triplo do modulo do número digitado é " + 3 * n + ".\n");
} else {
System.out.print("\nO triplo do modulo do número digitado é " + (-3 * n) + ".\n");
}
}
}
6.
Escreva um programa que calcule a idade de uma pessoa a partir do seu ano de nascimento. O programa
deve mostrar na tela a idade e também as seguintes mensagens, quando for o caso:


Já pode votar (se tiver 16 anos ou mais)
Já pode solicitar a Carteira de Habilitação (se tiver 18 anos ou mais)
import java.util.Scanner;
public class Ex6 {
public static void main(String[] args) {
//Declaração de variável
/*Obs.: O ano de nascimento deve ser calculado utilizando o ano anterior e o ano atual*/
int ano_atual, ano_nasc;
Scanner entrada = new Scanner(System.in);
//Entrada de dados
System.out.print("Digite o ano atual: ");
ano_atual = entrada.nextInt();
System.out.print("Digite o ano de seu nascimento: ");
ano_nasc = entrada.nextInt();
//Processamento e saída de dados
/* Cálculo da idade -> Não é necessário criar uma variável para armazená-lo. Ele pode ser
diretamente inserido na saída.*/
System.out.print("\nA sua idade é: " + (ano_atual - ano_nasc) + " anos.\n");
/* Estrutura condicional para verificar se o usuário pode votar-> Mais uma vez, pode ser feito sem
a criação de uma variável para armazenar a idade.*/
if ((ano_atual - ano_nasc) >= 16) {
System.out.print("Já pode votar.\n");
}
/*Estrutura condicional para verificar se o usuário pode solicitar a carteira de habilitação.
Mais uma vez, pode ser feito sem a criação de uma variável para armazenar a idade.*/
if ((ano_atual - ano_nasc) >= 18) {
System.out.print("Já pode solicitar a Carteira de Habilitação.\n");
}
}
}
7.
Escreva um algoritmo que leia três números inteiros e imprima-os em ordem crescente. Efetue pelo
menos 3 testes do seu algoritmo com entradas de dados distintas. Analise os resultados do seu algoritmo.
import java.util.Scanner;
public class Ex7 {
public static void main(String[] args) {
//Declaração de variável
Scanner entrada = new Scanner(System.in);
int a, b, c, maior, medio, menor;
//Entrada de dados
System.out.println("Digite o primeiro número ");
a = entrada.nextInt();
System.out.println("Digite o segundo número ");
b = entrada.nextInt();
System.out.println("Digite o terceiro número ");
c = entrada.nextInt();
//Processamento e saída de dados
if (a < b && b < c) {
System.out.printf("A ordem é: %d %d %d \n", a, b, c);
} else if (a < c && c < b) {
System.out.printf("A ordem é: %d %d %d \n", a, c, b);
} else if (b < a && a < c) {
System.out.printf("A ordem é: %d %d %d \n", b, a, c);
} else if (b < c && c < a) {
System.out.printf("A ordem é: %d %d %d \n", b, c, a);
} else if (c < a && a < b) {
System.out.printf("A ordem é: %d %d %d \n", c, a, b);
} else {
System.out.printf("A ordem é: %d %d %d \n", c, b, a);
}
}
}
8.
Escreva um algoritmo que peça como entrada os coeficientes a, b e c de uma equação de 2.o grau e
forneça como saída as suas raízes. Lembre-se de prever os seguintes casos:
I.
a = 0 : Equação de 1.o grau, calcule a única raiz diretamente
II. Δ = 0 : Calcule a única raiz pela fórmula de Baskara
III. Δ < 0 : Calcule as 2 raízes complexas pela fórmula de Baskara
IV. Δ > 0 : Calcule as 2 raízes reais pela fórmula de Baskara
A formula de Bhaskara =
Δ = b2 – 4ac
Exemplo: a = 1 , b = -5, c = 6 raiz1 = 2 e raiz2 = 3
import java.util.Scanner;
import java.lang.Math;
public class Ex8 {
public static void main(String[] Args) {
//Declaração das variáveis
Scanner entrada = new Scanner(System.in);
float a, b, C, delta, raiz1, raiz2, parteReal;
//Entrada de dados
System.out.println("Seja ax^2+bx+c=0 uma equação de segundo grau digite o valor do coeficiente a: ");
a = entrada.nextFloat();
System.out.println("Digite o valor do coeficiente b: ");
b = entrada.nextFloat();
System.out.println("Digite o valor do coeficiente c: ");
C = entrada.nextFloat();
//Processamento e saída de dados
if (a == 0) {
raiz1 = (-C / b);
System.out.printf("A raiz única da equação é %.2f.\n", raiz1);
} else {
//Cálculo das raízes através da formula de báskhara
delta = b * b - 4 * a * C;
if (delta > 0) {
raiz1 = (float) ((-b + Math.sqrt(delta)) / (2 * a));
raiz2 = (float) ((-b - Math.sqrt(delta)) / (2 * a));
System.out.printf("As raízes da equação são %.2f e %.2f.\n", raiz1, raiz2 );
} else if (delta < 0) {
parteReal = (-b / (2 * a));
raiz1 = (float) ((Math.sqrt(-1 * delta)) / (2 * a));
System.out.printf("As raízes da equação são %.2f + %.2fi e %.2f - %.2fi.\n", parteReal, raiz1,
parteReal, raiz1);
} else { //delta == 0
raiz1 = (-b) / (2 * a);
System.out.printf("A raiz da equação é %.2f.\n", raiz1);
}
}
}
}
}
9.
Escreva um algoritmo que peça como entrada o conceito final de um aluno em uma disciplina cursada na
UFABC e imprima a mensagem correta, conforme tabela abaixo:
CONCEITO FINAL
A
B
C
D
F
O
I
SITUAÇÃO
Desempenho excepcional
Bom desempenho
Desempenho adequado
Aproveitamento mínimo
Reprovado
Reprovado por falta
Incompleto
import java.util.Scanner;
public class Ex9 {
public static void main(String[] Args) {
//Declaração das variáveis
Scanner entrada = new Scanner(System.in);
char conceito;
//Entrada de dados
System.out.println("Entre com o conceito do aluno(A, B, C, D, F, O ou I) ");
conceito = entrada.nextLine().charAt(0);
//Processamento e saída de dados
if (conceito == 'A') {
System.out.println("Desempenho excepcional");
} else if (conceito == 'B') {
System.out.println("Bom desempenho");
} else if (conceito == 'C') {
System.out.println("Desempenho adequado");
} else if (conceito == 'D') {
System.out.println("Aproveitamento Mínimo");
} else if (conceito == 'F') {
System.out.println("Reprovado");
} else if (conceito == 'O') {
System.out.println("Reprovado por falta");
} else {
System.out.println("Incompleto");
}
}
}
10. Uma livraria está fazendo uma promoção para pagamento à vista em que o comprador pode escolher
entre dois critérios de desconto:
 Critério A: R$ 0,25 por livro + R$ 7,50 fixo
 Critério B: R$ 0,50 por livro + R$ 2,50 fixo
Escreva um algoritmo em que o usuário digite a quantidade de livros que deseja comprar e programa
diga qual é a melhor opção de desconto.
import java.util.Scanner;
public class Ex10 {
public static void main(String[] Args) {
//Declaração de variáveis
Scanner entrada = new Scanner(System.in);
int livros;
float a, b;
//Entrada de dados
System.out.print("Entre com quantos livros deseja comprar: ");
livros = entrada.nextInt();
//Processamento e saída de dados
a = (float) (0.25 * livros + 7.50);
b = (float) (0.50 * livros + 2.50);
if (a > b) {
System.out.println("\nMelhor opção é a B");
System.out.println("\nMelhor opção é a A");
}
}
}
11. O imposto de renda MENSAL de uma pessoa física (IR) é calculado com base na sua renda mensal.
Escreva um algoritmo para calcular e imprimir o IR MENSAL e o IR ANUAL de uma pessoa
considerando a seguinte tabela e supondo que sua renda mensal (salário) é a mesma durante os 12 meses.
Base de cálculo mensal em R$
Alíquota %
Parcela a deduzir do imposto em R$
-
-
De 1.499,16 até 2.246,75
7,5
112,43
De 2.246,76 até 2.995,70
15,0
280,94
De 2.995,71 até 3.743,19
22,5
505,62
Acima de 3.743,19
27,5
Até 1.499,15
Exemplo de Calculo:
Se uma pessoa ganha 3500,00 por mês, com base na tabela acima, deve-se aplicar a alíquota (taxa) de 22,5%
de imposto de renda e deduzir o valor de 505.62.
Assim 3500 x 22.5 /100 = 785,50. Deduzindo-se os 505,62 o valor do imposto mensal será de 281.88. Para o
Para verificar se o seu programa está correto, efetue os dois testes que seguem:
TESTE 1:
Entrada: salário mensal = 3500.00
Saída Esperada: IR Mensal = 281.88
IR Anual = 3382.56
TESTE 2:
Entrada: salário mensal = 3500.00
Saída Esperada: IR Mensal = 281.88
IR Anual = 3382.56
import java.util.Scanner;
public class Ex11 {
public static void main(String[] Args) {
//Declaração de variáveis
double sal, iranual, irmensal;
//Entrada de dados
Scanner entrada = new Scanner(System.in);
System.out.println("Digite o salário: ");
sal = entrada.nextDouble();
//Processamento
if (sal > 3743.19) {
irmensal = ((sal * 0.275) - 692.78);
} else if (3743.19 > sal && sal >= 2995.71) {
irmensal = ((sal * 0.225) - 505.62);
} else if (sal < 2995.70 && sal >= 2246.76) {
irmensal = ((sal * 0.15) - 280.94);
} else if (sal < 2246.75 && sal >= 1499.16) {
irmensal = ((sal * 0.075) - 112.43);
} else {
irmensal = 0;
}
iranual = irmensal * 12;
//Saída de dados
System.out.println ("O imposto de renda anual é " + iranual + " e o imposto de renda mensal é " +
irmensal);
}
}
12. Escreva um programa que exiba uma mensagem indicando se um número inteiro informado pelo usuário
é positivo, negativo ou nulo, de acordo com as seguintes condições:



Caso seja maior que zero, exibir: Número ―tal‖ é positivo‖;
Caso seja menor que zero, exibir: Número ―tal‖ é negativo‖;
Caso seja igual a zero, exibir: Número ―tal‖ é nulo‖.
OBS. É OBRIGATÓRIO O USO DE SELEÇÃO ENCADEADA.
import java.util.Scanner;
public class Ex12 {
public static void main(String[] Args) {
//Declaração de variáveis
int n;
//Entrada de dados
Scanner entrada = new Scanner(System.in);
System.out.println("Digite um número inteiro: ");
n = entrada.nextInt();
//Processamento e saída de dados
if (n > 0) {
System.out.println("O número " + n + " é positivo");
} else if (n == 0) {
System.out.println("O número " + n + " é nulo");
} else {
System.out.println("O número " + n + " é negativo");
}
}
}
13. Escreva um algoritmo que peça como entrada o peso (em kilogramas) e a altura (em metros) da pessoa e
calcule e exiba o seu IMC – Índice de Massa Corpórea. Adicionalmente, o programa deve emitir as
mensagens correspondentes conforme a tabela a seguir:
Cálculo IMC
Abaixo de 18.5
Entre 18.5 e 24.9
Entre 25.0 e 29.9
Entre 30.0 e 34.9
Entre 35.0 e 39.9
40.0 e acima
Situação
Você está abaixo do peso ideal
Parabéns — você está em seu peso normal!
Você está acima de seu peso (sobrepeso)
Obesidade grau I
Obesidade grau II
Obesidade grau III
O IMC é calculado da seguinte forma: divide-se o peso (quilogramas) pela altura ao quadrado (em metros).
Exemplo1: peso = 65, altura = 1.67  IMC = 65 / (1.67 * 1.67) = 23.30
Exemplo2: peso = 85, altura = 1.60  IMC = 85 / (1.60 * 1.60) = 33.20
OBS. É OBRIGATÓRIO O USO DE SELEÇÃO ENCADEADA.
Para verificar se o seu programa está correto, efetue os dois testes que seguem:
TESTE 1:
Entrada: peso=65 altura = 1.67
Saída Esperada: IMC = 23.30 - Parabéns — você está em seu peso normal!
TESTE 2:
Entrada: peso=85 altura = 1.60
Saída Esperada: IMC = 33.20 - Obesidade grau I
import java.util.Scanner;
public class Ex13 {
public static void main(String[] Args) {
//Declaração de variáveis
float peso, altura, imc;
//Entrada de dados
Scanner entrada = new Scanner(System.in);
System.out.println("Entre com seu peso em kg: ");
peso = entrada.nextFloat();
System.out.println("Entre com sua altura em metros: ");
altura = entrada.nextFloat();
//Processamento e saída de dados
imc = peso / (altura * altura);
if (imc < 18.5) {
System.out.println("Você está abaixo do peso ideal!");
} else if (imc >= 18.5 && imc <= 24.9) {
System.out.println("Parabéns! Você está no seu peso ideal!");
} else if (imc >= 25.0 && imc <= 29.9) {
System.out.println("Você está acima do peso (sobrepeso)");
} else if (imc >= 30.0 && imc <= 34.9) {
System.out.println("Obesidade grau 1");
} else if (imc >= 35.5 && imc <= 39.9) {
System.out.println("Obesidade grau 2");
} else {
System.out.println("Obesidade grau 3");
}
}
}
Download