Ir para o conteúdo
LuisMendes330

Exercício simples

Mensagens Recomendadas

LuisMendes330

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!

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
LuisMendes330

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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
LuisMendes330

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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
LuisMendes330

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

       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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
LuisMendes330

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 ...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

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

qual é a linha de código que diz isso ?


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
LuisMendes330

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}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
LuisMendes330

/*
* 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...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

para que estas duas instruções seguidas ?

salarios [indice]= input.nextFloat();
salarios[indice]=valordosalario;


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
LuisMendes330

Isso já fui eu a inventar um bocado. O que eu queria fazer era fazer corresponder o valor presente naquele momento no índice de salarios à variável valordosalario . Assim imprimia o valordosalario . Só se imprimir logo a variável salarios dentro da instrução do...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

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

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
LuisMendes330

/*
* 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?

Editado por Rui Carlos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

se é um array, terás de aceder ao valor guardado numa posição

e não, não necessitas de nenhuma variável, só necessitas de apresentar um valor, não existe necessidade de guardar nada


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.