Jump to content

Exercício simples


LuisMendes330

Recommended Posts

Boas pessoal!

Tou a começar a aprender Java e tou aqui com algumas dúvidas neste exercício.

Ex.1:

Escreva um programa em JAVA que leia o salário mensal bruto de 10 funcionários de uma

empresa. O programa possuirá uma tabela de retenção de IRS de acordo com os valores

indicados na tabela seguinte.

Salário bruto (Euros) % Retenção de IRS

< 500 10%

[501, 1001[ 20%

[1001, 3001[ 30%

[3001, 5001[ 40%

>= 5001 50€

O programa deve permitir imprimir a listagem dos vencimentos brutos, retenção de IRS e

vencimento líquido dos 10 funcionários.

O que fiz na aula:

package salario;
import java.util.Scanner;
public class Salario {
 public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    float [] salarios;
    do{
        float salarios = input.nextFloat();
        salario[indice]=valordosalario;
        indice++
    }
    while(indice<=9)
 }

Falta no código muita coisa , mas já sei +- o que tenho a fazer.O valor dos vencimentos brutos vão ser colocados num array certo?A seguir verificar cada valor ,que está em determinado indice do array, a que percentagem de retenção de IRS está ligada. E por fim multiplicar o valor do salário bruto pelo valor de percentagem de retenção de IRS.

Como vou meter lá 10 salários?defino vários int dentro do main?

E o programa para imprimir tudo tenho de fazer sempre system.out.println?

Agora uma dúvida mais pequena ainda.

Eu tenho que usar a linha de comandos para testar o programa?

Obrigado!

Link to comment
Share on other sites

O valor dos vencimentos brutos vão ser colocados num array certo?

sim

Como vou meter lá 10 salários?defino vários int dentro do main?

não percebo a pergunta devido a esta linha que tens no teu código:

float[] salarios;

sabes que tens de usar um array e depois perguntas como fazer ?

e ficas a saber que o que tens não é um array mas a declaração de uma variável que será usada para aceder a um array de elementos.

o array não existe até o instanciares:

salarios = new float[10];

E o programa para imprimir tudo tenho de fazer sempre system.out.println?

claro

Eu tenho que usar a linha de comandos para testar o programa?

se o teu IDE não tiver algum tipo de funcionalidade de consola dentro da aplicação, sim, não tens outra solução.

aplicações de consola, correm em consola

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

O IDE que tou a usar é o Netbeans.A consola dele é onde diz output certo?

Depois há outra coisa, eu saquei também o Java 7 update 15 (64 bits). Para que serve ao certo?

Não poderia programar Java apenas com o Netbeans IDE?

Ok, e depois de instanciar o array como coloco os valores dos salários brutos em cada índice do array?

Link to comment
Share on other sites

O IDE que tou a usar é o Netbeans.A consola dele é onde diz output certo?

sim, o netbeans tens a consola emulada num dos seus componentes onde podes fazer o output e input dos dados de uma aplicação de consola

Depois há outra coisa, eu saquei também o Java 7 update 15 (64 bits). Para que serve ao certo?

estás a programar em java, logo acho que é obvio ...

Não poderia programar Java apenas com o Netbeans IDE?

um carro com volante, rodas, chassie, pedais e tudo o resto continua a não funcionar sem motor pois não ?

Ok, e depois de instanciar o array como coloco os valores dos salários brutos em cada índice do array?

tens um ciclo no teu código, o que tens de fazer é, em vez de guardares o valor numa variável que estás a criar, guardar na posição correcta do array

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Mas o que me faz um bocado de confusão é não abrir esse tal programa Java 7 lol Eu para fazer um programa não preciso apenas de código?Isso faço no Netbeans....

Mas onde vou por o valor ?

Tá melhor assim o código?

package salario;
import java.util.Scanner;
public class Salario {
   public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
       float [10] salarios;
       int indice=0
       do{
           float salarios = input.nextFloat();
           salario[indice]=valordosalario;
           indice++
           System.out.println(valordosalario)
       }
       while(indice<=9)
   }

Obrigado!

Link to comment
Share on other sites

Mas o que me faz um bocado de confusão é não abrir esse tal programa Java 7 lol Eu para fazer um programa não preciso apenas de código?Isso faço no Netbeans....

este é o grande problema do uso de IDE's por parte de iniciantes ...

quem disse que não usas o "programa" java ?

na realidade usas o "javac" para compilar e o "java" para correr a aplicação

package salario;
import java.util.Scanner;
public class Salario {
   public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
       float [10] salarios;
       int indice=0
       do{
           float salarios = input.nextFloat();
           salario[indice]=valordosalario;
           indice++
           System.out.println(valordosalario)
       }
       while(indice<=9)
   }

estás no netbeans ... tenho a certeza absoluta que este disse que tinhas erros no código !!!

olha bem para o que estás a fazer

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Sim dá me erros.Mas não tou a perceber muito bem como corrigir...

package salario;
import java.util.Scanner;
/**
*
* @author Luis
*/
public class Salario {
   /**
    * @param args the command line arguments
    */
   public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
       float[10] salarios; (Aqui diz que espera "]", onde coloco ?)
       int indice=0;
       int valordosalario;
       do{
           float salarios = input.nextFloat();
           salarios[indice]=valordosalario; (aqui diz me que precisa de um array, mas encontra apenas um float)
           indice++;
           System.out.println(valordosalario);
       }
       while(indice<=9);
   }

Tou com dúvidas em como colocar os valores dos salários dentro do array.

Link to comment
Share on other sites

       float[10] salarios; (Aqui diz que espera "]", onde coloco ?)

float[] salarios;
salarios = new float[10];

           salarios[indice]=valordosalario; (aqui diz me que precisa de um array, mas encontra apenas um float)

quanto muito deverá dizer que espera um float e encontra um int !!!

depois responde a estas duas questões

- que tipo de dados é a variável valordosalario

- que valor tem a variável valordosalario

(e por amos de Deus, não respondas sem ao menos olhar para o código ...)

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

quanto muito deverá dizer que espera um float e encontra um int !!!

depois responde a estas duas questões

- que tipo de dados é a variável valordosalario

- que valor tem a variável valordosalario

(e por amos de Deus, não respondas sem ao menos olhar para o código ...)

Respondendo à tua pergunta.

-A variável valordosalario é do tipo int.Pois reparei agora que tem de ser do tipo float certo?

-O valor que essa variável vai ter é o que estiver reservado em determinado índice do array.

A minha dúvida é como é que meto os 10 salários.Sei que tenho de meter num array ...

Link to comment
Share on other sites

Acho que ainda não tenho essa linha...

pois, eu não perguntei o que será no futuro, eu perguntei pelo que está no código ...

Scanner input = new Scanner(System.in);

Esta faz o input certo?

não, cria um objecto para fazer a interação com o teclado

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Mas podes me dar uma ideia mais concreta do que tenho de fazer?

Eu tou a pensar assim:

Vou inserir na consola 10 valores (os salários brutos) e a seguir irei obter 3 valores para cada salário, sendo eles o bruto, o liquido e a percentagem de retenção de IRS.

Já descobri que no meu código vou ter de acrescentar 5 if's para comparar o salário com a faixa de salário a que está ligada a respectiva taxa de retenção de IRS.

Por exemplo : If (salário <= 500){

salário*0,1}

Link to comment
Share on other sites

Mas podes me dar uma ideia mais concreta do que tenho de fazer?

Eu tou a pensar assim:

Vou inserir na consola 10 valores (os salários brutos) e a seguir irei obter 3 valores para cada salário, sendo eles o bruto, o liquido e a percentagem de retenção de IRS.

Já descobri que no meu código vou ter de acrescentar 5 if's para comparar o salário com a faixa de salário a que está ligada a respectiva taxa de retenção de IRS.

Por exemplo : If (salário <= 500){

salário*0,1}

força, implementa então

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package salario;
import java.util.Scanner;
/**
*
* @author Luis
*/
public class Salario {
   /**
    * @param args the command line arguments
    */
   public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
       float[] salarios;
       salarios = new float[10];
       int indice=0;
       float valordosalario;
       double a=0.1;
       double b=0.2;
       double c=0.3;
       double d=0.4;
       double e=0.5;
       do{
           salarios [indice]= input.nextFloat();
           salarios[indice]=valordosalario;
           indice++;
           System.out.println(valordosalario);
           if (salarios<500){
               salarios*a
           }
           if(1001>salarios>=501){
               salarios*b
           }
           if(3001>salarios>=1001){
               salarios*c
           }
           if(5001>salarios>=3001){
               salarios*d
           }
           if(salarios>=5001){
               salarios*e
           }
       }
       while(indice<=9);
   }

Tá cheio de erros mas é para ficares a perceber como tou a pensar...

Link to comment
Share on other sites

public class Salario {

 public static void main(String[] args)
 {
   Scanner input = new Scanner(System.in);
   double[] salarios = new double[10];

   for (int indice = 0; indice < 10; indice++)
   {
     salarios[indice]= input.nextDouble();

     if (salarios[indice] < 500)
     {
       // saĺario inferior a 500
     }
     else if(salarios[indice] <= 1000)
     {
       // saĺario entre 500 e 1000
     }
     else if(salarios[indice] <= 3000)
     {
       // saĺario entre 1000 e 3000
     }
     else if(salarios[indice] <= 5000)
     {
       // saĺario entre 3000 e 5000
     }
     else
     {
       // salario superior a 5000
     }
   }
 }
}

faz o resto

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package salario;
import java.util.Scanner;
/**
*
* @author Luis
*/
public class Salario {
/**
    * @param args the command line arguments
    */
public static void main(String[] args) {
 Scanner input = new Scanner(System.in);
 double[] salarios = new double[10];
 for (int indice = 0; indice < 10; indice++)
 {
    salarios[indice]= input.nextDouble();
    if (salarios[indice] < 500)
    { double a=salarios*0.1;
            System.out.println(salarios);
            System.out.println("10%");
            System.out.println(a);

    // saĺario inferior a 500
    }
    else if(salarios[indice] <= 1000)
    {
    // saĺario entre 500 e 1000
    }
    else if(salarios[indice] <= 3000)
    {
    // saĺario entre 1000 e 3000
    }
    else if(salarios[indice] <= 5000)
    {
    // saĺario entre 3000 e 5000
    }
    else
    {
    // salario superior a 5000
    }
 }
}

Fiz só o primeiro if. Dá erro na linha em que defini o double. Eu vou ter de criar uma outra variável para o vencimento líquido certo? Como?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.