Java - WordPress.com

Propaganda
Bacharelado em Ciência e Tecnologia
BC-0505 Processamento da Informação
Lista de Exercícios Nº 01
Algoritmos – Estruturas Sequenciais
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.
Leia um número inteiro e escreva seu sucessor e antecessor.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
Sucessor e antecessor de um número inteiro.

ENTRADA: Quais os insumos necessários para se obter a saída?
Um número inteiro (Z).

PROCESSAMENTO: Como transformar os insumos na saída?
Sucessor=Z+1
Antecessor=Z-1

PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio1{
public static void main(String[] args) {
//DECLARAÇÃO DE VARIÁVEIS;
int Z;
Scanner scan = new Scanner(System.in);
//ENTRADA;
System.out.println("Digite um numero inteiro");
Z = scan.nextInt();
//PROCESSAMENTO E SAIDA;
System.out.println("Sucessor: "+(Z+1));
System.out.println("Antecessor: "+(Z-1));
}
2.
Leia dois números e escreva o dividendo, divisor, quociente e resto.
 SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
O dividendo, divisor, quociente e resto entre dois números.
 ENTRADA: Quais os insumos necessários para se obter a saída?
Dois números (n1 e n2).
 PROCESSAMENTO: Como transformar os insumos na saída?
Dividendo = n1
Divisor = n2
Quociente = n1/n2
Resto = n1 – (n2*Quociente)
 PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio2{
public static void main(String[] args) {
// DECLARACAO DE VARIÁVEIS;
int n1, n2, divid, divis, quoc, resto;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Digite um número: ");
n1 = scan.nextInt();
System.out.println("Digite outro número: ");
n2 = scan.nextInt();
// PROCESSAMENTO;
divid = n1;
divis = n2;
quoc = (n1/n2);
resto = n1%n2;
// SAIDA;
System.out.println ("O dividendo da divisão de "+ n1 +" por "+ n2 +" é " + divid);
System.out.println ("O divisor da divisão de "+ n1 +" por "+ n2 +" é " + divis);
System.out.println ("O quociente da divisão de "+ n1 +" por "+ n2 +" é "+ quoc);
System.out.println ("O resto da divisão de "+ n1 +" por "+ n2 +" é "+ resto);
}
3.
Calcule a dívida do cheque especial ao ser quitada 6 meses depois a uma taxa de 5% de juros. O valor
do empréstimo deve ser informado.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
O valor da dívida do cheque especial a ser quitada.

ENTRADA: Quais os insumos necessários para se obter a saída?
O valor do empréstimo (N).

PROCESSAMENTO: Como transformar os insumos na saída?
Fórmula de juros compostos: D=N(1+0.05)^6

PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio3{
public static void main(String[] args) {
//DECLARAÇÃO DE VARIÁVEIS;
double N, D;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Valor do empréstimo: ");
N = scan.nextDouble();
// PROCESSAMENTO (Formula de Juros Compostos);
D=N*(Math.pow((1+0.05),6));
// SAIDA;
System.out.printf("Valor da dívida: %.2f\n", D);
}
4.
Dada a base e a altura de um retângulo, calcule o perímetro, a área e a diagonal.
 SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
O perímetro, a área e a diagonal do retângulo.
 ENTRADA: Quais os insumos necessários para se obter a saída?
Base e altura de um retângulo
 PROCESSAMENTO: Como transformar os insumos na saída?
Perímetro = (2*altura) + (2*base)
Área = altura*base
Diagonal = sqrt((base*base) + (altura*altura))
 PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio4{
public static void main(String[] args) {
// DECLARAÇÃO DE VARIÁVEIS;
double base, alt, per, area, diag;
Scanner scan = new Scanner (System.in);
// ENTRADA;
System.out.print("Informe o valor da base do retângulo: ");
base = scan.nextDouble();
System.out.print("Informe o valor da altura do retângulo: ");
alt = scan.nextDouble();
// PROCESSAMENTO;
per = (2*alt) + (2*base); // Calculando o perímetro
area = alt*base; //Calculando a área
diag = Math.sqrt((base*base) + (alt*alt)); //Calculando a diagonal
// SAIDA;
System.out.println("O perímetro do retângulo é "+ per);
System.out.println("A área do retângulo é "+ area);
System.out.println("A diagonal do retângulo é "+ diag);
}
5.
Dada o lado de um quadrado, calcule o perímetro, a área e a diagonal.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
O perímetro, a área e a diagonal de um quadrado.

ENTRADA: Quais os insumos necessários para se obter a saída?
O lado (L) do quadrado.

PROCESSAMENTO: Como transformar os insumos na saída?
Perímetro= Lx4
Área= L^2
Diagonal= sqrt(2)xL

PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio5{
public static void main(String[] args) {
//DECLARAÇÃO DE VARIÁVEIS;
double L, P, A, D;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Lado do quadrado: ");
L = scan.nextDouble();
// PROCESSAMENTO;
P=L*4; //Calcula o perímetro
A=L*L; //Calcula a área
D=L*(Math.sqrt(2)); //Calcula a diagonal
// SAIDA;
System.out.println("O perímetro do quadrado é: " + P);
System.out.println("A área do quadrado é: " + A);
System.out.println("A diagonal do quadrado é: " + D);
}
6.
Dado o raio de um círculo, calcule o perímetro e a área.
 SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
O perímetro e a área de um círculo.
 ENTRADA: Quais os insumos necessários para se obter a saída?
Raio de um círculo (R).
 PROCESSAMENTO: Como transformar os insumos na saída?
Perímetro = (2*π*R)
Área = (π*R*R)
 PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio6{
public static void main(String[] args) {
// DECLARAÇÃO DE VARIÁVEIS;
double R, area, per;
Scanner scan = new Scanner (System.in);
// ENTRADA;
System.out.println("Informe o raio do círculo: ");
R = scan.nextDouble();
// PROCESSAMENTO;
per = (2*Math.PI*R); //Calcula perímetro
area = Math.PI*(R*R); //Calcula área
// SAIDA;
System.out.println("O perímetro do circulo é "+per);
System.out.println("A área do circulo é "+area);
}
7.
Dados os três lados de um paralelepípedo, calcule o perímetro, a área, o volume e a diagonal.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
Perímetro, área, volume e diagonal de um paralelepípedo.

ENTRADA: Quais os insumos necessários para se obter a saída?
Os três lados de um paralelepípedo (A, B, C).

PROCESSAMENTO: Como transformar os insumos na saída?
Perímetro= 4*(A+B+C)
Área= 2(AB+BC+CA)
Volume= A*B*C
Diagonal= sqrt(A^2+B^2+C^2)

PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio7{
public static void main(String[] args) {
//DECLARAÇÃO DE VARIÁVEIS;
double A, B, C, P, Ar, V, D;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Digite os 3 lados do paralelepípedo: ");
A = scan.nextDouble();
B = scan.nextDouble();
C = scan.nextDouble();
// PROCESSAMENTO;
P=4*(A+B+C);
Ar=2*(A*B+B*C+C*A);
V=A*B*C;
D=Math.sqrt(A*A+B*B+C*C);
// SAIDA;
System.out.printf("Perímetro: %.2f\n", P);
System.out.printf("Área: %.2f\n", Ar);
System.out.printf("Volume: %.2f\n", V);
System.out.printf("Diagonal: %.2f\n", D);
}
8.
Dados dois catetos de um triangulo retângulo, calcule a hipotenusa.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
A hipotenusa de um triângulo retângulo.

ENTRADA: Quais os insumos necessários para se obter a saída?
Dois catetos do triângulo retângulo (cat1, cat2).

PROCESSAMENTO: Como transformar os insumos na saída?
Hipotenusa = sqrt ((cat1*cat1) + (cat2*cat2))

PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio8{
public static void main(String[] args) {
//DECLARAÇÃO DE VARIÁVEIS;
double cat1, cat2, hip;
Scanner scan = new Scanner (System.in);
// ENTRADA;
System.out.println("Informe o valor de um cateto do triangulo retângulo: ");
cat1 = scan.nextDouble();
System.out.println("Informe o valor do outro cateto do triangulo retângulo: ");
cat2 = scan.nextDouble();
// PROCESSAMENTO;
hip = Math.sqrt((cat1*cat1) + (cat2*cat2));
// SAIDA;
System.out.println("O valor da hipotenusa do triangulo retângulo é "+hip);
}
9.
Dada a razão de uma PA e seu primeiro termo, calcular o 20º termo.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
O 20º termo de uma PA.

ENTRADA: Quais os insumos necessários para se obter a saída?
A razão e o primeiro termo de uma PA.

PROCESSAMENTO: Como transformar os insumos na saída?
Fórmula do termo geral de uma PA: An=A1+(n-1)*r, onde n=20.

PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio9{
public static void main(String[] args) {
// DECLARAÇÃO DE VARIÁVEIS;
int A1, r, An;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Digite o primeiro termo e a razão de uma PA, respectivamente: ");
A1 = scan.nextInt();
r = scan.nextInt();
// PROCESSAMENTO;
An=A1+ ((20-1)*r);
// SAIDA;
System.out.println("O 20º termo dessa PA é: "+ An);
}
10.
Dada a razão de uma PG e seu primeiro termo, calcular o 20º termo.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
O 20º termo de uma PG.

ENTRADA: Quais os insumos necessários para se obter a saída?
A razão (q) e o primeiro termo (A1) de uma PG.

PROCESSAMENTO: Como transformar os insumos na saída?
Fórmula do termo geral de uma Pg: An=A1*(q^(n-1)), onde n=20.

PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio10{
public static void main(String[] args) {
// DECLARAÇÃO DE VARIÁVEIS;
int A1, q;
double An;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Digite o primeiro termo e a razão de uma PG, respectivamente: ");
A1 = scan.nextInt();
q = scan.nextInt();
// PROCESSAMENTO;
An=A1*Math.pow(q, 19);
// SAIDA;
System.out.println("O 20º termo dessa PG é: " + An);
}
11.
Dado um horário, calcule quantos minutos e segundos transcorreram desde o início do dia.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
Minutos (M) e segundos (S) transcorridos.

ENTRADA: Quais os insumos necessários para se obter a saída?
Um horário – horas, minutos e segundos(h, m, s).

PROCESSAMENTO: Como transformar os insumos na saída?
S=(3600*h)+(60*m)+s
M=S/60

PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio11{
public static void main(String[] args) {
// DECLARAÇÃO DE VARIÁVEIS;
int h, m, s;
double M, S;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Digite um horário - horas, minutos e segundos, respectivamente: ");
h = scan.nextInt();
m = scan.nextInt();
s = scan.nextInt();
// PROCESSAMENTO;
S=(3600*h)+(60*m)+s;
M=S/60;
// SAIDA;
System.out.printf("Minutos transcorridos: %.2f\n", M);
System.out.printf("Segundos transcorridos: %.2f\n", S);
}
12.
Dado o valor do salário-mínimo e um determinado salário, calcule quantos salários-mínimos estão
contidos nele.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
Quantidade de salários-mínimos que estão contidos em um determinado salário.

ENTRADA: Quais os insumos necessários para se obter a saída?
Valor do salário-mínimo (salariomin) e de um determinado salário (salario).

PROCESSAMENTO: Como transformar os insumos na saída?
Quant = salario/salariomin

PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio12{
public static void main(String[] args) {
// DECLARAÇÃO DE VARIÁVEIS;
double salariomin, salario, quant;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Informe o valor do salario mínimo: ");
salariomin = scan.nextDouble();
System.out.println("Informe o valor de um salário: ");
salario = scan.nextDouble();
// PROCESSAMENTO;
quant = salario/salariomin;
// SAIDA;
System.out.printf("Estão contidos %.2f salários mínimos no salário.\n", quant);
}
13.
Escreva um algoritmo para mostrar a média final de um aluno a partir de 4 notas. Para o calculo da
media final, deve-se utilizar média ponderada, aplicando-se a seguinte fórmula:
M = ((p1 x 30) + (p2 x 40) + (t1 x 10) + (t2 x 20)) / 100
Legenda:

p1: primeira prova (peso de 30%) / p2: segunda prova (peso de 40%)
t1: primeiro trabalho (peso de 10%) / t2: segundo trabalho (peso de 20%)
SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
A média (M).

ENTRADA: Quais os insumos necessários para se obter a saída?
P1, P2, T1, T2

PROCESSAMENTO: Como transformar os insumos na saída?
Aplicar a fórmula: M = ( ( p1 x 30) + (p2 x 40) + (t1 x 10) + (t2 x 20) ) / 100

PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio13{
public static void main(String[] args) {
// DECLARAÇÃO DE VARIÁVEIS;
double P1, P2, T1, T2, M;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Digite as notas da Prova1, Prova2, Trabalho1 e Trabalho2, respectivamente: ");
P1 = scan.nextDouble();
P2 = scan.nextDouble();
T1 = scan.nextDouble();
T2 = scan.nextDouble();
// PROCESSAMENTO;
M = ((P1 * 30) + (P2 * 40) + (T1 * 10) + (T2 * 20)) / 100;
// SAIDA;
System.out.printf("Média: %.2f\n", M);
}
14.
Escreva um algoritmo para calcular a quantidade de latas de tintas necessárias para pintar o piso de um
quintal que possui uma área retangular. Deve-se calcular também o custo total para comprar as latas de
tintas necessárias.
Sabe-se que:
 Cada lata de tinta contém 5 litros
 Cada litro de tinta pinta 3 metros quadrados
 A área de um retângulo é dada por: base X altura
 SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
Quantidade de latas de tintas necessárias e o custo total para compra das latas de tintas necessárias.
 ENTRADA: Quais os insumos necessários para se obter a saída?
Base (base), altura (alt) da área retangular e o custo unitário da lata de tinta.
 PROCESSAMENTO: Como transformar os insumos na saída?
Aplicar a fórmula: latas = (base*alt)/15
 PROGRAMA - JAVA
import java.util.Scanner;
import java.lang.Math;
public class LISTAEx14 {
public static void main(String[] args) {
// DECLARAÇÃO DE VARIÁVEIS;
double base, alt, x, precounit, custototal;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Informe o valor da base da área retangular: ");
base = scan.nextDouble();
System.out.println("Informe o valor da altura da área retangular: ");
alt = scan.nextDouble();
System.out.println("Informe o valor o custo de compra de 1 (uma) lata de tinta em reais: ");
precounit = scan.nextDouble();
// PROCESSAMENTO;
x = ((base*alt)/(15.0));
custototal = x*precounit;
// SAIDA;
System.out.println("São necessárias "+ Math.round(x) +" lata(s) de tinta para pintar o piso");
System.out.println("O custo total para comprar "+Math.round(x)+" lata(s) eh de "+custototal+ "
reais");
}
}
Observação: Na saída de dados foi utilizado a função Math.round() para arredondar para cima o número
de latas, já que o número de latas deve ser um número inteiro.
15.
Construa um algoritmo que, tendo como dados de entrada dois pontos quaisquer do plano, P(x1,y1) e
Q(x2,y2), imprima a distância entre eles. A fórmula que efetua tal cálculo é
d  ( x2  x1 ) 2  ( y 2  y1 ) 2 .

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
Distância (d) entre os pontos P e Q.

ENTRADA: Quais os insumos necessários para se obter a saída?
Um ponto P(x1,y1) e um ponto Q(x2,y2).

PROCESSAMENTO: Como transformar os insumos na saída?
Aplicar a fórmula: d=sqrt((x2-x1)^2+(y2-y1)^2)

PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio15{
public static void main(String[] args) {
// DECLARAÇÃO DE VARIÁVEIS;
double d;
int x1, y1, x2, y2;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Determine o ponto P(x1,y1)- digite x1 e y1, respectivamente: ");
x1 = scan.nextInt();
y1 = scan.nextInt();
System.out.println("Determine o ponto Q(x2,y2)- digite x2 e y2, respectivamente: ");
x2 = scan.nextInt();
y2 = scan.nextInt();
// PROCESSAMENTO;
d=Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
// SAIDA;
System.out.printf("Distância entre P e Q: %.2f\n", d);
}
16.
Um motorista anota a marcação do odometro do seu veículo antes e após uma viagem, bem como o
número de litros de combustível gastos. Escreva um algoritmo para ler os três dados acima, o preço do
litro do combustível e imprima:
o A quilometragem rodada
o Quantos quilômetros, por litro, faz o veículo
o O custo da viagem
 SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
Quilometragem rodada, quantos quilômetros por litro o veículo faz e o custo da viagem.
 ENTRADA: Quais os insumos necessários para se obter a saída?
Marcação do odômetro antes da viagem (iniciood), marcação do odômetro após a viagem (fimod), o
número de litros de combustível gastos (litrogasto) e o preço do litro do combustível (precolitro)
 PROCESSAMENTO: Como transformar os insumos na saída?
Quilometragem rodada = fimod – iniciood
Quilometros por litro = (fimod – iniciood) / (litrogasto)
Custo da viagem = precolitro * litrogasto
 PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio16{
public static void main(String[] args) {
// DECLARAÇÃO DE VARIÁVEIS;
double iniciood, fimod, litrogasto, precolitro, quilometrodado, quilometporlitro, custoviagem;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Informe a marcação o odômetro antes da viagem: ");
iniciood = scan.nextDouble();
System.out.println("Informe a marcação o odômetro após a viagem: ");
fimod = scan.nextDouble();
System.out.println("Informe o numero de litros de combustível gastos na viagem: ");
litrogasto = scan.nextDouble();
System.out.println("Informe o preço do litro do combustível: ");
precolitro = scan.nextDouble();
// PROCESSAMENTO;
quilometrodado = fimod - iniciood;
quilometporlitro = (fimod - iniciood) / (litrogasto);
custoviagem = precolitro*litrogasto;
// SAIDA;
System.out.println("A quilometragem rodada é " + quilometrodado + " km.");
System.out.println("O veiculo faz " + quilometporlitro + " km por litro.");
System.out.println("O custo da viagem foi de "+ custoviagem + " reais.");
}
17.
O custo ao consumidor de um carro novo é a soma do custo de fábrica, acrescido da porcentagem do
distribuidor, mais os impostos (aplicados ao custo de fábrica). Supondo que a percentagem do
distribuidor seja de 28% e os impostos de 45%, escrever um algoritmo que leia o custo de fábrica de um
carro e escreva o custo do consumidor.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
O custo do consumidor de um carro novo (Cc).

ENTRADA: Quais os insumos necessários para se obter a saída?
O custo de fábrica de um carro novo (Cf).

PROCESSAMENTO: Como transformar os insumos na saída?
Calcular o custo do consumidor a partir do custo de fábrica, a porcentagem do distribuidor e os impostos:
Cc=Cf+(Cf*0.28)+(Cf*0.45)

PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio17{
public static void main(String[] args) {
// DECLARACAO DE VARIAVEIS;
double Cf, Cc;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Custo de fábrica: ");
Cf = scan.nextDouble();
// PROCESSAMENTO;
Cc=Cf+(Cf*0.28)+(Cf*0.45);
// SAIDA;
System.out.println("O custo do consumidor é: " + Cc);
}
18.
Uma revendedora de carros usados paga seus funcionários vendedores um salário fixo por mês, mais
uma comissão, também fixa, por cada carro vendido, e mais 5% do valor das vendas por ele efetuadas.
Escrever um algoritmo e um fluxograma para ler o número do vendedor, o número de carros por ele
vendido, o valor total de suas vendas, o salário fixo e o valor que recebe por carro vendido. Ao final, o
algoritmo deve calcular o salário mensal do vendedor, escrevendo-o juntamente com o seu número de
identificação.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?
Salário mensal do vendedor e o seu número de identificação.

ENTRADA: Quais os insumos necessários para se obter a saída?
Número do vendedor (id), número de carros por ele vendido (carrosvendidos), o valor total de suas
vendas (valorvendas), o salário fixo (salariofixo) e o valor que recebe por carro vendido (valorporcarro).

PROCESSAMENTO: Como transformar os insumos na saída?
Salário = salariofixo + (valorporcarro*carrosvendidos) + (0.05*valorvendas)
Identificação do funcionário: id

PROGRAMA - JAVA
import java.util.Scanner;
public class Exercicio18{
public static void main(String[] args) {
// DECLARAÇÃO DE VARIÁVEIS;
double salariofixo, valorporcarro, valorvendas, salariofinal;
int id, carrosvendidos;
Scanner scan = new Scanner(System.in);
// ENTRADA;
System.out.println("Informe o número do vendedor: ");
id = scan.nextInt();
System.out.println("Informe o salário fixo por mês: ");
salariofixo = scan.nextDouble();
System.out.println("Informe o número de carros vendidos pelo vendedor: ");
carrosvendidos = scan.nextInt();
System.out.println("Informe o valor que recebe por cada carro vendido: ");
valorporcarro = scan.nextDouble();
System.out.println("Informe o valor total de vendas do vendedor: ");
valorvendas = scan.nextDouble();
// PROCESSAMENTO;
salariofinal = salariofixo + (valorporcarro*carrosvendidos) + (0.05*valorvendas);
// SAIDA;
System.out.println("Número de identificação: "+id);
System.out.println("O salário mensal do vendedor é de "+ salariofinal+ " reais");
}
Download