AFF Education Construa seu Futuro

Aula 22 - Desafio (temperatura.java)

Desafio de Conversão de Temperatura

Neste capítulo, vamos resolver um desafio prático de conversão de temperatura entre as escalas Fahrenheit e Celsius.

Este desafio vai ajudar a praticar:

Instruções do Desafio

Crie um arquivo chamado temperatura.java seguindo estas instruções:

  1. Crie comentário contendo a fórmula: celsius = (fahrenheit – 32) * 5/9
  2. Crie uma constante do tipo double chamada fator e atribua a ela valor 5.0 / 9.0
  3. Crie uma constante do tipo double chamada ajuste e atribua a ela o valor 32
  4. Crie uma variável do tipo double chamada fahrenheit e atribua a ela um valor qualquer, tipo 86.5
  5. Crie uma variável do tipo double chamada celsius e atribua a ela a equação: celsius = (fahrenheit – ajuste) * fator
  6. Imprima o valor da temperatura em Celsius usando printf com uma casa decimal
  7. Escolha um novo valor de temperatura em Fahrenheit e descubra seu valor em Celsius
  8. Imprima novamente esse valor usando println
celsius = (fahrenheit - 32) × 5/9

Solução do Desafio

Aqui está o código completo para resolver o desafio:

public class temperatura {
    public static void main(String[] args) {
        // Formula: celsius = (fahrenheit - 32) * 5/9
        
        // Crie uma constante do tipo double chamada fator e atribua a ela valor 5.0 / 9.0
        final double fator = 5.0 / 9.0;
        
        // Crie uma constante do tipo double chamada ajuste e atribua a ela o valor 32
        final double ajuste = 32;
        
        // Crie uma variável do tipo double chamada fahrenheit e atribua a ela um valor qualquer, tipo 86.5
        double fahrenheit = 86.5;
        
        // Crie uma variável do tipo double chamada celsius e atribua a ela a equação celsius = (fahrenheit – ajuste) * fator
        double celsius = (fahrenheit - ajuste) * fator;
        
        // Imprima o valor da temperatura em Celsius usando printf com uma casa decimal
        System.out.printf("Temperatura em Fahrenheit: %.1f°F\n", fahrenheit);
        System.out.printf("Temperatura em Celsius: %.1f°C\n", celsius);
        
        // Escolha um novo valor de temperatura em Fahrenheit e descubra seu valor em Celsius
        fahrenheit = 32.0; // Ponto de congelamento da água em Fahrenheit
        celsius = (fahrenheit - ajuste) * fator;
        
        // Imprima novamente esse valor usando println
        System.out.println("\nNova conversão:");
        System.out.println("Temperatura em Fahrenheit: " + fahrenheit + "°F");
        System.out.println("Temperatura em Celsius: " + celsius + "°C");
    }
}

Temperatura em Fahrenheit: 86.5°F

Temperatura em Celsius: 30.3°C

Nova conversão:

Temperatura em Fahrenheit: 32.0°F

Temperatura em Celsius: 0.0°C

Explicação Detalhada

Vamos analisar cada parte do código:

1. Definição das Constantes

final double fator = 5.0 / 9.0;
final double ajuste = 32;

Usamos final para declarar constantes cujos valores não mudarão. O fator representa a fração 5/9 da fórmula, e o ajuste representa o valor 32 que é subtraído da temperatura em Fahrenheit.

2. Primeira Conversão

double fahrenheit = 86.5;
double celsius = (fahrenheit - ajuste) * fator;

Definimos a temperatura em Fahrenheit como 86.5°F e calculamos o equivalente em Celsius usando a fórmula.

3. Formatação com printf

System.out.printf("Temperatura em Celsius: %.1f°C\n", celsius);

Usamos printf com o especificador %.1f para mostrar o valor com uma casa decimal.

4. Segunda Conversão

fahrenheit = 32.0;
celsius = (fahrenheit - ajuste) * fator;

Mudamos o valor de Fahrenheit para 32°F (ponto de congelamento da água) e recalculamos o valor em Celsius.

5. Impressão com println

System.out.println("Temperatura em Celsius: " + celsius + "°C");

Desta vez, usamos println para mostrar o resultado, concatenando o valor da variável com texto.

Tabela de Conversão

Aqui está uma pequena tabela de conversão entre Fahrenheit e Celsius para referência:

Fahrenheit (°F) Celsius (°C) Observação
32 0 Ponto de congelamento da água
68 20 Temperatura ambiente típica
98.6 37 Temperatura corporal humana normal
212 100 Ponto de ebulição da água

Exercícios

Teste seus conhecimentos sobre conversão de temperatura e formatação em Java:

1. Qual é a fórmula correta para converter Fahrenheit em Celsius?

2. Por que usamos 5.0/9.0 em vez de 5/9 no código?

3. Qual será o resultado da conversão de 212°F para Celsius?

4. Complete o código para converter Celsius para Fahrenheit:

double celsius = 25.0;
final double fator = 9.0/5.0;
final double ajuste = 32.0;
double fahrenheit = ______________________;

5. Qual código você usaria para imprimir a temperatura em Celsius com duas casas decimais?

Exercícios de Aplicação AFF Education

Reforce o conteúdo desta aula com mais dois exercícios práticos:

1. A fórmula para converter Celsius (C) em Fahrenheit é F = C * 9/5 + 32. Para 100°C, qual o valor de F?

2. Para evitar divisão inteira indesejada em c * 9/5 com int c, o ideal é: