Retornar valor algoritmo[resolvidoooo]

3 respostas
D

alguém pode me dizer pq nao está retornando valor no auxilio e no imposto fica 0.0 quando executo obrigado!!

import java.util.*;

public class exs {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stubh
		double valor_sal_min, co, valor_sal_bruto = 0, imp, sal_bruto, aux,grat,sal;
		char turno, categoria;
		int num_hrs_trab;

		Scanner dado = new Scanner(System.in);

		System.out.println("digite o valor do salário mínimo");
		valor_sal_min = dado.nextDouble();
		System.out.println("digite o turno de trabalho");
		turno = dado.next().charAt(0);
		while (turno != 'V' && turno != 'N' && turno != 'M') {
			System.out.println("turno inválido!digite novamente: ");
			turno = dado.next().charAt(0);
		}
		System.out.println("digite a categoria");
		categoria = dado.next().charAt(0);
		while (categoria != 'O' && categoria != 'G') {
			System.out.println("categoria inválida! digite novamente: ");
			categoria = dado.next().charAt(0);
		}
		System.out
				.println("digite o número de horas trabalhadas do funcionário");
		num_hrs_trab = dado.nextInt();

		co = coeficiente(turno, valor_sal_min);
		System.out.println("o valor do coeficiente foi " + co);
		sal_bruto = valor_sal_bruto(num_hrs_trab, co);
		System.out.println("o valor do salário bruto foi " + sal_bruto);
		imp = imposto(valor_sal_bruto);
		System.out.println("o valor do imposto foi " + imp);
		grat = gratificacao(turno, num_hrs_trab);
		System.out.println("o valor da gratificação foi"+grat);
		aux = auxilio(categoria, co, valor_sal_bruto);
		System.out.println("o valor do auxilio é "+aux);
		sal = salliquido(sal_bruto,imp,grat,aux);
		System.out.println("o salario liquido foi "+sal);
		classifica(sal);
	}

	static double coeficiente(char turno, double valor_sal_min) {
		double valor_coeficiente = 0;

		if (turno == 'M') {
			valor_coeficiente = valor_sal_min * 10 / 100;
		} else if (turno == 'V') {
			valor_coeficiente = valor_sal_min * 15 / 100;
		} else {
			valor_coeficiente = valor_sal_min * 12 / 100;
		}
		return valor_coeficiente;
	}

	static double valor_sal_bruto(int num_hrs_trab, double valor_coeficiente) {
		return (num_hrs_trab * valor_coeficiente);
	}

	static double imposto(double valor_sal_bruto) {
		double imp = 0;
		if (valor_sal_bruto <= 500) {
			imp = valor_sal_bruto * 10 / 100;
		} else {
			imp = valor_sal_bruto * 15 / 100;
		}
		return imp;
	}
	static double auxilio (char categoria, double coeficiente, double valor_sal_bruto){
		double salarioaux = 0;
		if(categoria == 'O' && coeficiente <=25){
			salarioaux = valor_sal_bruto/3;
			
		}else{
			salarioaux = valor_sal_bruto/2;
		}
		return salarioaux;
		
	}
	static double gratificacao (char turno, int num_hrs_trab){
		double grat  =0 ;
		if(turno == 'N' && num_hrs_trab > 80){
			grat = 50;
		}else{
			grat = 30;
		}
		return grat;
	}
	static double salliquido (double sal_bruto, double imposto, double gratificacao, double auxilio){
		return(sal_bruto - imposto + gratificacao + auxilio);
	}
	static void classifica (double sal){
		if(sal < 350){
			System.out.println("mal remunerado");
		}else if(sal>350 && sal<=600){
			System.out.println("normal");
		}else{
			System.out.println("bem remunerado");
		}
	}
}

3 Respostas

A

valor_sal_bruto é inicializado com zero e é passado para os métodos sem receber nada antes.

D

pior hem nem tinha reparado nisso

D

consegui resolver isso aeeee brigadaooo irmao

Criado 5 de outubro de 2011
Ultima resposta 6 de out. de 2011
Respostas 3
Participantes 2