Página 59 e 60:
Exercício 1: Faça uma classe executável que dada uma string, informe:
a) Quantos espaços em branco existem
b) A quantidade de vogais que aparecem e qual o percentual em relação aos caracteres digitados.
- package visao;
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- /**
- *
- * @author Paulo Henrique Cayres
- */
- import javax.swing.JOptionPane;
- public class Exercicio01 {
- public static void main(String args[]){
- String frase = JOptionPane.showInputDialog("Digite uma frase: ");
- int totEspacos=0;
- int totVogais=0;
- for (int i=0; i < frase.length(); i++){
- if(Character.isSpaceChar(frase.charAt(i)))
- totEspacos++;
- if (Character.toUpperCase(frase.charAt(i)) == 'A'||
- Character.toUpperCase(frase.charAt(i)) == 'E'||
- Character.toUpperCase(frase.charAt(i)) == 'I'||
- Character.toUpperCase(frase.charAt(i)) == 'O'||
- Character.toUpperCase(frase.charAt(i)) == 'U' )
- totVogais++;
- }
- System.out.println("Total de espaços em branco: "+totEspacos);
- System.out.println("Total de vogais: "+totVogais);
- System.out.println("Percentuais de vegais: "+ ((totVogais*100)/frase.length())+"%");
- }
- }
OU
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package visao;
- import javax.swing.JOptionPane;
- /**
- *
- * @author Aluno
- */
- public class Exercicio01_v2 {
- public static void main(String args[]){
- String frase = JOptionPane.showInputDialog("Digite uma frase: ").toUpperCase();
- // expressão regular
- // ^ - agrupador de exceção
- int totEspacos = frase.replaceAll("[^ ]","").length();
- int totVogais =frase.replaceAll("[^A]","").length();
- totVogais += frase.replaceAll("[^E]","").length();
- totVogais += frase.replaceAll("[^I]","").length();
- totVogais += frase.replaceAll("[^O]","").length();
- totVogais += frase.replaceAll("[^U]","").length();
- System.out.println("Total de espaços em branco: "+totEspacos);
- System.out.println("Total de vogais: "+totVogais);
- System.out.println("Percentuais de vegais: "+ ((totVogais*100)/frase.length())+"%");
- }
- }
Exercício 2: faça uma classe executável que dada uma string, construa outra string substituindo a letra S por $, E por 3, A por 4, G por 6, B por 8, O por *, U por #.
- package visao;
- /*
- 2) Faça uma classe executável que dada uma string, construa outra string
- substituindo a letra S por $, E por 3, A por 4, G por 6, B por 8, O por * e U por #.
- */
- /**
- *
- * @author Paulo Henrique Cayres
- */
- public class Exercicio02 {
- public static void main(String[] args) {
- String x = "SEAGBEOUE";
- System.out.println( "Original: " + x ) ;
- x = x.replace("S","$");
- x = x.replace("E","3");
- x = x.replace("A","4");
- x = x.replace("G","6");
- x = x.replace("B","8");
- x = x.replace("O","*");
- x = x.replace("U","#");
- System.out.println( "Resultado: " + x ) ;
- }
- }
Exercício 3: faça uma classe executável que verifique se uma cadeia de caracteres é um palíndromo. Uma cadeia de caracteres é um palíndromo se a inversão da ordem de seus caracteres resulta na mesma cadeia. Suponha que todas as letras da cadeia estejam em letras minúsculas. Exemplos: ovo, 1991, amor me ama em roma.
Atenção: Em alguns casos é necessário desconsiderar caracteres de pontuação, acentuação e espaço e, ainda, maiúscula de minúscula, para verificar se uma cadeia é um palíndromo. Exemplo:"Socorram-me, subi no ônibus em Marrocos".
- package visao;
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- /**
- *
- * @author Paulo Henrique Cayres
- */
- import javax.swing.JOptionPane;
- public class Exercicio03 {
- public static void main(String args[]){
- String frase = JOptionPane.showInputDialog("Digite uma cadeia de caracteres: ");
- String cadeia = "";
- String palindrome = "";
- //Repare que estamos percorrendo o vetor
- for(int i=0,j=frase.length()-1; i < frase.length(); i++,j--){
- if ( Character.isLetterOrDigit(frase.charAt(i)) )
- cadeia += frase.charAt(i);
- if ( Character.isLetterOrDigit(frase.charAt(j)) )
- palindrome += frase.charAt(j);
- }
- System.out.println(cadeia+" - "+palindrome);
- if(cadeia.equalsIgnoreCase(palindrome))
- System.out.println(frase+" é palíndrome.");
- else
- System.out.println(frase+" não é palíndrome.");
- }
- }
OU
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package visao;
- import javax.swing.JOptionPane;
- /**
- *
- * @author Aluno
- */
- public class Exercicio03_v2 {
- public static void main(String args[]){
- String frase = JOptionPane.showInputDialog("Digite uma cadeia de caracteres: ");
- //expressão regular caracteres de pontuação...
- frase = frase.replaceAll("[-.,;_ ]","");
- StringBuffer palindrome = new StringBuffer(frase);
- if(frase.equalsIgnoreCase(palindrome.reverse().toString()))
- System.out.println(frase+" é palíndrome.");
- else
- System.out.println(frase+" não é palíndrome.");
- }
- }
Exercício 4: Faça uma classe executável que leia uma senha de no mínimo 6 caracteres e no máximo 12 caracteres, sendo que o primeiro caractere deve ser uma letra e deve conter pelo menos 2 números (em qualquer posição, exceto na primeira). Caso o usuário não forneça uma senha com estas especificações, mostrar a mensagem "senha não é válida" e solicitar que digite uma senha novamente (até ser válida).
- package visao;
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- /**
- *
- * @author Paulo Henrique Cayres
- */
- import javax.swing.JOptionPane;
- public class Exercicio04 {
- public static void main(String args[]){
- boolean teste = true;
- do{
- String senha = JOptionPane.showInputDialog("Digite uma senha: ");
- if (senha.length() >=6 && senha.length() <= 12){
- if(Character.isLetter(senha.charAt(0))){
- int totDigitos=0;
- for(int i=0; i < senha.length(); i++){
- if(Character.isDigit(senha.charAt(i)))
- totDigitos++;
- }
- if (totDigitos >= 2)
- teste = false;
- }
- else
- JOptionPane.showMessageDialog(null, "Senha não é valida. A senha não pode começar com número.","Mensagem",JOptionPane.WARNING_MESSAGE);
- }
- else
- JOptionPane.showMessageDialog(null, "Senha não é valida.A senha de ter no mínimo 6 e no máximo 12 caracteres.","Mensagem",JOptionPane.WARNING_MESSAGE);
- }while(teste);
- JOptionPane.showMessageDialog(null, "Senha valida.","Mensagem",JOptionPane.WARNING_MESSAGE);
- }
- }
Exercício 5: Faça uma classe executável que informe uma das mensagens a seguir, de acordo com a hora do sistema. -0h até 5:59h, "Boa madrugada" -6h até 11:59h, "Bom dia" - 12h até 17:59h, "Boa tarde" e das 18h até 23:59h, "Boa noite".
- package visao;
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- /**
- *
- * @author Paulo Henrique Cayres
- */
- import java.util.Calendar;
- import java.util.Date;
- import javax.swing.JOptionPane;
- public class Exercicio05 {
- public static void main(String args[]){
- Date agora = new Date();
- Calendar calendario = Calendar.getInstance();
- calendario.setTime( agora );
- int hora = calendario.get(Calendar.HOUR_OF_DAY);
- if (hora < 6)
- JOptionPane.showMessageDialog(null, "Boa Madrugada!", "Mensagem",JOptionPane.INFORMATION_MESSAGE);
- else if (hora < 12)
- JOptionPane.showMessageDialog(null, "Bom Dia!", "Mensagem",JOptionPane.INFORMATION_MESSAGE);
- else if (hora < 18)
- JOptionPane.showMessageDialog(null, "Boa Tarde!", "Mensagem",JOptionPane.INFORMATION_MESSAGE);
- else
- JOptionPane.showMessageDialog(null, "Boa Noite!", "Mensagem",JOptionPane.INFORMATION_MESSAGE);
- }
- }
Exercício 6: Faça uma classe executável que dado a data de nascimento de uma pessoa (dia, mês e ano), informe quantos anos ela tem.
- package visao;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.GregorianCalendar;
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- /**
- *
- * @author Paulo Henrique Cayres
- */
- import javax.swing.JOptionPane;
- public class Exercicio06 {
- public static void main(String args[]) throws ParseException{
- SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
- Date ini = sdf.parse("25/10/1972");
- Date fim = sdf.parse("26/06/2013");
- long dif = fim.getTime() - ini.getTime();
- int idade = (int) Math.floor((dif/86400000)/365.25);
- JOptionPane.showMessageDialog(null, "Você tem "+idade+" ano(s).","Mensagem",JOptionPane.INFORMATION_MESSAGE);
- }
- }
Exercício 7: Faça uma classe executável que dado a data de vencimento de uma fatura (dia, mês, ano) que já venceu (fatura em atraso) e seu valor, informe o número de dias em atraso, considerando a data atual para pagamento, e também o novo valor a pagar, considerando 0,5% de juros por dia de atraso.
- package visao;
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- /**
- *
- * @author Paulo Henrique Cayres
- */
- import java.text.DateFormat;
- import java.text.DecimalFormat;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.GregorianCalendar;
- import javax.swing.JOptionPane;
- public class Exercicio07 {
- public static void main(String args[]) throws ParseException{
- Date agora = new Date();
- DateFormat df1 = DateFormat.getDateInstance(); // DD/MM/AAAA
- GregorianCalendar vencimento = new GregorianCalendar();
- GregorianCalendar atual = new GregorianCalendar();
- SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
- vencimento.setTime(sdf.parse("04/02/2013"));
- atual.setTime(sdf.parse(df1.format(agora)));
- long dt1 = vencimento.getTimeInMillis();
- long dt2 = atual.getTimeInMillis();
- int diasAtraso = (int) ((dt2-dt1)/86400000);
- double vlrFatura = 1220.13;
- double vlrAtraso = vlrFatura + ((vlrFatura * 0.005) * diasAtraso);
- DecimalFormat df = new DecimalFormat();
- df.applyPattern("R$ #,##0.00");
- JOptionPane.showMessageDialog(null, "Fatura vencida a "+diasAtraso+" dia(s). Valor a pagar "+df.format(vlrAtraso),"Mensagem",JOptionPane.INFORMATION_MESSAGE);
- }
- }
Exercício 8: Para evitar erros de digitação de sequências de números de importância fundamental, como a matrícula de um aluno, o CPF, o número de conta bancária, etc., geralmente se adiciona ao número um dígito verificador. Por exemplo, o número de matrícula 811057 é usado como 8110573, onde 3 é o dígito verificador, calculado da seguinte maneira:
a) Cada algarismo do número é multiplicado por um peso começando de 2 e crescendo de 1, da direita para a esquerda: 8 x 7, 1 x 6, 1 x 5, 0 x 4, 5 x 3, 7 x 2
b) Somam-se as parcelas obtidas: 56 + 6 + 5 + 0 + 15 + 14 = 96
c) Calcula-se o resto da divisão desta soma por 11: 96 / 11 dá resto 8 (96 = 8 x 11 + 8)
d) Subtrai-se de 11 o resto obtido: 11 - 8 = 3
e) Se o valor encontrado for 10 ou 11, o dígito verificador será 0; nos outros casos, o dígito verificador é o próprio valor encontrado.
Faça uma classe executável que leia uma string representando o número seguido de seu respectivo dígito verificador e informe se o número está correto.
- package visao;
- import javax.swing.JOptionPane;
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- /**
- *
- * @author Paulo Henrique Cayres
- */
- public class Exercicio08 {
- public static void main(String arg[]){
- String numero = JOptionPane.showInputDialog("Digite um número: ");
- int peso = 2;
- int soma = 0;
- for(int i = (numero.length()-1); i>= 0; i-- ){
- soma += peso * (Character.getNumericValue(numero.charAt(i)));
- if (peso++ > 9)
- peso = 2;
- }
- System.out.println(soma);
- int resto = soma % 11;
- int digito = 11 - resto;
- if (digito == 10 || digito == 11)
- digito = 0;
- numero += "-"+digito;
- JOptionPane.showMessageDialog(null, "Número com dígito verificador: "+numero,"Resultado",JOptionPane.INFORMATION_MESSAGE);
- }
- }
Fonte: livro do professor Paulo Henrique Cayres
 
No comments:
Post a Comment