Você está na página 1de 1

GUJ Discussões : últimos tópicos | categorias | GUJ Respostas

Ouça o Hispter.tech
O podcast sobre programação, design, ux, gadgets, startups e outras modinhas!

 Ajuda em Exercicios de Java [RESOLVIDO]


Programação Java

brunaum15 Mar '12

A unica coisa q consegui resolve ate agora foi pra informar o salario, e se for menor q 465 dar mensagem de
erro:
Pra continuar to sem ideias, jah temtei de tudo e n consegui.. se puderem ajudar...

package ExerciciosJava;
import javax.swing.*;
public class Exercicio0706
{
public static void main(String[] args)
{
String Salario;
Salario = JOptionPane.showInputDialog(null,"Informe o salário");
int x = Integer.parseInt(Salario);
if (x<465)
{
Salario = "Salario Inválido: R$ "+Salario;
JOptionPane.showMessageDialog(null,Salario,"Erro",0);
System.exit(0);
}
if (x>=465)
{
Salario = "Salário : R$ "+Salario;
JOptionPane.showMessageDialog(null,Salario,"Mensagem",1);
}
}
}

 

caio_ferreira Mar '12

se(salario <= 465){


sai do sistema
}se nao(salario <= 965){
(salario * 8) /100;
}se nao(salario >= 965 && salario <=1609){
(salario *9) /100;
}

Pra vc continuar

 

brunaum15 Mar '12

Nao deu certo isso que vc passou.. depois do if.. colocar esse else.. n vai!

 

daniferreira Mar '12

olha da uma olhada ai nao sei se esta completo mais ve aiii da arrumada de acordo com quem vc aprendeu té
maiss!

