Boa noite pessoal, estou fazendo uma programação, mas fiquei com uma dúvida, a questão é a seguinte: Uma empresa de saneamento básico deseja fazer o controle do gasto (litros) de água de uma residência qualquer no primeiro semestre durante dois anos. Cada semestre é composto de 6 valores que são equivalentes ao meses do ano (jan-jun). A empresa deseja saber qual a quantidade de litros gastos em cada semestre, total de litros nos mesmos meses de cada ano. Mostre os anos, meses e valores calculados.
Fiz o código da seguinte forma:
int[]a=newint[6],b=newint[6];intano1,ano2;intsem1=0,sem2=0;Stringsa="",sb="";ano1=Integer.parseInt(JOptionPane.showInputDialog("Informe o ano"));for(inti=0;i<a.length;i++){a[i]=Integer.parseInt(JOptionPane.showInputDialog("Informe o gasto do semestre"));sem1+=+a[i];sa=sa+a[i]+" , ";}ano2=Integer.parseInt(JOptionPane.showInputDialog("Informe o ano 2"));for(inti=0;i<b.length;i++){b[i]=Integer.parseInt(JOptionPane.showInputDialog("Informe o gasto do semestre"));sem2+=+b[i];sb=sb+b[i]+" , ";}JOptionPane.showMessageDialog(null,"Ano "+ano1+"\n"+"gastos dos meses jan a jun: "+sa+"\n"+"Gasto do primeiro semestre deste ano = "+sem1);JOptionPane.showMessageDialog(null,"Ano "+ano2+"\n"+"gastos dos meses jan a jun: "+sb+"\n"+"Gasto do primeiro semestre deste ano = "+sem2);}}
Gostaria de uma forma que mostrasse os meses separados com seus respectivos gastos. Alguem saberia como posso fazer isso?
Desde já agradeço
lety_cia, você já tem 2 arrays de 6 posições (jan…jun).
Em toda “rodada/volta” do loop você pede o seguinte: b[i] = Integer.parseInt(JOptionPane.showInputDialog("Informe o gasto do semestre"));
Acho que poderia fazer algo tipo:
for(int i=0; i < a.lenght; i++){
switch(i){
case 0: a[i] = Integer.parseInt(JOptionPane.showInputDialog("Valor de Janeiro: ")); break;
case 1: a[i] = Integer.parseInt(JOptionPane.showInputDialog("Valor de Fevereiro: ")); break;
case 2: a[i] = Integer.parseInt(JOptionPane.showInputDialog("Valor de Março: ")); break;
case 3: a[i] = Integer.parseInt(JOptionPane.showInputDialog("Valor de Abril: ")); break;
case 4: a[i] = Integer.parseInt(JOptionPane.showInputDialog("Valor de Maio: ")); break;
case 5: a[i] = Integer.parseInt(JOptionPane.showInputDialog("Valor de Junho: ")); break;
}
}
Com isso você já teria os valores do semestre… E saberia qual posição da array se refere ao mês que deseja exibir… Se quisesse exibir só março dos dois anos era só exibir o índice 2 dos arrays, se quisesse todos só criar um laço, que poderia usar pra somar os meses também…
Pode fazer de várias formas, mas creio que assim seja simples de entender!
L
lety_cia
Entendi, mas o que eu gostaria é que não na pergunta mostrasse os meses, mas sim na hora de mostrar os valores, ex: jan:(total de litros), fev: (total de litros)… Da forma mais simplificava possivel.
R
redr4gon
até poderia fazer isso mas como vc saberia qto gastou em cada mês? tirando uma média? ou a pessoa informaria qto gastou mês a mês ou vc teria que tirar a média…
se for tirar a média dae é fácil demais…
só pegar o valor do semestre, dividir por 6, criar um array com 6 posições e cada posição preencher com um mês e depois fazer um for, imprimindo o nome do mês + a média calculada… entendeu?
L
lety_cia
Entendi sim, mas o problema não quer que mostre a média do semestre, somente o total e o gasto de todo mês mesmo.
rebinho
Mais num vai mudar quase nada na hora de exibir.... É só pegar o exemplo e mudar um pouquinho!
Mais tudo bem vamos lá :
int[]semestre1=newint[6],semestre2=newint[6];inttotalSemestre1,totalSemestre2;JOptionPane.showMessageDialog(null,"Digite os valores de ano 1!");for(inti=0;i<6;i++){semestre1[i]=Integer.parseInt(JOptionPane.showInputDialog("Digite o valor "+(i+1)+": "));totalSemestre1=totalSemestre1+semestre1[i];}JOptionPane.showMessageDialog(null,"Digite os valores de ano 2!");for(inti=0;i<6;i++){semestre2[i]=Integer.parseInt(JOptionPane.showInputDialog("Digite o valor "+(i+1)+": "));totalSemestre2=totalSemestre2+semestre2[i];}JOptionPane.showMessageDialog(null,"O total dos dois semestre é "+(totalSemestre1+totalSemestre2));JOptionPane.showMessageDialog(null,"O total do primeiro semestre é "+totalSemestre1);JOptionPane.showMessageDialog(null,"O total do segundo semestre é "+totalSemestre2);JOptionPane.showMessageDialog(null,"Meses do primeiro semestre!");for(inti=0;i<6;i++){switch(i){case0:JOptionPane.showMessageDialog(null,"Valor de Janeiro: "+semestre1[i]));break;case1:JOptionPane.showMessageDialog(null,"Valor de Fevereiro: "+semestre1[i]));break;case2:JOptionPane.showMessageDialog(null,"Valor de Março: "+semestre1[i]));break;case3:JOptionPane.showMessageDialog(null,"Valor de Abril: "+semestre1[i]));break;case4:JOptionPane.showMessageDialog(null,"Valor de Maio: "+semestre1[i]));break;case5:JOptionPane.showMessageDialog(null,"Valor de Junho: "+semestre1[i]));break;}}JOptionPane.showMessageDialog(null,"Meses do segundo semestre!");for(inti=0;i<6;i++){switch(i){case0:JOptionPane.showMessageDialog(null,"Valor de Janeiro: "+semestre2[i]));break;case1:JOptionPane.showMessageDialog(null,"Valor de Fevereiro: "+semestre2[i]));break;case2:JOptionPane.showMessageDialog(null,"Valor de Março: "+semestre2[i]));break;case3:JOptionPane.showMessageDialog(null,"Valor de Abril: "+semestre2[i]));break;case4:JOptionPane.showMessageDialog(null,"Valor de Maio: "+semestre2[i]));break;case5:JOptionPane.showMessageDialog(null,"Valor de Junho: "+semestre2[i]));break;}}
Bom acho que já fiz sua lição de casa... xD E assim já está bemmm simples, mesmo que queira algo diferente serve como base, só alterar.
E sugiro que de uma olhada nas apostilas da Caelum , de uma olhada na FJ-11 aprenderá melhor usar laços e array!
Abraço!
L
lety_cia
Hum, ajudou sim e muito. Muito obrigada
rebinho
De nada. Também estou aprendendo e fico feliz em poder ajudar!
Mas caso não tenha mais dúvidas relacionadas a esse exercício por favor edite seu primeiro post e coloque [RESOLVIDO] no título, pra deixar a bagaça mais organizada!