Galera é o seguinte, estou estudando para a prova SCJA.
E acho que a primeira coisa que devo fazer a revisar meus conceitos quanto ao Java, por isso estou lendo o livro Java como Programar e resolvendo o exercícios.Entretanto me deparei com o exercício abaixo e fiquei com dúvidas, pois achei o enunciado um tanto quanto bagunçado.
Segue abaixo o enunciado do exercício e o código desenvolvido por mim.
4.17 - Os motoristas se preocupam com o consumo de combustível de seus automóveis. Um motorista monitorou vários tanques cheios de gasolina registrando a quilometragem dirigida e a quantidade de combustível em litros utilizado para cada tanque cheio. Desenvolva uum aplicativo Java que receba como entrada os quilômetros dirigidos e os litros de gasolina consumidos (ambos como inteiros) paracada tanque cheio. O programa deve calcular e exibir o consumo em quilômetros/litro para cada tanque cheio e imprimir a quilometragem combinada e a soma total de litros de combustível consumidos até este ponto. Todos os cálculos de médias devem produzir resultados em ponto flutuante. Utilize a class Scanner e repetição controlada por sentinela para obter os dados do usuário.
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package Cap4;
import java.util.Scanner;
/**
*
[/code]
Na verdade estou buscando a solução, entretanto não consegui compreender muito bem o enunciado.
O programa deve ficar em loop, até que o usuário decida sair.
A cada iteração, o usuário deve digitar a quantidade de quilômetros que percorreu com o tanque e a quantidade de litros que utilizou.
Isso deve ser armazenado.
Quando o usuário resolver sair, você deve exibir para cada tanque que ele utilizou, o consumo em Km/l. E também uma média.
Exemplo:
Tanque1, 300km, 30l
Tanque2, 200km, 25l
Tanque3, 700km, 60l
No final o programa vai mostrar:
Tanque1: 10Km/l
Tanque2: 8Km/l
Tanque3: 11.66Km/l
Média: 10.43 Km/l
Não é para mostrar a média total e sim por tanque.
Eis aqui o algoritimo:
crie um acumulador para quilômetro e um para litro
faça um loop infinito (afinal, são n tanques).
armazene os quilômetos (int)
acumule os quilômetros
armazene os litros consumidos (int)
acumule os litros
exiba a média do consumo do tanque n ( (double) quilometos / (double) litros )
quanto sair do loop infinito, imprima os dois acumuladores.
use diálogos JOptionPane para a entrada do usuário
[]´s
A média por tanque eu já tinha dito, mas no final, tem razão, não é pra mostrar a média geral e sim a quilometragem total e o consumo total.
O David respondeu de forma clara e precisa e ainda passou o algorítimo melhor que isso e só postar o código!!!
Bom trabalho
Se for igual ao que o pablosaraiva falou, vai ficar +/- assim:
(Eu resolvi assim)
[code]import java.util.Scanner;
public class ExemploDeitel {
/**
*
* @author Pedro Henrique Fialho Santos
* (35) 34711521 or (35) 88054088
* pedroh@inatel.br
*
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Digite o numero de registros.");
int quanti = input.nextInt();
float[] kmltanques = new float[quanti];
int[] quilometro = new int[quanti];
int[] litros = new int[quanti];
int litrototal = 0;
double media;
int quilometrototal = 0;
int x = 0;
int y=0;
while (x < quanti) {
y=x+1;
System.out.println("Entre com a quilometragem do tanque " + y);
quilometro[x] = input.nextInt();
System.out.println("Entre com a quantidade de combustível consumida");
litros[x] = input.nextInt();
kmltanques[x] = quilometro[x] / litros[x];
x++;
}
x = 0;
y=0;
System.out.println("");
while (x < quanti) {
y=x+1;
quilometrototal = quilometrototal + quilometro[x];
litrototal = litrototal + litros[x];
System.out.println("Tanque" + y + ": " + quilometro[x] + "km e "
+ litros[x] + "litros = " + kmltanques[x] + "km/l");
x++;
}
media = (double) quilometrototal / litrototal;
System.out.println("Total de quilometros: " + quilometrototal + "KM");
System.out.println("Total de litros: " + litrototal + "L");
System.out.printf("A média é de: %.2f\n ",media);
}
}[/code]
A saída ficou assim:
Tanque1: 300km e 30litros = 10.0km/l
Tanque2: 200km e 25litros = 8.0km/l
Tanque3: 700km e 60litros = 11.0km/l
Total de quilometros: 1200KM
Total de litros: 115L
A média é de: 10,43
Galera,
Seguinte consegui desenvolver um código para resolver o problema do exercício.
Mas ainda não estou satisfeito, pois para parar a execução do meu programa o usuário tem que inserir -1 em quilômetros e em litros também.Estava querendo que ao inserir -1 em quilômetros ou em litros a execução do programa parasse imediatamente e o resultado fosse exibido.
Obrigado pelo algoritmo davidbuzatto!
E aos por ajudarem também com suas opiniões.
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package Cap4;
import java.util.Scanner;
/**
*
[/code]