(De Oliveira; Manzano, 2004) Desenvolva um programa que receba um valor de temperatura em graus Fahrenheit ( { }^{\mathrm{o}} \mathrm{F} ) e o converta para graus Celsius ( { }^{\mathrm{o}} \mathrm{C} ). Como resultado, mostre a seguinte mensagem: " \mathrm{XX}^{\mathrm{O}} \mathrm{F} equivalem a \mathrm{YY}^{\mathrm{O}} \mathrm{C}.". A fórmula de conversão é:
celsius =\frac{5 \times(\text { fahrenheit }-32)}{9}.

Passo 1

O que o enunciado pede e quais informações ele dá:
  • Pedem para desenvolver um programa que receba um valor de temperatura em graus Fahrenheit e converta para graus Celsius.
  • Entrada: um valor numérico que representa a temperatura em graus Fahrenheit (vou chamar essa variável de \text{fahrenheit}).
  • Saída exigida: uma mensagem no formato exatamente assim (aspas só para indicar o texto): “XX°F equivalem a YY°C.” onde XX é o valor em Fahrenheit lido e YY é o valor convertido para Celsius.
  • A fórmula fornecida no enunciado para a conversão é:
\text{celsius}=\frac{5\times(\text{fahrenheit}-32)}{9}.

Passo 2

Entendendo a fórmula e cada variável (aula curta):
  • A variável \text{fahrenheit} é a temperatura que o programa vai receber como entrada (em graus Fahrenheit).
  • A variável \text{celsius} é o resultado que queremos calcular (em graus Celsius).
  • A fórmula
\text{celsius}=\frac{5\times(\text{fahrenheit}-32)}{9}
significa, passo a passo:
  1. Subtrair \,32 de \text{fahrenheit}: isso ajusta a origem das escalas (porque 32^\circ\text{F} é o ponto de congelamento da água).
  2. Multiplicar o resultado por \,5: parte do fator de escala entre Fahrenheit e Celsius.
  3. Dividir por \,9: o outro parte do fator de escala. Juntos 5/9 convertem a diferença de unidade entre as duas escalas.
  • Em linguagem simples: primeiro desloca-se a escala tirando \,32, depois aplica-se o fator de escala \,5/9.

Passo 3

Algoritmo detalhado que o programa deve seguir (passo a passo para implementar na prova):
  1. Ler um número real e armazenar em \text{fahrenheit}.
  2. Calcular a diferença \text{diff}=\text{fahrenheit}-32.
  3. Multiplicar por \,5: \text{prod}=5\times\text{diff}.
  4. Dividir por \,9 para obter \text{celsius}=\dfrac{\text{prod}}{9}.
  5. Formatar e imprimir a mensagem no formato: “XX°F equivalem a YY°C.” onde XX é o valor lido e YY é o valor calculado.
    Observações práticas para a prova:
  • Use tipo numérico com parte decimal (p.ex. ponto flutuante) para não perder precisão quando a entrada não for inteiro.
  • Se quiser apresentar um resultado “limpo”, pode arredondar \text{celsius} com uma casa decimal ou com zero casas se for inteiro — mas o enunciado não exige arredondamento específico.

Passo 4

Exemplo numérico passo a passo (para fixar a ideia):
  • Suponha \text{fahrenheit}=68. Vamos converter:
\text{diff}=68-32=36.
\text{prod}=5\times 36=180.
\text{celsius}=\frac{180}{9}=20.
Resultado: 68^\circ\text{F} equivalem a 20^\circ\text{C}.
Esse exemplo mostra que basta seguir a ordem operação por operação (subtração, multiplicação, divisão).

Passo 5

Dicas de implementação e cuidados:
  • Se implementar em linguagem que lê só texto, lembre de converter a entrada para número (p.ex. em Python usar \text{float}(\cdot)).
  • Trate entradas inválidas (opcional na prova, mas bom na prática).
  • Na hora de imprimir, use o símbolo de grau \,^\circ (em código frequentemente usado como ‘°’) e a letra F/C conforme pedido.
  • Decida como quer formatar: se quiser preservar casas decimais, use formatação como duas casas; se quiser mostrar inteiro quando for inteiro, verifique se o valor é inteiro e converta para inteiro na impressão.

Passo 6

Programa de exemplo (uma implementação simples em Python). Este código lê um valor em Fahrenheit, converte usando exatamente a fórmula dada e imprime a mensagem no formato pedido:
def main():
    try:
        fahrenheit = float(input("Digite a temperatura em graus Fahrenheit: "))
    except ValueError:
        print("Entrada inválida. Digite um número.")
        return

    celsius = (5 * (fahrenheit - 32)) / 9

    # Impressão: se ambos forem inteiros "exatos", mostra sem casas; caso contrário, mostra com 2 casas
    if fahrenheit.is_integer() and celsius.is_integer():
        print(f"{int(fahrenheit)}°F equivalem a {int(celsius)}°C.")
    else:
        print(f"{fahrenheit:.2f}°F equivalem a {celsius:.2f}°C.")

if __name__ == "__main__":
    main()

Resposta

def main():
    try:
        fahrenheit = float(input("Digite a temperatura em graus Fahrenheit: "))
    except ValueError:
        print("Entrada inválida. Digite um número.")
        return

    celsius = (5 * (fahrenheit - 32)) / 9

    if fahrenheit.is_integer() and celsius.is_integer():
        print(f"{int(fahrenheit)}°F equivalem a {int(celsius)}°C.")
    else:
        print(f"{fahrenheit:.2f}°F equivalem a {celsius:.2f}°C.")

if __name__ == "__main__":
    main()

Exercícios relacionados