[RESOLVIDO] Exercício exibir valores em ordem crescente

9 respostas
C

1- Desenvolva uma aplicação onde solicitamos três valores de faturamento, apresentar ao final o seguinte relato:
A- Somatória de todos os valores
B- Identificação do menor faturamento
C- Identificação do maior faturamento
D- Calcular a média de faturamento
E- Relatar no monitor em ordem crescente de faturamento

não estou conseguindo fazer utilizando o comando para loop, com o JOptionPane.(se houver outras maneiras, por favor me ajudem)
Obrigado.

9 Respostas

ViniGodoy

Não entendi. Pode colocar o código do que você já fez, com um comentário da sua dúvida?

C
public static void main(String[] args) {
        String aux=" ";
        int soma=0;
        int valor=0;
        for(int i=0;i<3;i=i+1){
        aux=JOptionPane.showInputDialog(null,"Entre com um valor:");
        valor=Integer.parseInt(aux);
        soma=(valor+valor)+valor;
        }
        
        JOptionPane.showMessageDialog(null,"A somatória é: "+soma);
        
        
    }

}

Ele está calculando errado, tipo... acho que estou errando no cálculo com a variável 'soma'

ViniGodoy

A cada etapa do loop, você deverá somar o valor lido a soma. Por isso, o código é:

soma = soma + valor;

Ou seja, se a variável começar com 0:
Após o primeiro loop, se o usuário digitar 3, soma valerá: 0 + 3 = 3
Após o segundo loop, se o usuário digitar 5, soma valerá: 3 + 5 = 8
Após o terceiro loop, se o usuário digitar 1, soma valerá: 8 + 1 = 9

C

Obrigado, esse código funcionou. Mas precisamos exibir os valores inseridos em ordem. O maior valor, o menor valor e a média deles.
“Relatar no monitor em ordem crescente de faturamento.”
faturamento seria os dados inseridos.
Como eu realizo isso? :-o

GuilhermeF.Reis

tenho um programa muito parecido para fazer alguém pode resolver o assunto do menino ira me ajudar tbem

pedroroxd
Colokei só pra imprimir no console mesmo, depois vc coloca no jOptionPane...
int soma = 0, valor = 0, maior = 0, menor = 0;
		for (int i = 0; i < 3; i = i + 1) {

			valor = Integer.parseInt(JOptionPane.showInputDialog(null, "Entre com um valor:"));
			soma += valor; // mesma coisa de "soma = soma + valor"

			if (i == 0) // se o i for 0, ele atribui a variável menor, o próprio valor
				menor = valor;

			if (valor < menor)
				menor = valor;

			if (valor > maior)
				maior = valor;

		}

		System.out.println("A somatória é: " + soma);
		System.out.println("O menor é: " + menor);
		System.out.println("O maior é: " + maior);
Perceba que eu não colokei o parenteses nos if, porque só utiliza uma linha abaixo dele, mas é recomendado usar. não concordo, mas é bom ficar sabendo...
Trebloc

Você pode guardar cada valor lido em um array e depois ordená-lo através de Arrays.sort.

Exemplo:

final int QUANTIDADE_VALORES = 5;
int[] meusNumeros = new int[QUANTIDADE_VALORES ];
for (int i = 0; i < QUANTIDADE_VALORES; i++) {
    meusNumeros[i] = ...; // aqui vc  e guarda o valor
}

Arrays.sort(meusNumeros); // ordena o array
System.out.println(Arrays.toString(meusNumeros)); // imprime os números

Você também pode criar um método e fazer no braço a ordenação do array, mas no caso você teria que saber sobre ordenação de vetores.

GuilhermeF.Reis

Nossa muito legal
ajudou muito
Consegui te intender e montar aqui

ArchV

Como você é iniciante, recomendo ler sobre Bubble sort. Que um algoritmo de ordenação de fácil entendimento.

Criado 15 de abril de 2010
Ultima resposta 15 de abr. de 2010
Respostas 9
Participantes 6