Vetores - não aparece para digitar o salário

12 respostas
M

Olá amigos boa noite!!
Alguém pode me ajudar com esse exercício?

Elaborar um algoritmo para ler e armazenar num vetor um conjunto de salários. A quantidade de entradas no vetor deve ser definida pelo próprio usuário, sendo que:

? A quantidade máxima de entradas deve ser 20;

? Ao digitar o valor 0, o programa deve interromper a entrada de salários;

? Após toda a entrada ter sido realizada, leia o valor de um reajuste.

? Em seguida exiba todos os salários  reajustados.

Agradeço desde já!!

12 Respostas

Andersonrms

Você já implementou alguma coisa?

M

Então Anderson… eu fiz mas parei na hora do usuário digitar o número de vetores… não saiu disso! rs
Grato!

Ruttmann

mp123:
Então Anderson… eu fiz mas parei na hora do usuário digitar o número de vetores… não saiu disso! rs
Grato!

Coloca aqui o que vc fez até agora, fica mais fácil pra gente te ajudar!
:smiley:

M

Então mano, consegui fazer mais ou menos assim..
Não saiu disso!!! rsrsrsrs
E ainda tá dando erro porque não aparece pro usuário digitar o Salário!

Grato!

package terceiralista.walter;
import javax.swing.*;
public class Ex7 {

    public static void main(String[] args) 
    {
       int quant=0;
       
       
       quant = Integer.parseInt(JOptionPane.showInputDialog("Qual a quantidade de vetores?"));
       
       
       if (quant > 20)
        {
       JOptionPane.showMessageDialog(null, "A quantidade ultrapassou, o máximo são 20 vetores!");
       
       while (quant > 20)
       {
           quant = Integer.parseInt(JOptionPane.showInputDialog("Qual a quantidade de vetores?"));
       }
        }
        
        
       int[] conjSal = new int [quant];
       double[] salario = new double [quant];
       int i=0;
       int g=0;
       for (i=0;i<=conjSal[quant];i++)
       {
           for (g=0;g<=salario[quant];g++)
           {
       salario[g] = Double.parseDouble(JOptionPane.showInputDialog("QUAL O SALÁRIO?)"));
       
       
           }
       }
        
        
        
        
        
    }
}
ViniGodoy

Por favor, ao postar tópicos, não use só letras maiúsculas no título. Também evite perder tempo escrevendo coisas obvio como “AJUDA”.
Dessa vez, alterei o título para você. É importante descrever o assunto e dar uma noção do erro.

Finalmente, sempre poste sua dúvida, nunca somente o enunciado do seu exercício.

Procure colocar:

  • O comportamento que está ocorrendo;
  • O que você gostaria que fosse;
  • Código fonte do que você já tentou fazer;
  • Texto da mensagem de erro (se tiver);
ViniGodoy

Quanto à sua dúvida.

Nos seus for você fez:
i <= conjSal[quant]
g <= salario[quant]

Entretanto, conjSal[quant] e salario[quant] sequer são indices válidos em seu array (um array de 20 terá índices de 0 até 19).
Ainda que fossem, como esses arrays acabaram de ser criados, o conteúdo desses índices é 0, pois nenhuma informação foi colocada dentro deles.

Creio que você quisesse fazer:
i < quant

Abaixo, um exemplo. Também corrigi o mecanismo de entrada para corresponder ao que pede o enunciado.
Note que seu professor pediu para ir lendo até que o salário digitado seja 0, e não para perguntar o número de leituras com antecedência.

package terceiralista.walter;

import javax.swing.JOptionPane;

public class Ex7 {
	public static void main(String[] args) {
		int MAX = 20;
		double[] salarios = new double[MAX];
		double[] reajustes = new double[MAX];
		
		int quant = 0;
		while (quant &lt; MAX) {
			double salario = Double.parseDouble(JOptionPane.showInputDialog(null, &quot;Qual é o salário (digite 0 para terminar)?&quot;));
			if (salario == 0)
				break;
			salarios[quant] = salario;
			
			double reajuste = Double.parseDouble(JOptionPane.showInputDialog(null, &quot;Qual é o valor do reajuste?&quot;));
			reajustes[quant] = reajuste;
			quant++;
		}
		
		 
		for (int i = 0; i &lt; quant; i++) {
			//Agora aqui vc faz o calculo do reajuste.
		}
	}
}
M

Então Vini!
Eu sou iniciante em Java, e essas sintaxes são novas… então não estou entendendo nada quanto ao “Private static final int” , enfim!
Tem alguma forma de fazer isso só com for, while,do while, if ?

Grato.

G

se ta começando usa isso


me ajudou muito :smiley:

ViniGodoy

mp123:
Então Vini!
Eu sou iniciante em Java, e essas sintaxes são novas… então não estou entendendo nada quanto ao “Private static final int” , enfim!
Tem alguma forma de fazer isso só com for, while,do while, if ?

É só trocar o MAX por uma variável inteira normal. Aquilo era para definir uma constante.
Já arrumei no código.

O resto já usava só while, if e afins.

M

É que quando tento compilar ele dá uns erros. O que será ?

ViniGodoy

Você rodou o código que corrigi ali em cima? Pq eu testei aqui e funciona…

M

Vini! Consegui aqui cara… rodou certinho,

Mais uma vez, obrigado!!

Criado 6 de maio de 2012
Ultima resposta 8 de mai. de 2012
Respostas 12
Participantes 5