import java.util.*;
public class Exercicio0706 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
double salario,total = 0,recebe = 0;
Scanner dado = new Scanner(System.in);
System.out.println("Digite o salario do funcionario");
salario = dado.nextDouble();
if(salario > 465){
if(salario <= 975.67){
total = salario * 8/100;
recebe = salario - total;
System.out.println("a aliquota é de 8%");
}else if(salario == 965.68 && salario <= 1609.45){
total = salario * 9/100;
recebe = salario - total;
System.out.println("a aliquota é de 9%");
}else{
total = salario * 11/100;
recebe = salario - total;
System.out.println("a aliquota é de 11%");
}
}
if(salario <= 465){

 

lucas_guj Mar '12

Não tinha nada melhor para fazer, então fiz para você. Ao invés de apenas copiar e colar. Tente
entender cada coisa e onde você errou e o que você não pensou e fez. Você tem que pensar nos
"DADOS" que sua classe ou objeto precisam conhecer. E o que ela precisa fazer. E ai passar esses
dados como variáveis e o que fazer como método. Como é uma classe simples não usei um método
alem de main. Está ai:

//package ExerciciosJava;
import javax.swing.JOptionPane;
public class Exercicio0706 {
public static void main( String[] args ) {
// Como aqui é double então você pode inserir o salario com "." no InputDialog.
double salarioBru = 0.0; // armazena o salário Bruto
double salarioLiq = 0.0; // armazena o salário líquido
int taxa = 0; // armazena a áliquota
String informeSal = JOptionPane.showInputDialog(null,"Informe o salario" );
salarioBru = Double.parseDouble( informeSal );
if( salarioBru < 465.00 ) {
String mensagemInvalida = String.format( "Salario Invalido: R$%.2f", salari
JOptionPane.showMessageDialog(null, mensagemInvalida ,"Erro", 0 );
System.exit(0);
}
else if( salarioBru >= 465.00 && salarioBru <= 965.67 ) {
taxa = 8; // aliquota de 8%
double salBru = salarioBru * taxa;
salBru /= 100;
salarioLiq = salarioBru - salBru;
String mensagem = String.format( "<html>Salario Bruto: R$%,.2f<br>Aliquota
"Valor do INSS: R$%,.2f<br>Salario Liquido: R$%,.2f</html>", salarioBru
JOptionPane.showMessageDialog(null, mensagem, "Mensagem", 1);
}
else if( salarioBru >= 965.68 && salarioBru <= 1609.45 ) {
taxa = 9; // aliquota de 9%

 

brunaum15 Mar '12

Nossa mano.. valeeu mesmo!! Eu copiei e colei para ver como ia ficar, e ficou igualsinho como esperado!!
Agora vou ler e enteder ele TODOO!! para proximos exercicios eu consegui fazer sozinho!! ;D
valeeu!

 

brunaum15 Mar '12

tipo.. nesse caso vc usou um recurso q eu n aprendi ainda no curso!!


que no caso é o html: String.format( "Salario Bruto: R$%,.2f
Aliquota do INSS: %d%%
"+
"Valor do INSS: R$%,.2f
Salario Liquido: R$%,.2f"

Tambem nao sei pra q serve esse R$%.2f no "Salario Invalido: R$%.2f"

Sera q tem como ser feito usando outro metodo??


se puder ajudar....

Um erro q deu, foi q qndo informo um salario maior que 3218 da soh essa mensagem "O teto para
recolhimento de INSS e: R$354,08" e mais nada

 

lucas_guj Mar '12

brunaum15:

tipo.. nesse caso vc usou um recurso q eu n aprendi ainda no curso!!


que no caso é o html: String.format( "Salario Bruto: R$%,.2f
Aliquota do INSS: %d%%
"+
"Valor do INSS: R$%,.2f
 Ajuda em Exercicios
Salario Liquido: R$%,.2f" de Java [RESOLVIDO]  Entrar  
Programação Java
Tambem nao sei pra q serve esse R$%.2f no "Salario Invalido: R$%.2f"

Sera q tem como ser feito usando outro metodo??


se puder ajudar.... Mar 2012

Um erro q deu, foi q qndo informo um salario maior que 3218 da soh essa mensagem "O teto para
recolhimento de INSS e: R$354,08" e mais nada

Bom, vamos lá. Respondendo a última pergunta. Isso não é um erro. Isso fui eu que fiz nessas linhas:

else if( salarioBru > 3218.90 ) {


10 / 19
JOptionPane.showMessageDialog(null, "O teto para recolhimento de INSS e: R$354,08");
Mar 2012
System.exit(0);
}

Eu fiz isso, porque lá no problema da primeira mensagem do tópico você disse assim:

*O teto para o recolhimento de INSS é de R$354,07. Esse é o valor maximo que deve ser descontado do
salário.
Dez 2015

Ai eu fiz isso para não descontar nenhum valor que pasasse disso. Entendeu?

Quanto ao recurso que eu usei que você ainda não aprendeu é o seguinte. Geralmente para pular linha no
texto em java, quando está programando para exibir a saída no DOS você usa o "\n" ou então o "println" certo?
Nesse caso. Na janela do JOptionPane, o "\n" não estava funcionando, ai o que eu fiz? Usei HTML que não é
uma linguagem de programação mais de marcação de texto (Usada para fazer sites, você deve saber?).
Então, ai nessa linguagem começa assim:

<html>
<head>
Cabeçalho do site
</head>
<body>
Corpo do site
<body>
</html>

Isso é só uma palha, porque existem várias tags, mais você não precisa se preocupar com isso. No HTML,
para pular linha, usa-se a tag "
" (OBS: Não é necessária fechar a tag assim: "" ). Então nesse caso voce não precisa de nem apenas o e o
para pular as linhas. Entendeu? Por algum motivo QUE EU AINDA NÃO SEI, o "\n" não funcionou para pular
linha na exibição gráfica. Ocorria uma exceção chamada UnknownFormatConversionException que eu não
parei para ler.

E quanto ao String.format() e a isso "R$%,.2f" ?

Conhece FLAGS?

Flags são esses marcadores que usamos para exibir determinado caracter, string, double, etc com precisão.
Por exemplo, 163,09: Para exibir somente "163,0" eu faria assim: %.1f, esse ".1f" significa uma casa depois da
virgula. Ai voce tem que estudar e vêr os flags e suas formatações. NADA DE DIFICIL. Muito facil isso. Nem
se preocupe. Ai eu usei R$ como texto e esses flags eles vem indicado sempre depois do sinal de "%"
(Porcentagem). Isso indica que é um flag. Para exibir inteiro usa-se a letra d, para double e outros usa-se f e
assim tem mais alguns. Ai eu usei a , para ele separar certinho o número por exemplo: 1000.00 (mil reais) sem
virgula ficaria assim. Ai com a virgula fica assim: "1,000.00" Entendeu? E com o ".2" quer dizer duas casas
decimais depois da virgula.

Lá em:

Aliquota do INSS: %d%%

Eu usei dois sinais de Porcento depois do "d" porque se eu usasse apenas um ele pensaria que seria uma flag
e ai daria erro. Entao com dois ele exibi o sinal de porcentagem que é a taxa. Entendeu? E o d é para exibir
um inteiro.

Quanto ao método format de String, vamos ver o que a java API diz sobre isso:

"Returns a formatted string using the specified format string and arguments."

Retorna uma string formata usando especificadores de formato string e argumentos. Entendeu? O que eu fiz lá
emcima.

Ajudei? Deixei claro? Qualquer coisa pergunta.

 

brunaum15 Mar '12

No caso do "O teto para o recolhimento de INSS é de R$354,07" eu n queria q aparecesse essa mensagem, e
sim que n cobrasse mais que isso entendeu??
Mais acho que isso é facil de mudar, né??

Entao.. vc deixou claro quanto ao oq eu n tinha aprendido ainda...


Mais ai nesse exercicio, eu n queria usar isso, pois o prof ainda n ensinou.. e queria usar recursos q eu
aprendi.. entendeu??
Queria saber se tem como mudar??

Valeu...

 

lucas_guj Mar '12

É fácil mudar sim. Vai lá na linha e coloca o quer. Senão quer mais cobrar, ou fechar o programa, ou mandar
outra mensagem, sei lá você que tem que saber agora.

Entendi o que quer dizer. Fazer isso sem usar especificadores de formato tudo no mesmo JOptionPane?
Hmm...Não sei não.

 

brunaum15 Mar '12

Começei a fazer assim agora:

String mensagem = "Salário Informado: R$ " + salarioFinal + "\nAlíquota do INSS: " + aliquota + "%";
JOptionPane.showMessageDialog(null, mensagem, "Mensagem", 1);

A da alíquota ficou certinho, mais ai a do salario ficou zuado e n da pra colocar %,.2f fica Salário: R$ 460,0

OBS: te add no msn... programmer_lucas@hotmail.com né?

 

lucas_guj Mar '12

Sim é esse msn sim. Vai ficar assim mesmo, você não está usando flag.

 

brunaum15 Mar '12

Q saco aqueles dois funcionou.. ai quis colocar os outros dois e da erro:

String mensagem = "Salário Informado: R$ " + salarioInformado + "\nAlíquota aplicável: "

ahh achei é o "% " tirei ele e funfo!, mais ai o final vai ficar zuado.. mais vo dexa assim mesmo..

 

lucas_guj Mar '12

brunaum15:

Q saco aqueles dois funcionou.. ai quis colocar os outros dois e da erro:

[code]
String mensagem = "Salário Informado: R$ " + salarioInformado + "\nAlíquota aplicável: " + aliquota + "% "
"\nValor do INSS: R$ " + INSS + "\nSalário Final: R$ " + salarioFinal;
[/code]

ahh achei é o "% " tirei ele e funfo!, mais ai o final vai ficar zuado.. mais vo dexa assim mesmo..

Você esqueceu de concatenar depois do sinal de porcentagem de aliquota e o valor do INSS.

 

brunaum15 Mar '12

aee terminei, olha como ficou:

package ExerciciosJava;
import javax.swing.JOptionPane;
public class Exercicio0706 {
public static void main(String[] args) {
double salarioInformado = 0.0;
double salarioFinal = 0.0;
int aliquota = 0;
String informeSal = JOptionPane.showInputDialog(null, "Informe o salário");
salarioInformado = Double.parseDouble(informeSal);
if (salarioInformado < 465.00) {
String salarioInvalido = String.format("Salário Inválido: R$%.2f", salarioI
JOptionPane.showMessageDialog(null, salarioInvalido, "Erro", 0);
System.exit(0);
}
else if (salarioInformado >= 465.00 && salarioInformado <= 965.67) {
aliquota = 8;
double INSS = (salarioInformado * aliquota) / 100;
salarioFinal = salarioInformado - INSS;
String mensagem = String.format("Salário Informado: R$%.2f ", salarioInform
String mensagem1 = String.format("\nAlíquota aplicável: %d%% ", aliquota);
String mensagem2 = String.format("\nValor do INSS: R$%.2f ", INSS);
String mensagem3 = String.format("\nSalário Final: R$%.2f ", salarioFinal);
JOptionPane.showMessageDialog(null, mensagem+mensagem1+mensagem2+mensagem3,
System.exit(0);
}
else if (salarioInformado >= 965.68 && salarioInformado <= 1609.45) {

Valeeu..

 

lucas_guj Mar '12

Show. Qualquer coisa só perguntar, se eu puder ajudar, ajudo. Não esqueça de editar o tópico e colocar como
RESOLVIDO. Abraços

 

4 ANOS DEPOIS

 FECHOU DEZ 28, 15

 Responder

Tópicos sugeridos

Tópico Categoria Respostas Visualizações


Atividade

Identificar um codigo qr Java 6 234 Jun '17


java

Substituição de padrões Java 12 282 Jun '17

Bom dia, gostaria que alguem me ajudasse a resolver esse erro ? estou tentando fechar o meu
Java 1 127 Jun '17
analisador sintatico mas ele da o seguinte ERRO

Papel de parede Java 0 54 Jul '17

Mecanica de games / criação de bots Java 4 130 Jul '17


java

Quer ler mais? Procure outros tópicos em Java ou ver tópicos mais recentes.

Links do GUJ Categorias Redes Sociais

GUJ Respostas Programação


/GUJ.com.br
Caelum Front-end

Alura Mobile

Casa do Código Infraestrutura

Alura Língua Design & UX

Business

Assuntos Gerais

EDUCAÇÃO EDUCAÇÃO ONLINE COMUNIDADE PARCEIROS

Grupo Caelum
Caelum Alura Hipsters ponto Tech iMasters

Casa do Código Alura Start Hipsters ponto Jobs

MusicDot GUJ

Alura Língua

Você também pode gostar