Olá leitores e curiosos que estão aqui a procura de uma solução. Neste artigo publicarei alguns exercícios que fiz em aula, e surpreendentemente os exercícios são em JAVA. Este post servirá também, para quebrar certas barreiras entre desenvolvedores, que a anos procuram defender qual linguagem mais usa, tentando provar que uma é melhor que outra.
EXERCÍCIO 1
=======================
Escreva um programa que leia os valores A, B, C, e diga se a soma de A + B é menor que C.
=======================
MAIN.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista11;
import java.util.Scanner;
/**
*
* @author Aline
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner scan = new Scanner(System.in);
System.out.println("Digite A: ");
int na = scan.nextInt();
System.out.println("Nr A digitado: " + na);
System.out.println("Digite B: ");
int nb = scan.nextInt();
System.out.println("Nr B digitado: " + nb);
System.out.println("Digite C: ");
int nc = scan.nextInt();
System.out.println("Nr C digitado: " + nc);
ABC calc ;
calc = new ABC(na,nb,nc);
calc.Calcular();
}
}
=======================
ABC.JAVA
=======================
/**
*
* @author Aline
*/
public class ABC {
protected int A;
protected int B;
protected int C;
public ABC(int pA, int pB, int pC){
this.A=pA;
this.B=pB;
this.C=pC;
}
public void Calcular(){
if(A+B<C){
System.out.println(“A soma de A e B é menor que C”);
}else if(A+B>C){
System.out.println(“A soma de A e B é maior que C”);
}else{
System.out.println(“A soma de A e B é igual a C”);
}
}
}
EXERCÍCIO 2
=======================
Escreva um programa que leia o nome e as três notas de uma disciplina de uma aluno e ao final escreva o nome do aluno, sua média e se ele foi aprovado (a média para aprovação é 7).
=======================
MAIN.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista12;
import java.util.Scanner;
/**
*
* @author Aline
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner scan = new Scanner(System.in);
System.out.println(“Digite o nome do aluno: “);
String nome = scan.nextLine();
System.out.println(“Nota 1: “);
int n1 = scan.nextInt();
System.out.println(“Nota 2: “);
int n2 = scan.nextInt();
System.out.println(“Nota 3: “);
int n3 = scan.nextInt();
Alunos A;
A= new Alunos(nome, n1,n2,n3);
A.TestaAluno();
}
}
=======================
ALUNOS.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista12;
/**
*
* @author Aline
*/
public class Alunos {
protected String Nome;
protected double N1;
protected double N2;
protected double N3;
public Alunos(String pNome, double pN1, double pN2, double pN3){
this.Nome=pNome;
this.N1=pN1;
this.N2=pN2;
this.N3=pN3;
}
public void TestaAluno(){
double media;
media=(N1+N2+N3)/3;
if(media>7){
System.out.println(“Aluno: “+Nome+”, com média “+media+” está aprovado!!!”);
}else{
System.out.println(“Aluno: “+Nome+”, com média “+media+” está reprovado!!!”);
}
}
}
EXERCÍCIO 3
=======================
Dados três valores distintos, escreva um programa que, após a leitura destes dados, apresenta-os em ordem crescente.
=======================
MAIN.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista13;
import java.util.Scanner;
/**
*
* @author Aline
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner scan = new Scanner(System.in);
System.out.println(“Nr 1: “);
int n1 = scan.nextInt();
System.out.println(“Nr 2: “);
int n2 = scan.nextInt();
System.out.println(“N3 3: “);
int n3 = scan.nextInt();
Ordena O;
O= new Ordena(n1,n2,n3);
O.FazOrdenacao();
}
}
=======================
ORDENA.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista13;
/**
*
* @author Aline
*/
public class Ordena {
private int n1;
private int n2;
private int n3;
public Ordena(int pn1, int pn2, int pn3){
this.n1=pn1;
this.n2=pn2;
this.n3=pn3;
}
public void FazOrdenacao(){
if(n1<n2 && n1<n3){
System.out.println(n1);
if(n2<n3){
System.out.println(n2);
System.out.println(n3);
}else{
System.out.println(n3);
System.out.println(n2);
}
}else if(n2<n1 && n2<n3){
System.out.println(n2);
if(n1<n3){
System.out.println(n1);
System.out.println(n3);
}else{
System.out.println(n3);
System.out.println(n1);
}
}else if(n3<=n1 && n3<=n2){
System.out.println(n3);
if(n1<=n2){
System.out.println(n1);
System.out.println(n2);
}else{
System.out.println(n2);
System.out.println(n1);
}
}
}
}
EXERCÍCIO 4
=======================
Escreva um programa que pede ao usuário um número que representa um determinado mês do ano. Após a leitura, o programa apresenta por extenso qual o mês lido. Caso o número digitado não esteja na faixa de 1..12, o programa apresenta uma mensagem informando o usuário do erro da digitação.
=======================
MAIN.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista14;
import java.util.Scanner;
/**
*
* @author Aline
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner scan = new Scanner(System.in);
System.out.println(“Informe o Número do mês: “);
int n1 = scan.nextInt();
InformaMes I;
I=new InformaMes(n1);
I.Mes();
}
}
=======================
INFORMAMES.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista14;
/**
*
* @author Aline
*/
public class InformaMes {
private int mes;
public InformaMes(int pmes){
this.mes=pmes;
}
public void Mes(){
switch (mes) {
case 1:
System.out.println(“Janeiro”);
break;
case 2:
System.out.println(“Fevereiro”);
break;
case 3:
System.out.println(“Março”);
break;
case 4:
System.out.println(“Abril”);
break;
case 5:
System.out.println(“Maio”);
break;
case 6:
System.out.println(“Junho”);
break;
case 7:
System.out.println(“Julho”);
break;
case 8:
System.out.println(“Agosto”);
break;
case 9:
System.out.println(“Setembro”);
break;
case 10:
System.out.println(“Outubro”);
break;
case 11:
System.out.println(“Novembro”);
break;
case 12:
System.out.println(“Dezembro”);
break;
default:
System.out.println(“Mês informado é inválido!”);
}
}
}
==============================================================
EXERCÍCIO 5
O mês em que o emplacamento do carro deve ser renovado é determinado pelo último número da placa do mesmo. Considerando este dado faça um algoritmo que, a partir da leitura da placa do carro diga o mês em que o emplacamento deve ser renovado. Obs: Leia a placa do carro em uma variável caracter.
=======================
MAIN.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista15;
import java.util.Scanner;
/**
*
* @author Aline
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner scan = new Scanner(System.in);
System.out.println(“Digite a placa do carro: “);
String placa = scan.nextLine();
Licenciamento A;
A = new Licenciamento(placa);
A.Mes();
}
}
=======================
LICENCIAMENTO.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista15;
/**
*
* @author Aline
*/
public class Licenciamento {
private String placa;
private int numero;
public Licenciamento(String pplaca){
this.placa=pplaca;
}
public void Mes(){
numero =Integer.parseInt(placa.substring(placa.length()-1,placa.length()));
switch (numero) {
case 0:
System.out.println(“até dezembro”);
break;
case 1:
System.out.println(“Abril”);
break;
case 2:
System.out.println(“até Maio”);
break;
case 3:
System.out.println(“até Junho”);
break;
case 4:
System.out.println(“até Julho”);
break;
case 5:
System.out.println(“até Agosto”);
break;
case 6:
System.out.println(“até Agosto”);
break;
case 7:
System.out.println(“até Setembro”);
break;
case 8:
System.out.println(“até Outubro”);
break;
case 9:
System.out.println(“até Novembro”);
break;
default:
System.out.println(“Placa informada é inválida!”);
}
}
}
==============================================================
==============================================================
EXERCÍCIO 6
=======================
Pressuponha i = 1, j = 2, k = 3 e m = 2. O que cada uma das seguintes instruções imprime?
a) System .out.println (i == 1); b) System .out.println (j == 3); c) System .out.println (i >= 1 && j < 4); d) System .out.println (m <= 99 & k < m ); e) System .out.println (j >= 1 ||k == m); f) System .out.println (k = m < j | 3-j >= k); g) System .out.println ( !( k>m ) );
=======================
MAIN.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista16;
/**
*
* @author Aline
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int i=1;
int j=2;
int k=3;
int m=2;
System.out.println(i==1);
System.out.println(j==3);
System.out.println(i>=1 && j<4);
System.out.println(m<=99 && k<m);
System.out.println(j>=1 || k==m);
System.out.println((k=m)<j|3-j>=k);
System.out.println(k-m<j|3-j>=k);
System.out.println(!(k>m));
}
}
==============================================================
==============================================================
EXERCÍCIO 7
=======================
Utilize uma array unidimensional para resolver o seguinte problema. Leiavinte números, cada um dos quais está entre 10 e 100 inclusive. Enquanto cada número é lido, imprima-o somente se ele não for uma duplicata de um número jálido. Previna-se para o “pior caso” em que todos os 20 números são diferentes.
=======================
MAIN.JAVA
=======================
package lista17;
/*
* @author Aline
*/
public class Main {
public static void main(String[] args) {
Vetor v=new Vetor();
v.Cadastrar();
v.Listar();
}
}
=======================
vETOR.JAVA
=======================
package lista17;
import java.util.Scanner;
/*
* @author Aline
*/
public class Vetor {
int [] vetor=new int [20];
protected void Cadastrar(){
Scanner scan=new Scanner(System.in);
int n;
for(int i=0; i<20; i++){
System.out.println(“Digite um número entre 10 e 100: “);
n=scan.nextInt();
if(n<10|n>100){
System.out.println(“Número inválido.”);
i–;
}else vetor[i]=n;
}
System.out.println(“Acabou.”);
}
protected void Listar(){
int cont=0;
System.out.println(“Os números contidos no vetor são: “);
for(int i=0; i<20; i++){
int n=vetor[i];
for(int j=0; j<i; j++){
if(vetor[j]==n){
cont=1;
break;
}else{
cont=0;
}
}
if(cont==0){
System.out.println(n);
}
}
}
}
==============================================================
==============================================================
EXERCÍCIO 8
=======================
Faça um programa para calcular o valor das seguintes expressões:
=======================
MAIN.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista18;
/**
*
* @author Aline
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
double result =0.0;
for(int i=1, j=1;i<100;i+=2, j++){
result=result+(double)i/j;
}
System.out.println(“Exercício A: “+result);
double result2 = 0.0;
for(int i=1, j=1;i<100;i+=2, j++){
if(j%2==0){
result2=result2-(double)i/j;
}else{
result2=result2+(double)i/j;
}
}
System.out.println(“Exercício B: “+result2);
}
}
EXERCÍCIO 9
=======================
Faça um programa para calcular o Máximo Divisor Comum entre 2 números passados como argumentos para a execução do programa. Observe as seguintes propriedades do MDC:
a. MDC(x, y) = MDC(x − y, y), se x > y;
b. MDC(x, y) = MDC(y, x);
c. MDC(x, x) = x.
Exemplo: MDC(3,5)=MDC(5,3)=MDC(2,3)=MDC(3,2)=MDC(1,2)=MDC(2,1)=MDC(1,1)=1
=======================
MAIN.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista19;
import java.util.Scanner;
/**
*
* @author Aline
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner in = new Scanner(System.in);
System.out.print(
“Este programa permite calcular o MDC\n”);
System.out.print(“Informe o primeiro número: “);
int x = in.nextInt();
System.out.print(“Informe o segundo número: “);
int y = in.nextInt();
MDC a;
a= new MDC();
System.out.println(“\nO Máximo Divisor Comum de “ + x + ” e ” + y + ” é ” + a.Calcular(x,y));
}
}
=======================
MDC.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista19;
/**
*
* @author Aline
*/
public class MDC {
public int Calcular(int x, int y){
if(x == y){
return x;
}
if (x > y){
return Calcular((x-y), y);
}else{
return Calcular((y-x), x);
}
}
}
EXERCÍCIO 10
=======================
Crie uma classe para representar uma conta-corrente, com métodos para depositar uma quantia, sacar uma quantia e obter o saldo. Para cada saque será debitada também uma taxa de operação equivalente à 0,5% do valor sacado. Crie,em seguida,uma subclasse desta classe anterior para representar uma conta-corrente de um cliente especial. Clientes especiais pagam taxas de operação de apenas 0,1% do valor sacado. Faça testes com as duas classes e verifique seus resultados.
=======================
MAIN.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista10;
import java.util.Scanner;
/**
*
* @author Aline
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner scan = new Scanner(System.in);
System.out.println(“1 – Cliente Especial”);
System.out.println(“2 – Cliente Normal”);
int r = scan.nextInt();
Conta c;
if( r==1 ){
c = new ContaEspecial(0);
}else if( r==2 ){
c = new Conta(0);
}else{
System.out.println(“Opção inválida!”);
return;
}
while (true){
System.out.println(“1 – Sacar”);
System.out.println(“2 – Depositar”);
System.out.println(“3 – Ver o Saldo”);
System.out.println(“4 – Sair”);
int na = scan.nextInt();
double val=0;
switch (na){
case 1:
val=0;
System.out.println(“Digite o Valor: “);
val = scan.nextDouble();
c.Sacar(val);
break;
case 2:
val=0;
System.out.println(“Digite o Valor: “);
val = scan.nextDouble();
c.Depositar(val);
break;
case 3:
System.out.println(“Saldo:”+c.Saldo());
break;
case 4:
return;
default:
System.out.println(“Opção Inválida!!”);
}
}
}
}
=======================
CONTA.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista10;
/**
*
* @author Aline
*/
public class Conta {
protected double saldo;
public Conta(double pSaldo){
saldo=pSaldo;
}
public void Sacar(double pValor){
saldo=saldo-(pValor + pValor*0.05);
}
public void Depositar(double pValor){
saldo=saldo+pValor;
}
public double Saldo(){
return saldo;
}
}
=======================
CONTAESPECIAL.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista10;
/**
*
* @author Aline
*/
public class ContaEspecial extends Conta {
public ContaEspecial(double pValor){
super(pValor);
}
@Override
public void Sacar(double pValor){
saldo=saldo-(pValor + pValor*0.01);
}
}
EXERCÍCIO 11
=======================
Crie uma classe que representa um ponto no plano cartesiano.Em seguida,crie uma classe que representa um triângulo, reusando a classe anterior por composição.
=======================
MAIN.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista113;
import java.util.Scanner;
/**
*
* @author Aline
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner scan = new Scanner(System.in);
System.out.println(“Ponto 1: “);
int n1 = scan.nextInt();
System.out.println(“Ponto 2: “);
int n2 = scan.nextInt();
System.out.println(“Ponto 3: “);
int n3 = scan.nextInt();
Triangulo t;
t=new Triangulo(n1,n2,n3);
}
}
=======================
TRIANGULO.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista111;
/**
*
* @author Aline
*/
public class Triangulo {
protected Ponto a;
protected Ponto b;
protected Ponto c;
public Triangulo(Ponto pa, Ponto pb, Ponto pc){
a = new Ponto(pa.x, pa.y);
b = new Ponto(pb.x, pb.y);
c = new Ponto(pc.x, pc.y);
}
}
=======================
PONTO.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista111;
/**
*
* @author Aline
*/
public class Ponto {
protected int x;
protected int y;
public Ponto (int px, int py){
this.x=px;
this.y=py;
}
}
EXERCÍCIO 12
=======================
Crie uma classe que representa um funcionário, registrando seu nome, salário e data de admissão. Em seguida, crie uma classe que represente um departamento de uma empresa, registrando o nome e os funcionários que nele trabalham (para uso de vetores, considere um máximo de 100 funcionários). Por fim,crie uma classe que representa uma empresa,registrando seu nome,CNPJ e departamentos (considere um máximo de 10 departamentos). Faça um programa que:
a.Crie uma empresa;
b. Adicione a esta empresa alguns departamentos;
c. Adicione aos departamentos alguns funcionários;
d. Dê aumento de 10% a todos os funcionários de um determinado departamento;
e. Transfira um funcionário de um departamento para outro.
É esperado que seu código seja bem encapsulado. Por exemplo, para adicionar um departamento em uma empresa(ou um funcionário a um departamento),não se deve acessar o vetor (ou lista)de departamentos diretamente,mas sim ter um método na classe que representa a empresa para adicionar um departamento.
=======================
MAIN.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista112;
import java.util.Scanner;
/**
*
* @author Aline
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Empresa e;
e = new Empresa(“Sino Informática”, “48484848″);
e.AdicionaDepto(“Teste”);
e.Depto[0].AdicionarFunc(“Aline”,150.0,”30/02/2000″);
e.Depto[0].AdicionarFunc(“Marquinho”,200.0, “19/02/2001″);
System.out.println(“Empresa: “+ e.Nome +” CNPJ: “+ e.CNPJ);
e.ListaDepto();
e.Depto[0].AjusteSalarial(10);
e.ListaDepto();
}
}
=======================
FUNCIONARIO.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista112;
/**
*
* @author Aline
*/
public class Funcionario {
protected String Nome;
protected double Salario;
protected String Data;
public Funcionario(String pNome, double pSalario, String pData){
this.Nome=pNome;
this.Salario=pSalario;
this.Data=pData;
}
public void Reajuste(int pPorc) {
Salario=Salario+(Salario*pPorc/100);
}
}
=======================
EMPRESA.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista112;
/**
*
* @author Aline
*/
public class Empresa {
protected String Nome;
protected String CNPJ;
protected Departamento Depto[];
private int QtdDepto=0;
public Empresa (String pNome, String pCNPJ){
this.Nome = pNome;
this.CNPJ = pCNPJ;
this.Depto = new Departamento[10];
}
public void AdicionaDepto(String pNome){
Depto[QtdDepto]=new Departamento(pNome);
QtdDepto++;
}
public void ListaDepto(){
for(int i=0; i<QtdDepto; i++){
System.out.println(“Nome do departamento: “+ Depto[i].Nome);
Depto[i].ListaFunc();
}
}
}
=======================
DEPARTAMENTO.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista112;
/**
*
* @author Aline
*/
public class Departamento {
protected String Nome;
protected Funcionario Func[];
private int QtdeFunc = 0;
public Departamento (String pNome){
this.Nome=pNome;
this.Func=new Funcionario[100];
}
public void AdicionarFunc(String pNome, double pSalario, String pData) {
Func[QtdeFunc] = new Funcionario(pNome, pSalario, pData);
QtdeFunc++;
}
public void AjusteSalarial(int pPorc){
for(int i=0;i<QtdeFunc;i++){
Func[i].Reajuste(pPorc);
}
}
public void ListaFunc(){
for(int i=0;i<QtdeFunc;i++){
System.out.println(“\nFuncionario: ” + Func[i].Nome);
System.out.println(“Data de admissão:”+ Func[i].Data);
System.out.println(“Salario:”+ Func[i].Salario);
}
}
}
EXERCÍCIO 13
=======================
Dado o trecho de código abaixo:
int[] vetor = new int[] { 2, 4, 6, 8, 10, 12 };
for (int i = 0; i <= 12; i++) {
System.out.println(vetor[i]);
}
Implemente um programa em Java que execute este trecho.Execute o programa e veja a exceção produzida por acesso a posição fora dos limites do vetor. Trate esta exceção, imprimindo na tela uma mensagem dizendo que o vetor acabou
=======================
MAIN.JAVA
=======================
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lista113;
/**
*
* @author Aline
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int[] vetor = new int[]{2,4,6,8,10,12};
try{
for(int i=0; i<=12; i++){
System.out.println(vetor[i]);
}
}catch(Exception e){
System.out.println(“\nVetor chegou ao fim!!!”);
}
}
}
Espero que tenha ajudado a resolver problemas iguais ou parecidos com estes.
Obrigada pela visita e volte sempre
Aline Bossi



