–
excluido
Eu fiz assim:
public class Exemplo {
public static void main(String[] args) {
Exemplo programa = new Exemplo();
programa.executar();
}
public void executar() {
StdIO.println("INFORME OS DADOS:");
double vh = StdIO.readDouble(" Valor da remuneração por hora (VH): ", valor -> valor > 0);
double hs = StdIO.readDouble(" Horas semanais trabalhadas (HS): ", horas -> horas > 0 && horas <= 44);
double sb = salarioBruto(vh, hs);
double inss = inss(sb);
double irrf = irrf(sb);
double sl = salarioLiquido(sb);
StdIO.println("INFORMAÇÕES");
StdIO.printf(" Valor da remuneração por hora (VH): %10.2f%n", vh);
StdIO.printf(" Horas semanais trabalhadas (HS): %10.2f%n", hs);
StdIO.printf(" Salário Base (SB): %10.2f%n", sb);
StdIO.printf(" Descontos (INSS): %10.2f%n", inss);
StdIO.printf(" Descontos (IRRF): %10.2f%n", irrf);
StdIO.printf(" Salário Líquido (SL): %10.2f%n", sl);
}
private double salarioBruto(double vh, double hs) {
return vh * hs * 4.5;
}
private double salarioLiquido(double sb) {
return sb - inss(sb) - irrf(sb);
}
private double inss(double sb) {
if (sb <= 1693.72) {
return sb * 0.08;
}
if (sb <= 2822.90) {
return sb * 0.09;
}
if (sb <= 5645.80) {
return sb * 0.11;
}
return 621.03;
}
private double irrf(double sb) {
if (sb <= 1903.98) {
return 0;
}
if (sb <= 2826.65) {
return (sb * 0.075) - 142.80;
}
if (sb <= 3751.05) {
return (sb * 0.15) - 354.80;
}
if (sb <= 4664.68) {
return (sb * 0.225) - 636.13;
}
return (sb * 0.275) - 869.36;
}
}
Exemplo de saída ao executar o programa:
INFORME OS DADOS:
Valor da remuneração por hora (VH): 12
Horas semanais trabalhadas (HS): 40
INFORMAÇÕES
Valor da remuneração por hora (VH): 12,00
Horas semanais trabalhadas (HS): 40,00
Salário Base (SB): 2160,00
Descontos (INSS): 194,40
Descontos (IRRF): 19,20
Salário Líquido (SL): 1946,40
Observação:
A classe StdIO
é uma classe utilitária que uso pra facilitar a entrada de dados pelo teclado e saída de dados no console, mas você pode fazer a entrada e saída como bem entender.
Que compilador você usa?
Qual erro que você teve?
Tem certeza de que copiou o fonte da classe StdIO
corretamente?
Onde está escrito StdIO
, você escreve System.out
.
System.out.println("INFORMAÇÕES");
System.out.printf(" Valor da remuneração por hora (VH): %10.2f%n", vh);
System.out.printf(" Horas semanais trabalhadas (HS): %10.2f%n", hs);
System.out.printf(" Salário Base (SB): %10.2f%n", sb);
System.out.printf(" Descontos (INSS): %10.2f%n", inss);
System.out.printf(" Descontos (IRRF): %10.2f%n", irrf);
System.out.printf(" Salário Líquido (SL): %10.2f%n", sl);
Bom, estou usando o BlueJ.
O programa da erro apenas nas partes StdIO, mesmo eu substituindo por System.out.println.
Erro em StdIO.println(“INFORME OS DADOS:”); Aparece a mensagem "Cannot find symbol - variable StdIO. (Não foi possivel encontrar o símbolo - Variavel StdIO.)
double vh = StdIO.readDouble(" Valor da remuneração por hora (VH): “, valor -> valor > 0);
double hs = StdIO.readDouble(” Horas semanais trabalhadas (HS):
Você está chamando algo que não existe: System.out.print.readDouble
O objeto System.out
só possui métodos print
e estes métodos são void
, eles não retornam nada que permita você chamar um método readDouble
.
Se você não quer usar o StdIO
, utilize um BufferedReader
ou um Scanner
pra ler os dados.
É porque você não adicionou a classe StdIO ao seu programa.
Crie ela no BlueJ, copie o fonte dela que disponibilizei nos links.
Depois execute o método main
da classe Exemplo
, veja:
Mas está tudo aqui no fórum.
Qual a dificuldade em copiar o fonte da classe Exemplo e o fonte da classe StdIO?
Com todo o respeito, se você não consegue fazer um Ctrl+C
e Ctrl+V
de um código fonte, então sua dificuldade não é com programação nem com Java.