Ir ao conteúdo

Posts recomendados

Postado

ENUNCIADO: Dadas 10 temperaturas armazenadas num array, pretende-se saber qual a média das temperaturas, a temperatura mais alta e a temperatura mais baixa.

RESOLUÇÃO

inicio
   variavel real temperaturas[10]
   inteiro i
   escrever "Introduza as temperaturas", "\n"
   para i de 0 ate 9 passo 1
   ler temperaturas
   proximo
   escrever "\nTemperaturas, em tabela ", "\n"
   para i de 0 ate 9 passo 1
   escrever temperaturas , "\t"
   proximo
      
fim

 

Agora queria calcular a mais temperatura mais baixa e mais alta e sei que tenho de usar o se, mas não sei se tenho de escrever 10 comandos tipo array1, array 2 (...) ou o que tenho de escrever no se... alguém que me ajude por favor

Postado

Segue um exemplo funcional. Entenda o princípio e modifique ele para suprir as suas necessidades.

import java.util.Arrays;
import java.util.Scanner;

public class MaiorMenorTemperatura {
    private static final int QUANTIDADE_TEMPERATURAS = 3;   // Determina o tamanho do vetor

    private double[] temperaturas;  // Armazena as temperaturas

    private double soma;            // Necessário para calcular a média
    private double media;           // Armazena a média
    private double menor;           // Armazena o menor valor
    private double maior;           // Armazena o maior valor

    public MaiorMenorTemperatura() {
        this.temperaturas = new double[QUANTIDADE_TEMPERATURAS];
        this.soma = 0;
    }

    public static void main(String[] args) {
        MaiorMenorTemperatura temperatura = new MaiorMenorTemperatura();
        temperatura.preencherTemperaturas();
        temperatura.calcularMedia();
        temperatura.determinarMaiorMenor();
        temperatura.mostrarRelatorio();
    }

    private void preencherTemperaturas() {
        System.out.println(">> Preencher temperaturas");
        System.out.println("--------------------------------------");
        for (int i = 0; i < QUANTIDADE_TEMPERATURAS; ++i) {
            System.out.print("Temperatura [" + (i + 1) + " de " + QUANTIDADE_TEMPERATURAS + "]: ");
            temperaturas[i] = new Scanner(System.in).nextDouble();
            soma += temperaturas[i];
        }
        System.out.println("--------------------------------------");
    }

    private void calcularMedia() {
        media = soma / QUANTIDADE_TEMPERATURAS;
    }

    private void determinarMaiorMenor() {
        menor = temperaturas[0];
        maior = temperaturas[0];

        for (int i = 1; i < QUANTIDADE_TEMPERATURAS; ++i) {
            if (temperaturas[i] < menor)
                menor = temperaturas[i];

            if (temperaturas[i] > maior)
                maior = temperaturas[i];
        }
    }

    private void mostrarRelatorio() {
        System.out.println();
        System.out.println(">> Relatório");
        System.out.println("--------------------------------------");
        System.out.println("Temperaturas: " + Arrays.toString(temperaturas));
        System.out.println("Média: " + media);
        System.out.println("Menor: " + menor);
        System.out.println("Maior: " + maior);
        System.out.println("--------------------------------------");
    }
}

Espero que ajude, boa sorte.

  • 4 semanas depois...
Postado

Você pode criar um array e colocar as temperaturas nele.

Depois você pode usar o laço for para armazenar a soma das variáveis e por fim dividir pelo tamanho do array, assim obtendo a média.

Para obter os valores máximo e mínimo existem várias maneiras, uma delas é usando a classe Arrays.

Arrays.stream(ARRAY).max().getAsDouble(); //retorna o valor máximo em double(caso o array seja de double) de um array
Arrays.stream(ARRAY).min().getAsDouble(); //retorna o valor mínimo em double(caso o array seja de double) de um array

//Substitua ARRAY pelo nome do seu array

 

Postado

@AdrianoSiqueira Olá. Belo código! A dica que eu daria seria usar duas classes para o mesmo. Uma a classe MaiorMenorTemperatura e outra classe para o método main.

Claro que para a visualização e postagem do código fica mais viável assim (entre aspas) :)

 

Postado

@Carolina_antunes09 Olá. Apenas para simplificar bastante a questão, segue a forma de criar um array em Java, armazenar nesse array as temperaturas e depois imprimir essas temperaturas:

import java.util.Scanner;

public class Aplicacao {

    private static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {

        // Crio um array de 10 posições do tipo double (poderia ser float)
        double[] temperaturas = new double[10];

        // armazeno nesse array as temperaturas (usar a vírgula para separar as casas decimais
        for (int i = 0; i < 10; i++) {
            System.out.print("Digite a temperatura " + (i + 1) + ": ");
            temperaturas[i] = scanner.nextDouble(); // em portugol seria leia(temperaturas[i]) 
        }

        // imprimo as temperaturas
        for (int i = 0; i < 10; i++) {
            System.out.println("Temperatura " + (i + 1) + ": " + temperaturas[i]);
        }

    }

}

Esse exemplo é só para entender o básico. Já quanto a calcular o que é preciso: média, maior e menor temperatura boas dicas já foram dadas acima pelo @AdrianoSiqueira

Qualquer dúvida é só perguntar, ok?

Boa sorte!

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...